Skip to content

chore(ci): better versioning script #38

chore(ci): better versioning script

chore(ci): better versioning script #38

name: Autobump
on:
pull_request:
# types: [closed]
jobs:
label-version-bump:
name: Bump version based on PR label
runs-on: ubuntu-22.04
if: |
github.event.pull_request.merged
&& (
contains(github.event.pull_request.labels.*.name, 'bump patch')
|| contains(github.event.pull_request.labels.*.name, 'bump minor')
|| contains(github.event.pull_request.labels.*.name, 'bump major')
)
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.base.ref }}
token: ${{ secrets.POSTHOG_BOT_GITHUB_TOKEN }}
fetch-depth: 0
- name: Setup Node.js lts/*
uses: actions/setup-node@v4
with:
node-version: lts/*
cache: 'yarn'
- name: Detect version bump type
id: bump-type
run: |
BUMP_TYPE=null
if [[ $BUMP_PATCH_PRESENT == 'true' ]]; then
BUMP_TYPE=patch
fi
if [[ $BUMP_MINOR_PRESENT == 'true' ]]; then
BUMP_TYPE=minor
fi
if [[ $BUMP_MAJOR_PRESENT == 'true' ]]; then
BUMP_TYPE=major
fi
echo "bump-type=$BUMP_TYPE" >> "$GITHUB_OUTPUT"
env:
BUMP_PATCH_PRESENT: ${{ contains(github.event.pull_request.labels.*.name, 'bump patch') }}
BUMP_MINOR_PRESENT: ${{ contains(github.event.pull_request.labels.*.name, 'bump minor') }}
BUMP_MAJOR_PRESENT: ${{ contains(github.event.pull_request.labels.*.name, 'bump major') }}
- name: Update version in package.json for packages we import in posthog
if: steps.bump-type.outputs.bump-type != 'null'
env:
BUMP_TYPE: ${{ steps.bump-type.outputs.bump-type }}
id: version-update
run: |
OUTPUT=$($GITHUB_WORKSPACE/scripts/version-packages.sh)
echo " --- DEBUG ZONE ---"
echo "$OUTPUT"
# Debug JSON format before parsing
echo "$OUTPUT" | jq .
echo " --- DEBUG ZONE ENDS ---"
echo "OLD_VERSION=$(echo "$OUTPUT" | jq -r '.old_version')" >> "$GITHUB_ENV"
echo "NEW_VERSION=$(echo "$OUTPUT" | jq -r '.new_version')" >> "$GITHUB_ENV"
# - name: Update CHANGELOG.md
# run: |
# CHANGELOG_HEADING="## $NEW_VERSION - $(date --iso-8601)"
# CHANGELOG_POINTS=$(git log v"$OLD_VERSION"..v"$NEW_VERSION" --pretty=format:%s --grep='^.*\d*)$' | sed -e 's/^/- /')
# mv CHANGELOG.md CHANGELOG.old.md
# echo -e "$CHANGELOG_HEADING\n\n$CHANGELOG_POINTS\n\n$(cat CHANGELOG.old.md)" > CHANGELOG.md
# rm CHANGELOG.old.md
# env:
# OLD_VERSION: ${{ env.OLD_VERSION }}
# NEW_VERSION: ${{ env.NEW_VERSION }}
#
# - name: Update the lockfile
# run: yarn install
#
# # then commit back to main,
# # needs to be able to bypass the branch protection
# - name: Commit bump
# if: steps.bump-type.outputs.bump-type != 'null'
# uses: EndBug/add-and-commit@v7
# with:
# branch: ${{ github.event.pull_request.base.ref }}
# message: "chore: Bump version to ${{ env.NEW_VERSION }}"
# github_token: ${{ secrets.POSTHOG_BOT_GITHUB_TOKEN }}