nix-home/.github/workflows/deploy.yml

108 lines
3.7 KiB
YAML
Raw Normal View History

name: "Deploy to nki-personal"
on:
push:
branches:
- master
pull_request:
branches:
- master
types:
- opened
- synchronize
- reopened
- labeled
jobs:
2022-05-31 16:54:14 +00:00
test:
runs-on: ubuntu-latest
2022-05-31 17:21:39 +00:00
name: Formatting Check
2022-05-31 16:54:14 +00:00
steps:
- uses: actions/checkout@v2.3.4
2023-04-19 11:53:06 +00:00
- uses: cachix/install-nix-action@v20
2022-05-31 16:54:14 +00:00
with:
extra_nix_config: |
# Enable flakes
experimental-features = nix-command flakes
- name: Run format check
run: |
nix fmt
if [ -z "$(git status --untracked-files=no --porcelain)" ]; then
echo "Formatted, clean"
else
echo "The following files are unformatted:"
git status
false
fi
deploy:
2021-11-07 18:55:44 +00:00
if: "github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'Deploy')"
runs-on: ubuntu-latest
name: Deploy
steps:
- uses: actions/checkout@v2.3.4
2023-05-19 13:29:44 +00:00
- name: Notify deployment starting
run: |
2023-05-19 13:41:12 +00:00
git show --no-patch | curl \
2023-05-19 13:32:25 +00:00
--fail-with-body \
2023-05-19 13:29:44 +00:00
-u "${{ secrets.NTFY_CREDS }}" \
-H "X-Title: Deployment to nki-personal-do started" \
2023-05-19 13:44:56 +00:00
-H "X-Priority: 1" \
2023-05-19 13:29:44 +00:00
-H "X-Tags: cloud" \
2023-05-19 13:44:56 +00:00
-H "Actions: view, Open Job on GitHub, ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
2023-05-19 13:41:12 +00:00
-d "Commit info:
" \
2023-05-19 13:34:57 +00:00
-d @- \
2023-05-19 13:29:44 +00:00
https://ntfy.nkagami.me/nki-personal-do
- name: Add SSH key
env:
SSH_AUTH_SOCK: /tmp/ssh_agent.sock
run: |
mkdir -p /home/runner/.ssh
2023-05-17 12:14:56 +00:00
echo "${{ secrets.NIX_SECRETS_SSH_KEY }}" > /home/runner/.ssh/nix_secrets_key
echo "${{ secrets.NIX_DEPLOY_SSH_KEY }}" > /home/runner/.ssh/nix_deploy_key
chmod 600 /home/runner/.ssh/*
ssh-agent -a $SSH_AUTH_SOCK > /dev/null
ssh-add /home/runner/.ssh/*
ssh-keyscan ${{ secrets.INSTANCE_IP }} >> /home/runner/.ssh/known_hosts
2023-07-16 15:26:18 +00:00
ssh-keyscan git.dtth.ch >> /home/runner/.ssh/known_hosts
2023-04-19 11:53:06 +00:00
- uses: cachix/install-nix-action@v20
with:
2023-04-19 12:00:46 +00:00
extra_nix_config: |
# Enable flakes
experimental-features = nix-command flakes
# Deploy tokens
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
# Import my substituters
2023-06-03 11:50:26 +00:00
extra-substituters = https://natsukagami.cachix.org
extra-trusted-public-keys = natsukagami.cachix.org-1:3U6GV8i8gWEaXRUuXd2S4ASfYgdl2QFPWg4BKPbmYiQ=
- name: Deploy with deploy-rs
env:
SSH_AUTH_SOCK: /tmp/ssh_agent.sock
run: |
nix run .#deploy-rs -- . --hostname ${{ secrets.INSTANCE_IP }} -s -- -L
2023-05-19 13:29:44 +00:00
- name: Notify deployment succeeding
run: |
2023-05-19 13:41:12 +00:00
git show --no-patch | curl \
2023-05-19 13:32:25 +00:00
--fail-with-body \
2023-05-19 13:29:44 +00:00
-u "${{ secrets.NTFY_CREDS }}" \
-H "X-Title: Deployment to nki-personal-do succeeded" \
-H "X-Tags: tada,cloud" \
2023-05-19 13:44:56 +00:00
-H "Actions: view, Open Job on GitHub, ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
2023-05-19 13:41:12 +00:00
-d "Commit info:
" \
2023-05-19 13:34:57 +00:00
-d @- \
2023-05-19 13:29:44 +00:00
https://ntfy.nkagami.me/nki-personal-do
- name: Notify deployment failing
if: ${{ failure() }}
run: |
2023-05-19 13:41:12 +00:00
git show --no-patch | curl \
2023-05-19 13:32:25 +00:00
--fail-with-body \
2023-05-19 13:29:44 +00:00
-u "${{ secrets.NTFY_CREDS }}" \
-H "X-Title: Deployment to nki-personal-do failed" \
-H "X-Priority: 4" \
-H "X-Tags: warning,cloud" \
2023-05-19 13:44:56 +00:00
-H "Actions: view, Open Job on GitHub, ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
2023-05-19 13:41:12 +00:00
-d "Commit info:
" \
2023-05-19 13:34:57 +00:00
-d @- \
2023-05-19 13:29:44 +00:00
https://ntfy.nkagami.me/nki-personal-do