diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/deploy.yml new file mode 100644 index 0000000..ba44516 --- /dev/null +++ b/.forgejo/workflows/deploy.yml @@ -0,0 +1,85 @@ +name: Deploy to production + +on: + push: + branches: [main] + workflow_dispatch: + +concurrency: + group: production-deploy + cancel-in-progress: false # niet cancelen — laat lopende deploys afmaken + +jobs: + deploy: + runs-on: self-hosted # host-mode op je app-server + timeout-minutes: 15 + + env: + DEPLOY_DIR: /opt/myapp + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 1 + + - name: Sync naar deploy-directory + run: | + set -euo pipefail + rsync -a --delete \ + --exclude='.git/' \ + --exclude='.forgejo/' \ + ./ "$DEPLOY_DIR/" + + - name: Schrijf .env vanuit secrets + working-directory: ${{ env.DEPLOY_DIR }} + env: + DATABASE_URL: ${{ secrets.DATABASE_URL }} + API_KEY: ${{ secrets.API_KEY }} + NODE_ENV: production + run: | + set -euo pipefail + umask 077 + cat > .env <