run-name: ${{ gitea.actor }}, deploy with ssh on: [push] env: BUILD_PATH: "." jobs: build: name: Build runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Detect package manager id: detect-package-manager run: | if [ -f "${{ github.workspace }}/yarn.lock" ]; then echo "manager=yarn" >> $GITHUB_OUTPUT echo "command=install" >> $GITHUB_OUTPUT echo "runner=yarn" >> $GITHUB_OUTPUT echo "lockfile=yarn.lock" >> $GITHUB_OUTPUT exit 0 elif [ -f "${{ github.workspace }}/package.json" ]; then echo "manager=npm" >> $GITHUB_OUTPUT echo "command=ci" >> $GITHUB_OUTPUT echo "runner=npx --no-install" >> $GITHUB_OUTPUT echo "lockfile=package-lock.json" >> $GITHUB_OUTPUT exit 0 else echo "Unable to determine package manager" exit 1 fi - name: Setup Node uses: actions/setup-node@v4 with: node-version: "20" cache: ${{ steps.detect-package-manager.outputs.manager }} cache-dependency-path: ${{ env.BUILD_PATH }}/${{ steps.detect-package-manager.outputs.lockfile }} - name: Install dependencies run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }} working-directory: ${{ env.BUILD_PATH }} - name: Build with Astro run: | ${{ steps.detect-package-manager.outputs.runner }} astro build working-directory: ${{ env.BUILD_PATH }} - name: Deploy to my server uses: up9cloud/action-rsync@master env: HOST: ${{ secrets.HOST }} KEY: ${{ secrets.KEY }} TARGET: ${{ secrets.DESTINATION_FOLDER }} VERBOSE: true USER: ${{ secrets.USERNAME }} ARGS: -az --exclude=/.git/ SSH_ARGS: '-p 22 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' SOURCE: ./dist/ PRE_SCRIPT: | echo start at: date -u POST_SCRIPT: "echo done at: && date -u" - name: Send mail uses: dawidd6/action-send-mail@v3 with: # Required mail server address if not connection_url: server_address: log101.dev # Server port, default 25: server_port: 465 # Optional whether this connection use TLS (default is true if server_port is 465) secure: true # Optional (recommended) mail server username: username: ${{secrets.MAIL_USERNAME}} # Optional (recommended) mail server password: password: ${{secrets.MAIL_PASSWORD}} # Required mail subject: subject: Gitea Actions job result # Required recipients' addresses: to: ffrknerdm@gmail.com # Required sender full name (address can be skipped): from: gitea@log101.dev # ignore_cert: true