107 lines
3.6 KiB
YAML
107 lines
3.6 KiB
YAML
name: "Deploy to nki-personal"
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
types:
|
|
- opened
|
|
- synchronize
|
|
- reopened
|
|
- labeled
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
name: Formatting Check
|
|
steps:
|
|
- uses: actions/checkout@v2.3.4
|
|
- uses: cachix/install-nix-action@v20
|
|
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:
|
|
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
|
|
- name: Notify deployment starting
|
|
run: |
|
|
git show --no-patch | curl \
|
|
--fail-with-body \
|
|
-u "${{ secrets.NTFY_CREDS }}" \
|
|
-H "X-Title: Deployment to nki-personal-do started" \
|
|
-H "X-Priority: 1" \
|
|
-H "X-Tags: cloud" \
|
|
-H "Actions: view, Open Job on GitHub, ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
|
|
-d "Commit info:
|
|
" \
|
|
-d @- \
|
|
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
|
|
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
|
|
- uses: cachix/install-nix-action@v20
|
|
with:
|
|
extra_nix_config: |
|
|
# Enable flakes
|
|
experimental-features = nix-command flakes
|
|
# Deploy tokens
|
|
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
|
|
# Import my substituters
|
|
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
|
|
- name: Notify deployment succeeding
|
|
run: |
|
|
git show --no-patch | curl \
|
|
--fail-with-body \
|
|
-u "${{ secrets.NTFY_CREDS }}" \
|
|
-H "X-Title: Deployment to nki-personal-do succeeded" \
|
|
-H "X-Tags: tada,cloud" \
|
|
-H "Actions: view, Open Job on GitHub, ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
|
|
-d "Commit info:
|
|
" \
|
|
-d @- \
|
|
https://ntfy.nkagami.me/nki-personal-do
|
|
- name: Notify deployment failing
|
|
if: ${{ failure() }}
|
|
run: |
|
|
git show --no-patch | curl \
|
|
--fail-with-body \
|
|
-u "${{ secrets.NTFY_CREDS }}" \
|
|
-H "X-Title: Deployment to nki-personal-do failed" \
|
|
-H "X-Priority: 4" \
|
|
-H "X-Tags: warning,cloud" \
|
|
-H "Actions: view, Open Job on GitHub, ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
|
|
-d "Commit info:
|
|
" \
|
|
-d @- \
|
|
https://ntfy.nkagami.me/nki-personal-do
|
|
|