Working on testing aarch64-linux noci #703
This file contains hidden or 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
| name: codedown-languages | |
| on: | |
| push: | |
| workflow_dispatch: | |
| jobs: | |
| verify-nixpkgs-revs: | |
| name: "verify-nixpkgs-revs (${{matrix.runs-on}})" | |
| runs-on: | |
| - self-hosted | |
| - ${{matrix.runs-on}} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| runs-on: | |
| - macOS | |
| - Linux | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: verify-default-nix.sh | |
| if: "!contains(github.event.head_commit.message, 'noci')" | |
| run: ./.aliases/dev-verify-default-nix | |
| nix-flake-check: | |
| name: "nix-flake-check (${{matrix.runs-on}})" | |
| runs-on: | |
| - self-hosted | |
| - ${{matrix.runs-on}} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| runs-on: | |
| - macOS | |
| - Linux | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: nix flake check | |
| if: "!contains(github.event.head_commit.message, 'noci')" | |
| run: nix flake check | |
| build-ui-metadata: | |
| name: "build-ui-metadata (${{matrix.runs-on.os}}, ${{matrix.runs-on.arch}})" | |
| runs-on: | |
| - self-hosted | |
| - ${{matrix.runs-on.os}} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| runs-on: | |
| - os: macOS | |
| arch: aarch64-darwin | |
| - os: Linux | |
| arch: x86_64-linux | |
| - os: Linux | |
| arch: aarch64-linux | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Build .#ui_metadata_farm | |
| if: "!contains(github.event.head_commit.message, 'noci')" | |
| run: | | |
| nix build .#packages.${{matrix.runs-on.arch}}.ui_metadata_farm | |
| build-sample-environments: | |
| name: "build-sample-environments (${{matrix.runs-on.os}}, ${{matrix.runs-on.arch}})" | |
| runs-on: | |
| - self-hosted | |
| - ${{matrix.runs-on.os}} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| runs-on: | |
| - os: macOS | |
| arch: aarch64-darwin | |
| - os: Linux | |
| arch: x86_64-linux | |
| - os: Linux | |
| arch: aarch64-linux | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Build .#sample_environments_farm | |
| if: "!contains(github.event.head_commit.message, 'noci')" | |
| run: | | |
| nix build .#packages.${{matrix.runs-on.arch}}.sample_environments_farm | |
| test: | |
| name: ${{ matrix.suite.name }} (${{ matrix.runs-on }}${{ matrix.suite.flags && format(', {0}', matrix.suite.flags) || '' }}) | |
| runs-on: | |
| - self-hosted | |
| - ${{matrix.runs-on}} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| suite: | |
| - name: bash | |
| - name: clojure | |
| - name: coq | |
| - name: cpp | |
| - name: go | |
| - name: haskell | |
| flags: "-f ghc96" | |
| - name: haskell | |
| flags: "-f ghc98" | |
| - name: haskell | |
| flags: "-f ghc910" | |
| - name: haskell | |
| flags: "-f ghc912" | |
| - name: julia | |
| flags: "-f julia_19" | |
| - name: julia | |
| flags: "-f julia_110" | |
| - name: julia | |
| flags: "-f julia_111" | |
| - name: octave | |
| - name: postgres | |
| - name: python | |
| - name: r | |
| - name: ruby | |
| - name: rust | |
| - name: zsh | |
| - name: spellchecker | |
| - name: typst | |
| - name: exporters | |
| - name: sample-environments | |
| - name: searchers | |
| - name: settings-schemas | |
| runs-on: | |
| - macOS | |
| - Linux | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Build tests | |
| if: "!contains(github.event.head_commit.message, 'noci')" | |
| run: | | |
| cd tests | |
| export NIX_PATH=nixpkgs=$(nix run .#nixpkgsPath) | |
| export PATH=$(nix build --no-link .#stack --json | jq -r '.[0].outputs.out')/bin:$PATH | |
| export PATH=$(nix build --no-link .#direnv --json | jq -r '.[0].outputs.out')/bin:$PATH | |
| echo "Got path: $PATH" | |
| direnv allow | |
| direnv exec . stack build --nix --no-nix-pure | |
| - name: Run tests | |
| if: "!contains(github.event.head_commit.message, 'noci')" | |
| run: | | |
| cd tests | |
| export TEST_ROOT=$(pwd)/test_root | |
| echo "Got TEST_ROOT: $TEST_ROOT" | |
| echo TEST_ROOT="$TEST_ROOT" >> $GITHUB_ENV | |
| export NIX_PATH=nixpkgs=$(nix run .#nixpkgsPath) | |
| export PATH=$(nix build --no-link .#stack --json | jq -r '.[0].outputs.out')/bin:$PATH | |
| stack run --nix --no-nix-pure -- \ | |
| --print \ | |
| --fixed-root "$TEST_ROOT" \ | |
| --markdown-summary "$GITHUB_STEP_SUMMARY" \ | |
| --${{matrix.suite.name}} ${{matrix.suite.flags}} | |
| - name: Upload test artifacts | |
| if: always() && runner.os != 'macOS' | |
| continue-on-error: true | |
| shell: bash | |
| run: | | |
| DEST="tester@desktop1:/home/tester/all_test_runs/languages_${{github.workflow}}_${{github.run_number}}/${{matrix.suite.name}}-${{matrix.suite.flags}}" | |
| DEST="${DEST// /_}" | |
| echo "DEST: $DEST" | |
| if [[ -n "$TEST_ROOT" ]]; then | |
| rsync \ | |
| -e "ssh -F /secrets/ci_ssh_config" \ | |
| -azW --mkpath \ | |
| "$TEST_ROOT/" \ | |
| "$DEST" | |
| fi | |
| - name: Save test artifacts (macOS) | |
| if: always() && runner.os == 'macOS' | |
| continue-on-error: true | |
| shell: bash | |
| run: | | |
| DEST="/Users/tester/all_test_runs/languages_${{github.workflow}}_${{github.run_number}}/${{matrix.suite.name}}-${{matrix.suite.flags}}" | |
| DEST="${DEST// /_}" | |
| echo "DEST: $DEST" | |
| if [[ -n "$TEST_ROOT" ]]; then | |
| rsync \ | |
| -azW --mkpath \ | |
| "$TEST_ROOT/" \ | |
| "$DEST" | |
| fi | |
| # aarch64-linux test using QEMU binfmt emulation on the x86_64-linux runner | |
| # Requires: boot.binfmt.emulatedSystems = [ "aarch64-linux" ]; on the NixOS runner | |
| test-aarch64-linux: | |
| name: "bash (aarch64-linux via emulation)" | |
| runs-on: | |
| - self-hosted | |
| - Linux | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Build tests | |
| if: "!contains(github.event.head_commit.message, 'noci')" | |
| run: | | |
| cd tests | |
| export NIX_PATH=nixpkgs=$(nix run .#nixpkgsPath) | |
| export PATH=$(nix build --no-link .#stack --json | jq -r '.[0].outputs.out')/bin:$PATH | |
| export PATH=$(nix build --no-link .#direnv --json | jq -r '.[0].outputs.out')/bin:$PATH | |
| echo "Got path: $PATH" | |
| direnv allow | |
| direnv exec . stack build --nix --no-nix-pure | |
| - name: Run tests (aarch64-linux) | |
| if: "!contains(github.event.head_commit.message, 'noci')" | |
| run: | | |
| cd tests | |
| export TEST_ROOT=$(pwd)/test_root_aarch64 | |
| echo "Got TEST_ROOT: $TEST_ROOT" | |
| echo TEST_ROOT="$TEST_ROOT" >> $GITHUB_ENV | |
| export NIX_PATH=nixpkgs=$(nix run .#nixpkgsPath) | |
| export PATH=$(nix build --no-link .#stack --json | jq -r '.[0].outputs.out')/bin:$PATH | |
| stack run --nix --no-nix-pure -- \ | |
| --target-system aarch64-linux \ | |
| --print \ | |
| --fixed-root "$TEST_ROOT" \ | |
| --markdown-summary "$GITHUB_STEP_SUMMARY" \ | |
| --bash | |
| - name: Upload test artifacts | |
| if: always() | |
| continue-on-error: true | |
| shell: bash | |
| run: | | |
| DEST="tester@desktop1:/home/tester/all_test_runs/languages_${{github.workflow}}_${{github.run_number}}/bash-aarch64-linux" | |
| echo "DEST: $DEST" | |
| if [[ -n "$TEST_ROOT" ]]; then | |
| rsync \ | |
| -e "ssh -F /secrets/ci_ssh_config" \ | |
| -azW --mkpath \ | |
| "$TEST_ROOT/" \ | |
| "$DEST" | |
| fi |