name: Deploy run-name: Deploy on: workflow_dispatch: jobs: deploy: runs-on: ubuntu-latest steps: - name: ๐Ÿ“‚ Checkout repository uses: actions/checkout@v4 - name: ๐Ÿงผ Clean ref name run: | ORIGINAL_REF_NAME="${{ gitea.ref_name }}" CLEAN_REF_NAME=${ORIGINAL_REF_NAME//\//-} echo "Clean ref name: $CLEAN_REF_NAME" echo "CLEAN_REF_NAME=$CLEAN_REF_NAME" >> $GITEA_ENV - name: โš™๏ธ Configure SSH Client run: | sudo apt-get update && sudo apt-get install -y sshpass mkdir -p ~/.ssh ssh-keyscan -p 22 "${{ secrets.SSH_HOST }}" >> ~/.ssh/known_hosts - name: ๐Ÿ—๏ธ Create docker-compose file env: SSHPASS: ${{ secrets.SSH_PASSWORD }} SSH_USERNAME: ${{ secrets.SSH_USERNAME }} SSH_HOST: ${{ secrets.SSH_HOST }} DEPLOY_DIRECTORY: ${{ secrets.DEPLOY_DIRECTORY }} REF_NAME: ${{ env.CLEAN_REF_NAME }} run: | sshpass -e ssh -p 22 "$SSH_USERNAME@$SSH_HOST" \ "mkdir -p \"$DEPLOY_DIRECTORY\" && \ cat > \"$DEPLOY_DIRECTORY/docker-compose-$REF_NAME.yml\"" \ < docker-compose.yml - name: ๐Ÿ” Create secrets env: SSHPASS: ${{ secrets.SSH_PASSWORD }} SSH_USERNAME: ${{ secrets.SSH_USERNAME }} SSH_HOST: ${{ secrets.SSH_HOST }} DEPLOY_DIRECTORY: ${{ secrets.DEPLOY_DIRECTORY }} BESZEL_AGENT_KEY: ${{ secrets.BESZEL_AGENT_KEY }} BESZEL_AGENT_TOKEN: ${{ secrets.BESZEL_AGENT_TOKEN }} GITEA_RUNNER_REGISTRATION_TOKEN: ${{ secrets._GITEA_RUNNER_REGISTRATION_TOKEN }} VAULTWARDEN_ADMIN_TOKEN: ${{ secrets.VAULTWARDEN_ADMIN_TOKEN }} run: | sshpass -e ssh -p 22 "$SSH_USERNAME@$SSH_HOST" env \ DEPLOY_DIRECTORY="$DEPLOY_DIRECTORY" \ BESZEL_AGENT_KEY="$BESZEL_AGENT_KEY" \ BESZEL_AGENT_TOKEN="$BESZEL_AGENT_TOKEN" \ GITEA_RUNNER_REGISTRATION_TOKEN="$GITEA_RUNNER_REGISTRATION_TOKEN" \ VAULTWARDEN_ADMIN_TOKEN="$VAULTWARDEN_ADMIN_TOKEN" \ bash -s << 'EOT' set -e cd "$DEPLOY_DIRECTORY" mkdir -p secrets echo "$BESZEL_AGENT_KEY" > secrets/beszel_agent_key.txt echo "$BESZEL_AGENT_TOKEN" > secrets/beszel_agent_token.txt echo "$GITEA_RUNNER_REGISTRATION_TOKEN" > secrets/gitea_runner_registration_token.txt echo "$VAULTWARDEN_ADMIN_TOKEN" > secrets/vaultwarden_admin_token.txt EOT