Test Cirrus Runners #1
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
name: "CI" | |
on: | |
pull_request: | |
push: | |
permissions: read-all | |
jobs: | |
tests: | |
needs: [check_secrets] | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ["ghcr.io/cirruslabs/ubuntu-runner-arm64:22.04-md", "ghcr.io/cirruslabs/ubuntu-runner-amd64:22.04-md", "ghcr.io/cirruslabs/macos-runner:sonoma"] | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 60 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: cachix/install-nix-action@v26 | |
with: | |
# The sandbox would otherwise be disabled by default on Darwin | |
extra_nix_config: "sandbox = true" | |
- run: echo CACHIX_NAME="$(echo $GITHUB_REPOSITORY-install-tests | tr "[A-Z]/" "[a-z]-")" >> $GITHUB_ENV | |
- uses: cachix/cachix-action@v14 | |
if: needs.check_secrets.outputs.cachix == 'true' | |
with: | |
name: '${{ env.CACHIX_NAME }}' | |
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}' | |
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' | |
- run: nix --experimental-features 'nix-command flakes' flake check -L | |
check_secrets: | |
permissions: | |
contents: none | |
name: Check Cachix and Docker secrets present for installer tests | |
runs-on: ghcr.io/cirruslabs/ubuntu-runner-amd64:22.04-sm | |
outputs: | |
cachix: ${{ steps.secret.outputs.cachix }} | |
docker: ${{ steps.secret.outputs.docker }} | |
steps: | |
- name: Check for secrets | |
id: secret | |
env: | |
_CACHIX_SECRETS: ${{ secrets.CACHIX_SIGNING_KEY }}${{ secrets.CACHIX_AUTH_TOKEN }} | |
_DOCKER_SECRETS: ${{ secrets.DOCKERHUB_USERNAME }}${{ secrets.DOCKERHUB_TOKEN }} | |
run: | | |
echo "::set-output name=cachix::${{ env._CACHIX_SECRETS != '' }}" | |
echo "::set-output name=docker::${{ env._DOCKER_SECRETS != '' }}" | |
installer: | |
needs: [tests, check_secrets] | |
if: github.event_name == 'push' && needs.check_secrets.outputs.cachix == 'true' | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ["ghcr.io/cirruslabs/ubuntu-runner-arm64:22.04-md", "ghcr.io/cirruslabs/ubuntu-runner-amd64:22.04-md"] | |
runs-on: ${{ matrix.os }} | |
outputs: | |
installerURL: ${{ steps.prepare-installer.outputs.installerURL }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- run: echo CACHIX_NAME="$(echo $GITHUB_REPOSITORY-install-tests | tr "[A-Z]/" "[a-z]-")" >> $GITHUB_ENV | |
- uses: cachix/install-nix-action@v26 | |
with: | |
install_url: https://releases.nixos.org/nix/nix-2.20.3/install | |
- uses: cachix/cachix-action@v14 | |
with: | |
name: '${{ env.CACHIX_NAME }}' | |
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}' | |
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' | |
- id: prepare-installer | |
run: scripts/prepare-installer-for-github-actions | |
installer_test: | |
needs: [installer, check_secrets] | |
if: github.event_name == 'push' && needs.check_secrets.outputs.cachix == 'true' | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ["ghcr.io/cirruslabs/ubuntu-runner-arm64:22.04-md", "ghcr.io/cirruslabs/ubuntu-runner-amd64:22.04-md", "ghcr.io/cirruslabs/macos-runner:sonoma"] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- run: echo CACHIX_NAME="$(echo $GITHUB_REPOSITORY-install-tests | tr "[A-Z]/" "[a-z]-")" >> $GITHUB_ENV | |
- uses: cachix/install-nix-action@v26 | |
with: | |
install_url: '${{needs.installer.outputs.installerURL}}' | |
install_options: "--tarball-url-prefix https://${{ env.CACHIX_NAME }}.cachix.org/serve" | |
- run: sudo apt install fish zsh | |
if: matrix.os == 'ubuntu-latest' | |
- run: brew install fish | |
if: matrix.os == 'macos-latest' | |
- run: exec bash -c "nix-instantiate -E 'builtins.currentTime' --eval" | |
- run: exec sh -c "nix-instantiate -E 'builtins.currentTime' --eval" | |
- run: exec zsh -c "nix-instantiate -E 'builtins.currentTime' --eval" | |
- run: exec fish -c "nix-instantiate -E 'builtins.currentTime' --eval" | |
- run: exec bash -c "nix-channel --add https://releases.nixos.org/nixos/unstable/nixos-23.05pre466020.60c1d71f2ba nixpkgs" | |
- run: exec bash -c "nix-channel --update && nix-env -iA nixpkgs.hello && hello" | |
vm_tests: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ["ghcr.io/cirruslabs/ubuntu-runner-arm64:22.04-md", "ghcr.io/cirruslabs/ubuntu-runner-amd64:22.04-md"] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: DeterminateSystems/nix-installer-action@main | |
- uses: DeterminateSystems/magic-nix-cache-action@main | |
- run: nix build -L .#hydraJobs.tests.githubFlakes .#hydraJobs.tests.tarballFlakes .#hydraJobs.tests.gitSubmodules |