refactor: footer chunks into components #98
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
--- | |
#------------------------------------------------------------------------------ | |
# Lawrence McDaniel - https://lawrencemcdaniel.com | |
# Version Bump Workflow for Python package openai_utils | |
# | |
# Calculate the version of the 'next' branch based on semantic-release rules. | |
# Compares the existing value of version.js to the calculated value. | |
# If they are different, it will update version.js and push the changes | |
# to the main branch. | |
#------------------------------------------------------------------------------ | |
name: Semantic Version Bump (next) | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- next | |
- next-major | |
jobs: | |
bump-version-next: | |
runs-on: ubuntu-latest | |
env: | |
VERSION_FILE: version.js | |
PACKAGE_PATH: ${{ github.workspace }}/src/shared/ | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Cache NPM dependencies | |
uses: actions/cache@v4 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node | |
- name: Setup Node.js environment | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '22.12.0' | |
- name: Install npm dev dependencies | |
run: yarn install --force | |
working-directory: ./ | |
- name: Get current version | |
# step 1 | |
# the current version persisted to version.js | |
id: current_version | |
shell: bash | |
run: | | |
echo "CURRENT_VERSION=$(node -p "require('./package.json').version")" >> $GITHUB_ENV | |
env: | |
GITHUB_TOKEN: ${{ secrets.PAT }} | |
- name: null step | |
id: null_step1 | |
run: echo "i ensure that CURRENT_VERSION is set." | |
- name: Get next version | |
# step 2 | |
# calculate the next version based on semantic-release rules | |
# this will return a null string is there in fact is no version bump. | |
# so set NEXT_VERSION to CURRENT_VERSION if there is no version bump. | |
id: next_version | |
run: | | |
NEXT_VERSION=$(npx semantic-release --dry-run --no-ci | awk '/The next release version is/{print $NF}') | |
echo "NEXT_VERSION=${NEXT_VERSION:-${{ env.CURRENT_VERSION }}}" >> $GITHUB_ENV | |
env: | |
GITHUB_TOKEN: ${{ secrets.PAT }} | |
CURRENT_VERSION: ${{ env.CURRENT_VERSION }} | |
- name: null step | |
id: null_step2 | |
run: echo "i ensure that NEXT_VERSION is set." | |
- name: Check versions | |
# step 3 | |
# compare the current version to the next version. | |
# if they are different, set VERSION_CHANGED to true | |
id: check_versions | |
run: | | |
if [ "$CURRENT_VERSION" != "$NEXT_VERSION" ]; then | |
echo "VERSION_CHANGED=true" >> $GITHUB_ENV | |
else | |
echo "VERSION_CHANGED=false" >> $GITHUB_ENV | |
fi | |
env: | |
CURRENT_VERSION: ${{ env.CURRENT_VERSION }} | |
NEXT_VERSION: ${{ env.NEXT_VERSION }} | |
- name: another null step | |
id: null_step3 | |
run: echo "i ensure that CURRENT_VERSION, NEXT_VERSION and VERSION_CHANGED are set." | |
- name: Update version.js | |
# step 4 | |
# if VERSION_CHANGED is true, update version.js and push the changes to the | |
# branch that triggered this workflow. | |
if: env.VERSION_CHANGED == 'true' | |
id: update_version | |
run: | | |
node ./src/shared/updateVersion.js ${{ env.NEXT_VERSION }} | |
git config --local user.email "[email protected]" | |
git config --local user.name "GitHub Action" | |
git add package.json | |
git commit -m "chore: [gh] Update package.json version to ${{ env.NEXT_VERSION }} [skip ci]" | |
git push https://${{ secrets.PAT }}@github.com/${{ github.repository }}.git HEAD:${{ github.ref }} | |
env: | |
VERSION_FILE: ${{ env.PACKAGE_PATH }}${{ env.VERSION_FILE }} | |
GITHUB_TOKEN: ${{ secrets.PAT }} | |
NEXT_VERSION: ${{ env.NEXT_VERSION }} | |
VERSION_CHANGED: ${{ env.VERSION_CHANGED }} |