-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
892e28e
commit 74a730d
Showing
2 changed files
with
49 additions
and
11 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,27 +4,28 @@ on: | |
push: | ||
branches: | ||
- main | ||
# This restricts the workflow to run only if files in `prompt-shared-state/` changed. | ||
paths: | ||
- 'prompt-shared-state/**' | ||
|
||
permissions: | ||
contents: write # Allows committing the version bump back to the repo | ||
contents: write # Required for creating branches/PRs | ||
pull-requests: write # Required for opening pull requests | ||
|
||
env: | ||
NPM_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} | ||
|
||
jobs: | ||
publish: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Check out repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Set up Node | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: '23.x' | ||
node-version: '16.x' | ||
registry-url: 'https://registry.npmjs.org' | ||
|
||
- name: Enable Corepack | ||
|
@@ -71,31 +72,66 @@ jobs: | |
;; | ||
esac | ||
- name: Commit version bump | ||
- name: Commit version bump and push to new branch | ||
id: commit_bump | ||
run: | | ||
# Configure git | ||
git config user.name "github-actions" | ||
git config user.email "[email protected]" | ||
# Stage and commit changes if package.json or yarn.lock changed in subfolder | ||
git add prompt-shared-state/package.json prompt-shared-state/yarn.lock || true | ||
# Stage and commit changes if package.json or yarn.lock changed | ||
git add prompt-shared-state/package.json prompt-shared-state/yarn.lock | ||
if ! git diff --cached --exit-code; then | ||
# Pull out the newly bumped version from package.json in subfolder | ||
# Pull out the newly bumped version | ||
NEW_VERSION=$(node -p "require('./prompt-shared-state/package.json').version") | ||
git commit -m "chore: bump prompt-shared-state version to $NEW_VERSION [skip ci]" | ||
git push origin HEAD:main | ||
COMMIT_MSG="chore: bump prompt-shared-state version to $NEW_VERSION [skip ci]" | ||
# Commit | ||
git commit -m "$COMMIT_MSG" | ||
# Create and push version-bump branch | ||
BRANCH_NAME="chore/bump-prompt-shared-state-$NEW_VERSION" | ||
git checkout -b "$BRANCH_NAME" | ||
git push origin "$BRANCH_NAME" | ||
echo "branch_name=$BRANCH_NAME" >> $GITHUB_OUTPUT | ||
echo "new_version=$NEW_VERSION" >> $GITHUB_OUTPUT | ||
else | ||
echo "No version bump commit required." | ||
fi | ||
- name: Create pull request | ||
if: ${{ steps.commit_bump.outputs.branch_name != '' }} | ||
uses: actions/github-script@v6 | ||
|
||
with: | ||
script: | | ||
const core = require('@actions/core'); | ||
const github = require('@actions/github'); | ||
const branchName = ${{ steps.commit_bump.outputs.branch_name }}; | ||
const newVersion = ${{ steps.commit_bump.outputs.new_version }}; | ||
const { data: pullRequest } = await github.pulls.create({ | ||
owner: github.context.repo.owner, | ||
repo: github.context.repo.repo, | ||
title: `chore: bump prompt-shared-state version to ${newVersion}`, | ||
head: branchName, | ||
base: 'main', | ||
body: 'This pull request was automatically opened by the version bump workflow.', | ||
draft: false | ||
}); | ||
core.setOutput('pull_request_number', pullRequest.number); | ||
- name: Build the package | ||
env: | ||
NPM_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} | ||
if: ${{ steps.commit_bump.outputs.branch_name != '' }} | ||
run: | | ||
cd prompt-shared-state | ||
yarn build | ||
- name: Publish to npm | ||
if: ${{ steps.commit_bump.outputs.branch_name != '' }} | ||
env: | ||
NPM_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} | ||
run: | | ||
|
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