Move all CI to GitHub Actions #1959
Workflow file for this run
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: | |
branches: [main] | |
jobs: | |
build-x86_64-linux: | |
uses: ./.github/workflows/build-x86_64-linux.yml | |
build-x86_64-darwin: | |
uses: ./.github/workflows/build-x86_64-darwin.yml | |
lints: | |
name: Lints | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Check Nixpkgs input | |
uses: DeterminateSystems/flake-checker-action@main | |
with: | |
fail-mode: true | |
check-outdated: false # PRs shouldn't fail because main's nixpkgs is out of date | |
- name: Install Nix | |
uses: DeterminateSystems/nix-installer-action@main | |
- uses: DeterminateSystems/magic-nix-cache-action@main | |
- name: Check rustfmt | |
run: nix develop --command check-rustfmt | |
- name: Check Clippy | |
run: nix develop --command check-clippy | |
- name: Check Spelling | |
run: nix develop --command check-spelling | |
- name: Check nixpkgs-fmt formatting | |
run: nix develop --command check-nixpkgs-fmt | |
- name: Check EditorConfig conformance | |
run: nix develop --command check-editorconfig | |
run-x86_64-linux: | |
name: Run x86_64 Linux | |
runs-on: ubuntu-latest | |
needs: [lints, build-x86_64-linux] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Restore Github cache of Buildkite artifacts | |
uses: actions/cache/restore@v3 | |
with: | |
path: nix-installer | |
key: x86_64-linux-artifacts-${{ github.sha }} | |
- name: Move & set executable | |
run: | | |
mkdir install-root | |
cp nix-installer.sh install-root/nix-installer.sh | |
mv ./nix-installer install-root/nix-installer-x86_64-linux | |
chmod +x install-root/nix-installer-x86_64-linux install-root/nix-installer.sh | |
- run: sudo apt install fish zsh | |
- name: Initial install | |
uses: DeterminateSystems/nix-installer-action@main | |
with: | |
local-root: install-root/ | |
logger: pretty | |
log-directives: nix_installer=debug | |
backtrace: full | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Initial uninstall (without a `nix run` first) | |
run: sudo -E /nix/nix-installer uninstall | |
env: | |
NIX_INSTALLER_NO_CONFIRM: true | |
NIX_INSTALLER_LOGGER: pretty | |
NIX_INSTALLER_LOG_DIRECTIVES: nix_installer=debug | |
RUST_BACKTRACE: full | |
- name: Ensure `nix` is removed | |
run: | | |
if systemctl is-active nix-daemon.socket; then | |
echo "nix-daemon.socket was still running" | |
exit 1 | |
fi | |
if systemctl is-active nix-daemon.service; then | |
echo "nix-daemon.service was still running" | |
exit 1 | |
fi | |
if [ -e /nix ]; then | |
echo "/nix exists" | |
exit 1 | |
fi | |
- name: Repeated install | |
uses: DeterminateSystems/nix-installer-action@main | |
with: | |
local-root: install-root/ | |
logger: pretty | |
log-directives: nix_installer=debug | |
backtrace: full | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: echo $PATH | |
run: echo $PATH | |
- name: Test `nix` with `$GITHUB_PATH` | |
if: success() || failure() | |
run: | | |
nix run nixpkgs#hello | |
nix profile install nixpkgs#hello | |
hello | |
nix store gc | |
nix run nixpkgs#hello | |
- name: Test bash | |
run: nix-instantiate -E 'builtins.currentTime' --eval | |
if: success() || failure() | |
shell: bash --login {0} | |
- name: Test sh | |
run: nix-instantiate -E 'builtins.currentTime' --eval | |
if: success() || failure() | |
shell: sh -l {0} | |
- name: Test zsh | |
run: nix-instantiate -E 'builtins.currentTime' --eval | |
if: success() || failure() | |
shell: zsh --login --interactive {0} | |
- name: Test fish | |
run: nix-instantiate -E 'builtins.currentTime' --eval | |
if: success() || failure() | |
shell: fish --login {0} | |
- name: Repeated uninstall | |
run: sudo -E /nix/nix-installer uninstall | |
env: | |
NIX_INSTALLER_NO_CONFIRM: true | |
NIX_INSTALLER_LOGGER: pretty | |
NIX_INSTALLER_LOG_DIRECTIVES: nix_installer=debug | |
RUST_BACKTRACE: full | |
- name: Ensure `nix` is removed | |
run: | | |
if systemctl is-active nix-daemon.socket; then | |
echo "nix-daemon.socket was still running" | |
exit 1 | |
fi | |
if systemctl is-active nix-daemon.service; then | |
echo "nix-daemon.service was still running" | |
exit 1 | |
fi | |
if [ -e /nix ]; then | |
echo "/nix exists" | |
exit 1 | |
fi | |
run-x86_64-linux-no-init: | |
name: Run x86_64 Linux (No init) | |
runs-on: ubuntu-latest | |
needs: [lints, build-x86_64-linux] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Restore Github cache of Buildkite artifacts | |
uses: actions/cache/restore@v3 | |
with: | |
path: nix-installer | |
key: x86_64-linux-artifacts-${{ github.sha }} | |
- name: Move & set executable | |
run: | | |
mkdir install-root | |
cp nix-installer.sh install-root/nix-installer.sh | |
mv ./nix-installer install-root/nix-installer-x86_64-linux | |
chmod +x install-root/nix-installer-x86_64-linux install-root/nix-installer.sh | |
- run: sudo apt install fish zsh | |
- name: Initial install | |
uses: DeterminateSystems/nix-installer-action@main | |
with: | |
init: none | |
planner: linux | |
local-root: install-root/ | |
logger: pretty | |
log-directives: nix_installer=debug | |
backtrace: full | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Ensure daemon was not configured with init | |
run: | | |
if systemctl is-active nix-daemon.socket; then | |
echo "nix-daemon.socket was running" | |
exit 1 | |
fi | |
if systemctl is-active nix-daemon.service; then | |
echo "nix-daemon.service was running" | |
exit 1 | |
fi | |
- name: Initial uninstall (without a `nix run` first) | |
run: sudo -E /nix/nix-installer uninstall | |
env: | |
NIX_INSTALLER_NO_CONFIRM: true | |
NIX_INSTALLER_LOGGER: pretty | |
NIX_INSTALLER_LOG_DIRECTIVES: nix_installer=debug | |
RUST_BACKTRACE: full | |
- name: Ensure `nix` is removed | |
run: | | |
if [ -e /nix ]; then | |
echo "/nix exists" | |
exit 1 | |
fi | |
- name: Repeated install | |
uses: DeterminateSystems/nix-installer-action@main | |
with: | |
init: none | |
planner: linux | |
local-root: install-root/ | |
logger: pretty | |
log-directives: nix_installer=debug | |
backtrace: full | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: echo $PATH | |
run: echo $PATH | |
- name: Test `nix` with `$GITHUB_PATH` | |
if: success() || failure() | |
run: | | |
sudo -i nix run nixpkgs#hello | |
sudo -i nix profile install nixpkgs#hello | |
hello | |
sudo -i nix store gc | |
sudo -i nix run nixpkgs#hello | |
- name: Test bash | |
run: sudo -i nix-instantiate -E 'builtins.currentTime' --eval | |
if: success() || failure() | |
shell: bash --login {0} | |
- name: Test sh | |
run: sudo -i nix-instantiate -E 'builtins.currentTime' --eval | |
if: success() || failure() | |
shell: sh -l {0} | |
- name: Test zsh | |
run: sudo -i nix-instantiate -E 'builtins.currentTime' --eval | |
if: success() || failure() | |
shell: zsh --login --interactive {0} | |
- name: Test fish | |
run: sudo -i nix-instantiate -E 'builtins.currentTime' --eval | |
if: success() || failure() | |
shell: fish --login {0} | |
- name: Repeated uninstall | |
run: sudo -E /nix/nix-installer uninstall | |
env: | |
NIX_INSTALLER_NO_CONFIRM: true | |
NIX_INSTALLER_LOGGER: pretty | |
NIX_INSTALLER_LOG_DIRECTIVES: nix_installer=debug | |
RUST_BACKTRACE: full | |
- name: Ensure `nix` is removed | |
run: | | |
if systemctl is-active nix-daemon.socket; then | |
echo "nix-daemon.socket was running" | |
exit 1 | |
fi | |
if systemctl is-active nix-daemon.service; then | |
echo "nix-daemon.service was running" | |
exit 1 | |
fi | |
if [ -e /nix ]; then | |
echo "/nix exists" | |
exit 1 | |
fi | |
run-x86_64-darwin: | |
name: Run x86_64 Darwin | |
runs-on: macos-latest | |
needs: [lints, build-x86_64-darwin] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Restore Github cache of Buildkite artifacts | |
uses: actions/cache/restore@v3 | |
with: | |
path: nix-installer | |
key: x86_64-darwin-artifacts-${{ github.sha }} | |
- name: Move & set executable | |
run: | | |
mkdir install-root | |
cp nix-installer.sh install-root/nix-installer.sh | |
mv ./nix-installer install-root/nix-installer-x86_64-darwin | |
chmod +x install-root/nix-installer-x86_64-darwin install-root/nix-installer.sh | |
- run: brew install fish coreutils | |
- name: Initial install | |
uses: DeterminateSystems/nix-installer-action@main | |
with: | |
local-root: install-root/ | |
logger: pretty | |
log-directives: nix_installer=debug | |
backtrace: full | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
extra-conf: | | |
trusted-users = root runner | |
- name: Initial uninstall (without a `nix run` first) | |
run: sudo -E /nix/nix-installer uninstall | |
env: | |
NIX_INSTALLER_NO_CONFIRM: true | |
NIX_INSTALLER_LOGGER: pretty | |
NIX_INSTALLER_LOG_DIRECTIVES: nix_installer=debug | |
RUST_BACKTRACE: full | |
- name: Repeated install | |
uses: DeterminateSystems/nix-installer-action@main | |
with: | |
local-root: install-root/ | |
logger: pretty | |
log-directives: nix_installer=debug | |
backtrace: full | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
extra-conf: trusted-users = root runner | |
- name: echo $PATH | |
run: echo $PATH | |
- name: Test `nix` with `$GITHUB_PATH` | |
if: success() || failure() | |
run: | | |
nix run nixpkgs#hello | |
nix profile install nixpkgs#hello | |
hello | |
nix store gc | |
nix run nixpkgs#hello | |
- name: Test bash | |
run: nix-instantiate -E 'builtins.currentTime' --eval | |
if: success() || failure() | |
shell: bash --login {0} | |
- name: Test sh | |
run: nix-instantiate -E 'builtins.currentTime' --eval | |
if: success() || failure() | |
shell: sh -l {0} | |
- name: Test zsh | |
run: nix-instantiate -E 'builtins.currentTime' --eval | |
if: success() || failure() | |
shell: zsh --login --interactive {0} | |
- name: Test fish | |
run: nix-instantiate -E 'builtins.currentTime' --eval | |
if: success() || failure() | |
shell: fish --login {0} | |
- name: Repeated uninstall | |
run: sudo -E /nix/nix-installer uninstall | |
env: | |
NIX_INSTALLER_NO_CONFIRM: true | |
NIX_INSTALLER_LOGGER: pretty | |
NIX_INSTALLER_LOG_DIRECTIVES: nix_installer=debug | |
RUST_BACKTRACE: full |