Skip to content

Add GH action to push hydrogen theme to external repo #34

Add GH action to push hydrogen theme to external repo

Add GH action to push hydrogen theme to external repo #34

name: (main) push to external repo
on:
push:
branches:
- main
paths:
- "templates/hydrogen-theme/**"
pull_request:
branches:
- main
jobs:
push-to-external-repo:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Determine branch
id: branch
run: |
if [ "${{ github.event_name }}" == "pull_request" ]; then
pr_number="${{ github.event.number }}"
echo "branch=pull-request-${pr_number}" >> $GITHUB_OUTPUT
else
echo "branch=main" >> $GITHUB_OUTPUT
fi
- name: Publish to external repository
uses: peaceiris/actions-gh-pages@v3
with:
deploy_key: ${{ secrets.SSH_DEPLOY_KEY }}
publish_dir: ./templates/hydrogen-theme
external_repository: ${{ vars.EXTERNAL_REPO }}
publish_branch: ${{ steps.branch.outputs.branch }}
allow_empty_commit: true
- name: Generate pull request comment
id: pr_comment
run: |
if [ "${{ github.event_name }}" == "pull_request" ]; then
preview_url="https://headless-clone-git-${{ steps.branch.outputs.branch }}-thomaskn1.vercel.app"
echo "body=A preview URL is being deployed to test this PR. It should be live in a short moment: ${preview_url}" >> $GITHUB_OUTPUT
fi
- name: Check Existing Comments
id: check-comments
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const existingComments = await github.rest.issues.listComments({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo
});
const marker = "${{ steps.pr_comment.outputs.body }}"
const existingComment = existingComments.data.find(comment => comment.body.includes(marker));
console.log(existingComment ? 'Existing comment found' : 'No existing comment found');
// Set an output to pass information to subsequent steps
console.log(`echo "existingCommentFound=${existingComment ? 'true' : 'false'}" >> $GITHUB_OUTPUT`);
console.log(`echo "existingCommentId=${existingComment ? existingComment.id : ''}" >> $GITHUB_OUTPUT`);
- name: Comment on Pull Request
if: steps.check-comments.outputs.existingCommentFound != 'true'
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: `${{ steps.pr_comment.outputs.body }}`
});