name: Auto PR to main when version changes on: push: branches: - canary jobs: create-pr: runs-on: ubuntu-latest steps: - name: Checkout Repository uses: actions/checkout@v4 with: fetch-depth: 0 - name: Get version from package.json id: package_version run: echo "VERSION=$(jq -r .version ./apps/dokploy/package.json)" >> $GITHUB_ENV - name: Get latest GitHub tag id: latest_tag run: | LATEST_TAG=$(git ls-remote --tags origin | awk -F'/' '{print $3}' | sort -V | tail -n1) echo "LATEST_TAG=$LATEST_TAG" >> $GITHUB_ENV echo $LATEST_TAG - name: Compare versions id: compare_versions run: | if [ "${{ env.VERSION }}" != "${{ env.LATEST_TAG }}" ]; then VERSION_CHANGED="true" else VERSION_CHANGED="false" fi echo "VERSION_CHANGED=$VERSION_CHANGED" >> $GITHUB_ENV echo "Comparing versions:" echo "Current version: ${{ env.VERSION }}" echo "Latest tag: ${{ env.LATEST_TAG }}" echo "Version changed: $VERSION_CHANGED" - name: Check if a PR already exists id: check_pr run: | PR_EXISTS=$(gh pr list --state open --base main --head canary --json number --jq '. | length') echo "PR_EXISTS=$PR_EXISTS" >> $GITHUB_ENV env: GH_TOKEN: ${{ secrets.GH_PAT }} - name: Create Pull Request if: env.VERSION_CHANGED == 'true' && env.PR_EXISTS == '0' uses: peter-evans/create-pull-request@v7 with: token: ${{ secrets.GH_PAT }} title: "🚀 Release ${{ env.VERSION }}" body: | ## 🔄 Release ${{ env.VERSION }} This PR promotes changes from `canary` to `main` for version ${{ env.VERSION }}. ### 🔍 Changes Include: - Version bump to ${{ env.VERSION }} - All changes from canary branch ### ✅ Pre-merge Checklist: - [ ] All tests passing - [ ] Documentation updated - [ ] Docker images built and tested > 🤖 This PR was automatically generated from the canary branch base: main branch: canary draft: true assignees: siumauricio reviewers: siumauricio