Update ci workflow to work with forgejo

This commit is contained in:
Fabian Hauser 2024-09-27 13:57:47 +03:00
parent 245fae8183
commit 9f95fc12b5

View file

@ -13,30 +13,53 @@ concurrency:
jobs:
build:
runs-on: ubuntu-22.04
container: nixpkgs/nix-flakes:nixos-24.05
steps:
- uses: actions/checkout@v3
with:
lfs: true
- uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
- name: Run `nix build`
- 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 .
- uses: actions/upload-pages-artifact@v3
with:
path: result/
- name: Run Nix Checks
shell: "nix shell nixpkgs#git-lfs --command {0}"
run: nix flake check
- name: Deploy page
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
# 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