on: push: branches: - main workflow_dispatch: jobs: deploy: runs-on: ubuntu-latest name: Deploy website to server env: MACHINE_USER_NAME: kenneth MACHINE_NAME: helian steps: - name: Setup Tailscale uses: tailscale/github-action@v3 with: oauth-client-id: ${{ secrets.TS_OAUTH_CLIENT_ID }} oauth-secret: ${{ secrets.TS_OAUTH_CLIENT_SECRET }} tags: tag:ci - name: Add SSH key env: SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} run: | mkdir -p ~/.ssh MACHINE_IP="$(tailscale ip -4 $MACHINE_NAME)" ssh-keyscan $MACHINE_IP >> ~/.ssh/known_hosts printf "%s" "$SSH_PRIVATE_KEY" > ~/.ssh/key # add a new line to the end of the private key file # otherwise it won't be loaded properly echo >> ~/.ssh/key chmod 600 ~/.ssh/key - name: Deploy website run: | MACHINE_IP="$(tailscale ip -4 $MACHINE_NAME)" ssh -i ~/.ssh/key "$MACHINE_USER_NAME:@$MACHINE_IP" /bin/bash << EOF cd /opt/website git pull cd ../ docker compose up --build --detach website EOF