# The same pipeline on Gitea Actions, pushing to Gitea's built-in registry. # # The only differences from the GitHub version are the registry host and the # token: Gitea sets the same GITHUB_* variables, and the action reads them the # same way. Requires a runner whose label provides Docker. name: deploy on: push: branches: [main] concurrency: group: deploy-${{ github.ref }} cancel-in-progress: false env: # Your Gitea instance, which is also its container registry. REGISTRY: gitea.example.com jobs: check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "20" - run: npm ci - run: npm run lint - run: npm test build: needs: check runs-on: ubuntu-latest outputs: image: ${{ steps.meta.outputs.image }} steps: - uses: actions/checkout@v4 - uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} # Automatically provided by Gitea to every workflow run. password: ${{ secrets.GITEA_TOKEN }} - id: meta run: | image="$REGISTRY/$(echo "$GITHUB_REPOSITORY" | tr '[:upper:]' '[:lower:]'):${GITHUB_SHA::7}" echo "image=$image" >> "$GITHUB_OUTPUT" - uses: docker/build-push-action@v6 with: context: . push: true tags: ${{ steps.meta.outputs.image }} deploy: needs: build runs-on: ubuntu-latest steps: - uses: https://gitea.coolify.vojtkov.dev/usr_unknown/dokploy-deploy-action@v1 with: host: ${{ secrets.DOKPLOY_HOST }} api-key: ${{ secrets.DOKPLOY_API_KEY }} project: shop service: api docker-image: ${{ needs.build.outputs.image }} registry-url: ${{ env.REGISTRY }} registry-username: ${{ secrets.REGISTRY_USERNAME }} # A Gitea access token with read:package, not the ephemeral # GITEA_TOKEN: Dokploy needs credentials that outlive this run. registry-password: ${{ secrets.REGISTRY_TOKEN }} timeout: 900