Allow testing ssh://
and ssh-ng://
across versions too
#1755
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_cachix] | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, macos-latest] | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 60 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: cachix/install-nix-action@v30 | |
with: | |
# The sandbox would otherwise be disabled by default on Darwin | |
extra_nix_config: | | |
sandbox = true | |
max-jobs = 1 | |
- run: echo CACHIX_NAME="$(echo $GITHUB_REPOSITORY-install-tests | tr "[A-Z]/" "[a-z]-")" >> $GITHUB_ENV | |
- uses: cachix/cachix-action@v15 | |
if: needs.check_cachix.outputs.secret == 'true' | |
with: | |
name: '${{ env.CACHIX_NAME }}' | |
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}' | |
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' | |
# Since ubuntu 22.30, unprivileged usernamespaces are no longer allowed to map to the root user: | |
# https://ubuntu.com/blog/ubuntu-23-10-restricted-unprivileged-user-namespaces | |
- run: sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 | |
if: matrix.os == 'ubuntu-latest' | |
- run: nix-build release.nix -A build.$(nix-instantiate --eval -E '(builtins.currentSystem)') | |
# Steps to test CI automation in your own fork. | |
# Cachix: | |
# 1. Sign-up for https://www.cachix.org/ | |
# 2. Create a cache for $githubuser-nix-install-tests | |
# 3. Create a cachix auth token and save it in https://github.com/$githubuser/nix/settings/secrets/actions in "Repository secrets" as CACHIX_AUTH_TOKEN | |
check_cachix: | |
name: Cachix secret present for installer tests | |
runs-on: ubuntu-latest | |
outputs: | |
secret: ${{ steps.secret.outputs.secret }} | |
steps: | |
- name: Check for Cachix secret | |
id: secret | |
env: | |
_CACHIX_SECRETS: ${{ secrets.CACHIX_SIGNING_KEY }}${{ secrets.CACHIX_AUTH_TOKEN }} | |
run: | | |
echo "::set-output name=secret::${{ env._CACHIX_SECRETS != '' }}" |