From a7b9b5fbfaccb849f61eb44d49f954be4c632cd0 Mon Sep 17 00:00:00 2001 From: Naman Sood Date: Wed, 28 Apr 2021 17:04:34 -0400 Subject: [PATCH 1/3] Add deploying GitHub Action (#1) --- .github/workflows/main.yml | 50 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..67f9eff --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,50 @@ +on: [push] + +jobs: + deploy: + runs-on: ubuntu-latest + name: Deploy blog to hydrogen + env: + MACHINE: hydrogen + steps: + - name: Setup Go 1.16 + id: go + uses: actions/setup-go@v2 + with: + go-version: '^1.16' + - name: Setup Tailscale + id: tailscale + uses: tailscale/tailscale-deploy-github@main + with: + authkey: ${{ secrets.TAILSCALE_AUTHKEY }} + version: 1.7.359 + - name: Add SSH key + id: ssh + env: + SSH_KEY: ${{ secrets.SSH_KEY }} + run: | + mkdir -p ~/.ssh + MACHINE_IP="$(tailscale ip -6 $MACHINE)" + ssh-keyscan $MACHINE_IP >> ~/.ssh/known_hosts + printf "%s" "$SSH_KEY" > ~/.ssh/key + chmod 600 ~/.ssh/key + + - name: Fetch code + id: fetch + uses: actions/checkout@v1 + + - name: Compile blog binary + id: compile + run: go build -o prose . + + - name: Build tarball and ship it + id: tarball + run: | + TIME=$(date +%Y%m%d-%H%M%S) + FILENAME=prose-${TIME}.tar.gz + mkdir -p static/css + tar -czf $FILENAME prose static/ styles/ templates/ posts/ + MACHINE_IP="$(tailscale ip -6 $MACHINE)" + echo $FILENAME "github@[$MACHINE_IP]:/home/github/" + scp -i ~/.ssh/key $FILENAME "github@[$MACHINE_IP]:/home/github/" + ssh -i ~/.ssh/key "github@$MACHINE_IP" "mkdir -p ~/prose && tar -C ~/prose -xzf ~/$FILENAME" From befe4bf3002fe64ad3e6eda8a7e7d612e3c9953b Mon Sep 17 00:00:00 2001 From: Naman Sood Date: Wed, 28 Apr 2021 17:22:54 -0400 Subject: [PATCH 2/3] .github: actually deploy when pushed to main Signed-off-by: Naman Sood --- .github/workflows/main.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 67f9eff..fb6c5a1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -47,4 +47,5 @@ jobs: MACHINE_IP="$(tailscale ip -6 $MACHINE)" echo $FILENAME "github@[$MACHINE_IP]:/home/github/" scp -i ~/.ssh/key $FILENAME "github@[$MACHINE_IP]:/home/github/" - ssh -i ~/.ssh/key "github@$MACHINE_IP" "mkdir -p ~/prose && tar -C ~/prose -xzf ~/$FILENAME" + ssh -i ~/.ssh/key "github@$MACHINE_IP" "tar -C /var/www/blog -xzf ~/$FILENAME" + ssh -i ~/.ssh/key "github@$MACHINE_IP" "sudo systemctl restart prose" From 2a78701938bc818c5d5e5213b4fc21c9634537d4 Mon Sep 17 00:00:00 2001 From: Naman Sood Date: Wed, 28 Apr 2021 17:24:00 -0400 Subject: [PATCH 3/3] .github: only run tests on main Signed-off-by: Naman Sood --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index fb6c5a1..960af2b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -4,6 +4,7 @@ jobs: deploy: runs-on: ubuntu-latest name: Deploy blog to hydrogen + if: github.ref == 'refs/heads/main' env: MACHINE: hydrogen steps: