name: Nix on: push: branches: - master pull_request: workflow_dispatch: schedule: # Run once per day - cron: '0 0 * * *' jobs: build: strategy: # Keep building the other channels if one fails fail-fast: false matrix: channel: - nixos-unstable - nixos-24.05 system: - aarch64-linux - x86_64-linux runs-on: ubuntu-latest permissions: contents: read packages: write steps: - uses: actions/checkout@v4 - name: Set up QEMU uses: docker/setup-qemu-action@v3 with: platforms: arm64 - uses: DeterminateSystems/nix-installer-action@main with: extra-conf: | extra-platforms = aarch64-linux - uses: DeterminateSystems/magic-nix-cache-action@main - name: Push to Docker Hub run: nix-shell --run ./ci.sh env: CI_PROJECT_PATH: 'nixpkgs' CI_REGISTRY: 'docker.io' CI_REGISTRY_AUTH: '${{ secrets.REGISTRY_AUTH }}' NIXPKGS_CHANNEL: '${{ matrix.channel }}' NIX_SYSTEM_NAME: '${{ matrix.system }}' - name: Push to GitHub Pages run: nix-shell --run ./ci.sh env: CI_PROJECT_PATH: 'nix-community/docker-nixpkgs' CI_REGISTRY: 'ghcr.io' CI_REGISTRY_AUTH: '${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}' NIXPKGS_CHANNEL: '${{ matrix.channel }}' NIX_SYSTEM_NAME: '${{ matrix.system }}' push-manifest: needs: [build] strategy: fail-fast: false matrix: channel: - nixos-unstable - nixos-24.05 runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: DeterminateSystems/nix-installer-action@main with: extra-conf: | extra-platforms = aarch64-linux - uses: DeterminateSystems/magic-nix-cache-action@main - run: nix-shell --run ./ci-manifests.sh env: CI_REGISTRY_AUTH: '${{ secrets.REGISTRY_AUTH }}' NIXPKGS_CHANNEL: '${{ matrix.channel }}' NIX_SYSTEM_NAME: '${{ matrix.system }}'