feat: Integrate Bootstrap 5.3.3 via npm and Hugo modules #9
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## Updates demo site (https://github.com/zetxek/adritian-demo) | |
## taken from https://stackoverflow.com/a/68213855/570087 | |
name: PR demo site (on external PR) | |
## This will open a PR which will open a vercel preview URL in the demo site | |
on: | |
pull_request_target: | |
types: [labeled] | |
workflow_dispatch: | |
jobs: | |
update-demo: | |
env: | |
SOURCE_BRANCH_NAME: ${{ github.head_ref || github.ref_name }} # PR branch name | |
PR_NUMBER: ${{ github.event.number }} | |
runs-on: ubuntu-latest | |
if: contains(github.event.pull_request.labels.*.name, 'safe to test') | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
repository: zetxek/adritian-demo | |
token: ${{ secrets.PRIVATE_TOKEN_GITHUB }} | |
- name: Dump github context | |
run: echo "$GITHUB_CONTEXT" | |
shell: bash | |
env: | |
GITHUB_CONTEXT: ${{ toJson(github) }} | |
- name: Send pull-request | |
run: | | |
LATEST_TAG=$(git describe --tags --always) | |
LATEST_COMMIT=$(git rev-parse HEAD) | |
SOURCE_REPOSITORY="zetxek/adritian-free-hugo-theme" | |
REPOSITORY="zetxek/adritian-demo" | |
REPO_NAME=${{ github.event.pull_request.head.repo.full_name }} | |
FOLDER="bin/$REPOSITORY" | |
PR_URL="https://github.com/$SOURCE_REPOSITORY/pull/$PR_NUMBER" | |
BRANCH_NAME="theme-update/update-theme-to-$LATEST_TAG" | |
BASE_BRANCH="main" | |
ASSIGNEE="zetxek" | |
echo "Latest tag: $LATEST_TAG" | |
echo "Latest commit: $LATEST_COMMIT" | |
echo "PR URL: $PR_URL" | |
git config --global --add --bool push.autoSetupRemote true | |
# Clone the remote repository and change working directory to the | |
# folder it was cloned to. | |
git clone \ | |
--depth=1 \ | |
--branch=main \ | |
https://some-user:${{ secrets.PRIVATE_TOKEN_GITHUB }}@github.com/$REPOSITORY \ | |
$FOLDER | |
cd $FOLDER | |
# Setup the committers identity. | |
git config user.email "actions@github.com" | |
git config user.name "GitHub Actions - update theme module version" | |
# Create a new feature branch for the changes. | |
echo "Working branch: $BRANCH_NAME" | |
git checkout -b $BRANCH_NAME | |
# Commit the changes and push the feature branch to origin | |
git config --global --add --bool push.autoSetupRemote true | |
echo "Committing all changes." | |
git add --all | |
COMMIT_MSG_THEME='chore: update theme module version to `'"$LATEST_TAG"'`' | |
echo 'Updating theme module: '"$COMMIT_MSG_THEME" | |
git commit -am "$COMMIT_MSG_THEME" && git push --force || echo "No changes to theme" | |
# Copy content | |
cp themes/adritian-free-hugo-theme/exampleSite/hugo.toml hugo.toml | |
# Update URL | |
sed -i -e "s/\"https\:\/\/www\.adrianmoreno\.info\"/\"https\:\/\/adritian-demo\.vercel\.app\/\"/g" hugo.toml | |
COMMIT_MSG_CONFIG='chore: update config/content to `'"$LATEST_TAG"'` from https://github.com/zetxek/adritian-free-hugo-theme' | |
echo "Committing content/config: $COMMIT_MSG_CONFIG" | |
git commit -am "$COMMIT_MSG_CONFIG" && git push --force || echo "No changes to config" | |
echo "Pushing branch: $BRANCH_NAME" | |
git push origin $BRANCH_NAME --force | |
# Store the PAT in a file that can be accessed by the | |
# GitHub CLI. | |
echo "${{ secrets.PRIVATE_TOKEN_GITHUB }}" > token.txt | |
# Authorize GitHub CLI for the current repository and | |
# create a pull-requests containing the updates. | |
echo "Logging in to GitHub CLI." | |
gh auth login --with-token < token.txt | |
# Check if the PR already exists - if there's no "number" returned, we default to empty string | |
PR_EXISTS=$(gh pr list --state open --base $BASE_BRANCH --head $BRANCH_NAME --json number | jq '.[0].number // empty') | |
echo "PR_EXISTS: $PR_EXISTS" | |
# Check if there's a PR number. If the PR exists, update it (empty = it doesn't exist) | |
if [ -n "$PR_EXISTS" ]; then | |
echo "PR Exists. Updating pull-request..." | |
gh pr view | |
echo "✅ Pull-request created - done! " | |
# Else, we create it | |
else | |
echo "✨PR Does not exist yet. Creating pull-request..." | |
PR_TITLE='preview: update theme to `'$SOURCE_BRANCH_NAME'`' | |
echo 'PR title: '$PR_TITLE | |
PR_BODY="⚠️ The source PR is not merged yet - this is a preview PR. | |
🤖 This automated PR updates the theme version to a PR in the source repo: $PR_URL. | |
🔗 Triggered by https://github.com/zetxek/adritian-free-hugo-theme/actions/workflows/update-demo-pr.yml" | |
echo "PR body: "$PR_BODY | |
gh pr create \ | |
--title "$PR_TITLE" \ | |
--body "$PR_BODY" \ | |
--head $BRANCH_NAME \ | |
--base $BASE_BRANCH \ | |
--assignee $ASSIGNEE \ | |
--label preview | |
echo "✅ Pull-request created - done! " | |
fi | |