diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 50acc35..bd98c8e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,62 +4,26 @@ on: push: pull_request: -# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. -# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. -concurrency: - group: "pages" - cancel-in-progress: false +defaults: + run: + shell: "nix shell nixpkgs#git-lfs --command {0}" jobs: build: - runs-on: ubuntu-22.04 container: nixpkgs/nix-flakes:nixos-24.05 steps: - - name: Setup NIX CI Environment - run: | - nix profile install nixpkgs#git-lfs nixpkgs#gnused - echo "substituters = https://nixpkgs-cache.qo.is?priority=39" >> /etc/nix/nix.conf - echo "trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" >> /etc/nix/nix.conf - mkdir -p ~/.config/nix && cp /etc/nix/nix.conf ~/.config/nix/ - - name: Checkout Repository - shell: "nix shell nixpkgs#git-lfs nixpkgs#gnused --command {0}" - run: | - git config --global credential.helper store - git config --global advice.detachedHead false - git lfs install - AUTH_URL=`echo -n "$GITHUB_SERVER_URL" | sed "s%https://%https://oauth2:$GITHUB_TOKEN@%"` - # Disable clone protection to pull LFS as well - GIT_CLONE_PROTECTION_ACTIVE=false git clone --branch $GITHUB_REF_NAME --recurse-submodules $AUTH_URL/$GITHUB_REPOSITORY . - - name: Run Nix Build - shell: "nix shell nixpkgs#git-lfs --command {0}" - run: nix build . - - name: Run Nix Checks - shell: "nix shell nixpkgs#git-lfs --command {0}" + - uses: https://git.qo.is/qo.is/actions-nix-init@main + + - name: Build + run: nix build + + - name: Run Checks run: nix flake check - - name: Deploy page + + - name: Deploy if: success() && github.ref == 'refs/heads/main' - shell: "nix shell nixpkgs#git-lfs --command {0}" run: | mkdir ~/.ssh/ (umask 0077 && printf "%s" "${{ secrets.SSH_DEPLOY_KEY }}" > ~/.ssh/id_ed25519 && echo >> ~/.ssh/id_ed25519) echo -e "Host lindberg-webapps.backplane.net.qo.is\n StrictHostKeyChecking no" >> ~/.ssh/config nix run .#deploy -# - uses: actions/upload-pages-artifact@v3 -# with: -# path: result/ - -# deploy: -# environment: -# name: github-pages -# url: ${{ steps.deployment.outputs.page_url }} -# runs-on: ubuntu-latest -# needs: build -# permissions: -# pages: write # to deploy to Pages -# id-token: write # to verify the deployment originates from an appropriate source -# steps: -# - name: Deploy to GitHub Pages -# id: deployment -# uses: actions/deploy-pages@v4 -# with: -# preview: true