mirror of
https://github.com/DeterminateSystems/nix-installer-action.git
synced 2024-12-23 21:42:11 +01:00
cd46bde16a
* Test nix-installer-action on Namespace.so It is special in that it doesn't have systemd, and it'd be great to support Namespace.so. It is also a good test case for a variety of self-hosted GHA runner use cases. * Make correlation more confident * Borrow docker as a process supervisor on Linux GHA runners without systemd This change introduces a Docker container shim which spawns the Nix daemon after bind mounting all the relevant paths into the container. The image is actually completely empty, other than metadata about what to run. This is a cheap and cheerful way to get decent process supervision in environments that don't bring systemd, but do have docker ... which is most everywhere in the GHA ecosystem. * Ignore generated files * Run on arm64 why not * Load a pre-built image, don't build * Check the userInfo.username instead of an env var * Stop double-printing output to the console * can't rm and restart * what * Clean up the container at the end * Emit the fetch line in the 'installing nix' section * tweak output * delete what
159 lines
4.6 KiB
YAML
159 lines
4.6 KiB
YAML
name: CI
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches: [main]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
check-dist-up-to-date:
|
|
name: Check the dist/ folder is up to date
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- run: npm install --no-save
|
|
- run: npm run all
|
|
- run: git status --porcelain=v1
|
|
- run: test $(git status --porcelain=v1 2>/dev/null | wc -l) -eq 0
|
|
run-x86_64-linux:
|
|
name: Run x86_64 Linux
|
|
strategy:
|
|
matrix:
|
|
runner:
|
|
- ubuntu-latest
|
|
- nscloud-ubuntu-22.04-amd64-4x16
|
|
- namespace-profile-default-arm64
|
|
runs-on: ${{ matrix.runner }}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Install Nix
|
|
uses: ./
|
|
with:
|
|
logger: pretty
|
|
log-directives: nix_installer=trace
|
|
backtrace: full
|
|
- 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: Install Nix again (noop)
|
|
uses: ./
|
|
with:
|
|
logger: pretty
|
|
log-directives: nix_installer=trace
|
|
backtrace: full
|
|
- 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: Reinstall Nix
|
|
uses: ./
|
|
with:
|
|
logger: pretty
|
|
log-directives: nix_installer=trace
|
|
backtrace: full
|
|
reinstall: true
|
|
extra-conf: |
|
|
use-sqlite-wal = true
|
|
- 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: Verify the generated nix.conf
|
|
run: |
|
|
cat -n /etc/nix/nix.conf
|
|
grep -E "^trusted-users = .*$USER" /etc/nix/nix.conf
|
|
grep -E "^use-sqlite-wal = true" /etc/nix/nix.conf
|
|
|
|
run-x86_64-darwin:
|
|
name: Run x86_64 Darwin
|
|
runs-on: macos-12
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Install Nix
|
|
uses: ./
|
|
with:
|
|
logger: pretty
|
|
log-directives: nix_installer=trace
|
|
backtrace: full
|
|
- 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: Install Nix again (noop)
|
|
uses: ./
|
|
with:
|
|
logger: pretty
|
|
log-directives: nix_installer=trace
|
|
backtrace: full
|
|
- 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: Reinstall Nix
|
|
uses: ./
|
|
with:
|
|
logger: pretty
|
|
log-directives: nix_installer=trace
|
|
backtrace: full
|
|
reinstall: true
|
|
extra-conf: |
|
|
use-sqlite-wal = true
|
|
- 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: Verify the generated nix.conf
|
|
run: |
|
|
cat /etc/nix/nix.conf
|
|
grep -E "^trusted-users = .*$USER" /etc/nix/nix.conf
|
|
grep -E "^use-sqlite-wal = true" /etc/nix/nix.conf
|