-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
192 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
name: Crypto3 Build and Test on Linux Platforms | ||
|
||
on: | ||
workflow_call: | ||
inputs: | ||
submodules-refs: | ||
type: string | ||
description: "Lines with submodules' repo names and refs (e.g. `org/repo: ref`)" | ||
required: false | ||
|
||
env: | ||
TESTS_ARTIFACT_NAME: "test-results-linux" | ||
|
||
jobs: | ||
build-and-test: | ||
name: "Build and test Linux" | ||
runs-on: [self-hosted, Linux, X64, aws_autoscaling] | ||
steps: | ||
# https://github.com/actions/checkout/issues/1552 | ||
- name: Clean up after previous checkout | ||
run: chmod +w -R ${GITHUB_WORKSPACE}; rm -rf ${GITHUB_WORKSPACE}/*; | ||
|
||
- name: Checkout Crypto3 | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
submodules: recursive | ||
|
||
- name: Checkout submodules to specified refs | ||
if: inputs.submodules-refs != '' | ||
uses: NilFoundation/ci-cd/actions/[email protected] | ||
with: | ||
refs: ${{ inputs.submodules-refs }} | ||
paths: | | ||
${{ github.workspace }}/** | ||
!${{ github.workspace }}/ | ||
!${{ github.workspace }}/**/.git/** | ||
- name: Run checks | ||
run: nix flake -L check .?submodules=1# | ||
env: | ||
NIX_CONFIG: | | ||
cores = 6 | ||
max-jobs = 4 | ||
- name: Copy test results | ||
run: | | ||
check_names=( | ||
"containers-clang" | ||
"math-clang" | ||
"zk-clang" | ||
"containers-gcc" | ||
"math-gcc" | ||
"zk-gcc" | ||
) | ||
results_dir="./results" | ||
mkdir -p "$results_dir" | ||
for check_name in "${check_names[@]}"; do | ||
# This completes immediately since results are in cache | ||
nix build -L .?submodules=1#checks.x86_64-linux.$check_name | ||
cp -r ./result/* "$results_dir/$check_name" | ||
rm result | ||
done | ||
- name: Publish Test Results | ||
uses: EnricoMi/publish-unit-test-result-action/linux@v2 | ||
with: | ||
check_name: "Linux Test Results" | ||
files: "results/**/*.xml" | ||
comment_mode: ${{ github.event.pull_request.head.repo.fork && 'off' || 'always' }} # Don't create PR comment from fork runs | ||
action_fail_on_inconclusive: true # fail, if no reports |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
name: Crypto3 Build and Test on macOS Platforms | ||
|
||
on: | ||
workflow_call: | ||
inputs: | ||
submodules-refs: | ||
type: string | ||
description: "Lines with submodules' repo names and refs (e.g. `org/repo: ref`)" | ||
required: false | ||
|
||
env: | ||
TESTS_ARTIFACT_NAME: "test-results-mac" | ||
|
||
jobs: | ||
build-and-test: | ||
name: "Build and test macOS" | ||
runs-on: [macos-14] | ||
steps: | ||
- name: Checkout Crypto3 | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
submodules: recursive | ||
|
||
- name: Checkout submodules to specified refs | ||
if: inputs.submodules-refs != '' | ||
uses: NilFoundation/ci-cd/actions/[email protected] | ||
with: | ||
refs: ${{ inputs.submodules-refs }} | ||
paths: | | ||
${{ github.workspace }}/** | ||
!${{ github.workspace }}/ | ||
!${{ github.workspace }}/**/.git/** | ||
# From https://github.com/DeterminateSystems/magic-nix-cache-action | ||
- uses: DeterminateSystems/nix-installer-action@main | ||
- uses: DeterminateSystems/magic-nix-cache-action@main | ||
- uses: DeterminateSystems/flake-checker-action@main | ||
|
||
- name: Run checks | ||
run: nix flake -L check .?submodules=1# | ||
env: | ||
NIX_CONFIG: | | ||
cores = 0 | ||
max-jobs = 1 | ||
- name: Copy test results | ||
run: | | ||
check_names=( | ||
"containers-clang" | ||
"math-clang" | ||
"zk-clang" | ||
) | ||
results_dir="./results" | ||
mkdir -p "$results_dir" | ||
for check_name in "${check_names[@]}"; do | ||
# This completes immediately since results are in cache | ||
nix build -L .?submodules=1#checks.aarch64-darwin.$check_name | ||
cp -r ./result/* "$results_dir/$check_name" | ||
rm result | ||
done | ||
- name: Publish Test Results | ||
uses: EnricoMi/publish-unit-test-result-action/linux@v2 | ||
with: | ||
check_name: "Mac Test Results" | ||
files: "results/**/*.xml" | ||
comment_mode: ${{ github.event.pull_request.head.repo.fork && 'off' || 'always' }} # Don't create PR comment from fork runs | ||
action_fail_on_inconclusive: true # fail, if no reports |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
name: PR Testing | ||
|
||
on: | ||
pull_request: | ||
push: | ||
branches: | ||
- master | ||
|
||
concurrency: | ||
# In master we want to run for every commit, in other branches — only for the last one | ||
group: ${{ | ||
( github.ref == 'refs/heads/master' && format('{0}/{1}/{2}', github.workflow, github.ref, github.sha) ) | ||
|| | ||
format('{0}/{1}', github.workflow, github.ref) }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
handle-syncwith: | ||
if: github.event_name == 'pull_request' | ||
name: Call Reusable SyncWith Handler | ||
uses: NilFoundation/ci-cd/.github/workflows/[email protected] | ||
with: | ||
ci-cd-ref: 'v1.1.2' | ||
secrets: inherit | ||
|
||
test-linux: | ||
name: Linux Crypto3 Testing | ||
uses: ./.github/workflows/crypto3-testing-linux.yml | ||
needs: | ||
- handle-syncwith | ||
if: | | ||
always() && !cancelled() && | ||
(needs.handle-syncwith.result == 'success' || needs.handle-syncwith.result == 'skipped') | ||
secrets: inherit | ||
with: | ||
submodules-refs: ${{ needs.handle-syncwith.outputs.prs-refs }} | ||
|
||
test-mac: | ||
name: macOS Crypto3 Testing | ||
uses: ./.github/workflows/crypto3-testing-mac.yml | ||
needs: | ||
- handle-syncwith | ||
if: | | ||
always() && !cancelled() && | ||
(needs.handle-syncwith.result == 'success' || needs.handle-syncwith.result == 'skipped') | ||
secrets: inherit | ||
with: | ||
submodules-refs: ${{ needs.handle-syncwith.outputs.prs-refs }} |