name: Pinback Release Refs on: push: tags: - 'v*' workflow_dispatch: jobs: pinback: runs-on: ubuntu-latest permissions: contents: write steps: - uses: actions/checkout@v6 with: ref: main token: ${{ secrets.GRAYBOT_PIN_BACK_PAT }} - name: Extract version id: version run: | VERSION="v$(jq -r '."."' .release-please-manifest.json)" echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT - name: Restore @main refs run: | sed -i "s|uses: graycoreio/github-actions-magento2/\([^@]*\)@[^ #]*|uses: graycoreio/github-actions-magento2/\1@main|g" \ */action.yml \ $(find .github/workflows \( -name "*.yml" -o -name "*.yaml" \) ! -name "release-pinback.yml") - name: Show changed files run: git diff - name: Check for local changes id: local-changes run: | if git diff --quiet --exit-code; then echo "HAS_LOCAL_CHANGES=false" >> $GITHUB_OUTPUT else echo "HAS_LOCAL_CHANGES=true" >> $GITHUB_OUTPUT fi - name: Commit changes if: ${{ steps.local-changes.outputs.HAS_LOCAL_CHANGES == 'true' }} env: GRAYBOT_GPG_KEY: ${{ secrets.GRAYBOT_GPG_KEY }} run: | echo "$GRAYBOT_GPG_KEY" | gpg --batch --import export GPG_KEY_ID=$(gpg --list-secret-keys --keyid-format LONG | grep sec | awk '{print $2}' | cut -d/ -f2) git config --global user.signingkey $GPG_KEY_ID git config --global commit.gpgSign true git config --global user.email "automation@graycore.io" git config --global user.name "Beep Boop" git checkout -b chore/pinback-${{ steps.version.outputs.VERSION }} git add . git commit -m "chore: restore internal action refs to @main" git push --force origin chore/pinback-${{ steps.version.outputs.VERSION }} - name: Open PR if: ${{ steps.local-changes.outputs.HAS_LOCAL_CHANGES == 'true' }} env: GH_TOKEN: ${{ secrets.GRAYBOT_PIN_BACK_PAT }} run: | BRANCH="chore/pinback-${{ steps.version.outputs.VERSION }}" EXISTING=$(gh pr list --head "$BRANCH" --json number --jq '.[0].number // empty') if [ -z "$EXISTING" ]; then gh pr create \ --base main \ --head "$BRANCH" \ --title "chore: restore internal action refs to @main after ${{ steps.version.outputs.VERSION }}" \ --body "Restores all internal \`graycoreio/github-actions-magento2\` action refs from \`${{ steps.version.outputs.VERSION }}\` back to \`@main\`." else echo "PR #$EXISTING already exists for $BRANCH — skipping creation" fi