on: push: branches: - 'main' jobs: deploy: runs-on: docker container: image: node:lts-bullseye options: "--cap-add=NET_ADMIN --device=/dev/net/tun" name: Deploy blog to deuterium env: MACHINE: deuterium steps: - name: Setup Go id: go with: go-version: '>=1.23.0' uses: https://code.forgejo.org/actions/setup-go@v5 - name: Install tailscale deps id: deps run: | apt update && apt install -y sudo iptables iproute2 - name: Setup Tailscale id: tailscale uses: https://github.com/tailscale/github-action@v2 with: oauth-client-id: ${{ secrets.TS_OAUTH_CLIENT_ID }} oauth-secret: ${{ secrets.TS_OAUTH_CLIENT_SECRET }} tags: tag:public - name: See what happened to tailscale id: failscale if: failure() run: | cat ~/tailscaled.log - name: Fetch code id: fetch uses: https://code.forgejo.org/actions/checkout@v3 - name: Compile blog binary id: compile run: go build -o prose ./cmd/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/ echo $FILENAME "www@$MACHINE:/home/www/" ssh-keyscan $MACHINE scp $FILENAME "www@$MACHINE:/home/www/" ssh "www@$MACHINE" "tar -C /var/www/prose.nsood.in -xzf ~/$FILENAME" ssh "www@$MACHINE" "sudo systemctl restart prose"