diff --git a/.github/workflows/nix.yml b/.github/workflows/nix.yml new file mode 100644 index 0000000..676995b --- /dev/null +++ b/.github/workflows/nix.yml @@ -0,0 +1,50 @@ +name: Test Nix + +on: + push: + branches: + - "**" + +jobs: + test: + strategy: + fail-fast: false + matrix: + platform: + - os: darwin + cpu: x86_64 + base: macos-13 # always x86_64-darwin + - os: darwin + cpu: arm64 + base: macos-14 # always arm64-darwin + - os: linux + cpu: x86_64 + base: ubuntu-24.04 # always x86_64-linux-gnu + - os: linux + cpu: aarch64 + base: arm-4core-linux-ubuntu24.04 # always aarch64-linux-gnu + nix: + - 24.05 + + name: Test Nix (${{ matrix.platform.cpu }}-${{ matrix.platform.os }}, ${{ matrix.nix }}) + runs-on: ${{ matrix.platform.base }} + + permissions: + contents: read + id-token: write + + steps: + - name: Check CPU arch + run: | + test "$(uname -m)" = "${{ matrix.platform.cpu }}" + - uses: actions/checkout@v4 + - uses: DeterminateSystems/nix-installer-action@v16 + - uses: DeterminateSystems/magic-nix-cache-action@v8 + - name: Print ruby version + run: | + nix develop --command which ruby + nix develop --command ruby --version + - name: Bundle install + run: nix develop --command bundle install + - name: Run tests + run: nix develop --command bundle exec rake docker:list