diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/deploy.yml index 56ed6038..87259f27 100644 --- a/.forgejo/workflows/deploy.yml +++ b/.forgejo/workflows/deploy.yml @@ -1,15 +1,13 @@ # yamllint disable rule:line-length rule:truthy --- name: deploy-rs -run-name: ${{ github.actor }} - deploy-rs on: - workflow_dispatch: push: branches: - main paths: - 'flake.lock' - + workflow_dispatch: env: SSH_OPTS: "-q -A -o StrictHostKeyChecking=no" TS_OPTS: "--login-server=https://headscale.sysctl.io --accept-routes --accept-dns --hostname forgejo-runner" @@ -60,4 +58,45 @@ jobs: Repo: ${{ github.repository }} Status: ${{ job.status }} Commit: ${{ github.sha }} - + steamdeck: + runs-on: forgejo + container: + image: git.sysctl.io/albert/actions-images/nixos:latest + options: --mount type=bind,src=/dev/net/tun,dst=/dev/net/tun --privileged + steps: + - name: Add Gotify to Hosts + run: echo "100.64.0.5 gotify.sysctl.io" >> /etc/hosts + - name: Install SSH Keys + run: | + echo "${{ secrets.SSH_PRIVATE_KEY }}" > /root/.ssh/id_ed25519 + chmod 700 /root/.ssh + chmod 600 /root/.ssh/id_ed25519 + - name: Start Tailscale Daemon + run: | + tailscaled --no-logs-no-support --state=mem: & + - name: Connect to Headscale Network + run: | + tailscale up ${{ env.TS_OPTS }} --authkey ${{ secrets.TAILSCALE_KEY }} + tailscale status + - name: Update Repository + run: ssh ${{ env.SSH_OPTS }} albert@steamdeck.albert.hs.net "git -C /etc/nixos/git pull" + - name: NixOS Version (Pre) + run: ssh ${{ env.SSH_OPTS }} albert@steamdeck.albert.hs.net "nixos-version" + - name: Update NixOS + run: ssh ${{ env.SSH_OPTS }} albert@steamdeck.albert.hs.net "sudo nixos-rebuild switch --flake /etc/nixos/git" + - name: Update Home Manager + run: ssh ${{ env.SSH_OPTS }} albert@steamdeck.albert.hs.net "home-manager switch -b backup --flake /etc/nixos/git" + - name: NixOS Version (Post) + run: ssh ${{ env.SSH_OPTS }} albert@steamdeck.albert.hs.net "nixos-version" + - name: Send Notification + uses: actions/gotify-action@master + if: always() + with: + gotify_api_base: ${{ secrets.GOTIFY_URL }} + gotify_app_token: ${{ secrets.GOTIFY_TOKEN }} + notification_title: | + ${{ github.workflow }}: ${{ job.status }} + notification_message: | + Repo: ${{ github.repository }} + Status: ${{ job.status }} + Commit: ${{ github.sha }} diff --git a/.forgejo/workflows/update-flake-lock.yml b/.forgejo/workflows/update-flake-lock.yml index 877167b1..0fb15ac2 100644 --- a/.forgejo/workflows/update-flake-lock.yml +++ b/.forgejo/workflows/update-flake-lock.yml @@ -5,7 +5,7 @@ on: schedule: - cron: '0 0 * * 0' # runs weekly on Sunday at 00:00 jobs: - update: + update-flake-lock: runs-on: forgejo container: image: git.sysctl.io/albert/actions-images/nixos:latest diff --git a/.forgejo/workflows/update-steamdeck.yml b/.forgejo/workflows/update-steamdeck.yml index 47f18e34..453c222d 100644 --- a/.forgejo/workflows/update-steamdeck.yml +++ b/.forgejo/workflows/update-steamdeck.yml @@ -1,11 +1,15 @@ - # yamllint disable rule:line-length rule:truthy --- name: update-steamdeck on: - workflow_dispatch: # allows manual triggering + push: + branches: + - main + paths: + - 'flake.lock' schedule: - cron: '0 0 * * 0' # runs weekly on Sunday at 00:00 + workflow_dispatch: # allows manual triggering env: SSH_HOST: "albert@steamdeck.albert.hs.net" SSH_OPTS: "-q -A -o StrictHostKeyChecking=no"