CI: fix not finding the binary in another directory (#49) #52
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
# Requires repo secret: PERSONAL_ACCESS_TOKEN with permissions: | |
# Contents: read and write | |
# Pull Requests: read | |
name: GitHub Release Drafter | |
on: | |
push: | |
branches: | |
- 'main' | |
workflow_dispatch: | |
inputs: | |
ref: | |
description: 'Git branch, tag, or SHA' | |
required: true | |
type: string | |
concurrency: | |
group: ${{ github.workflow }}-${{ inputs.ref || github.ref }} | |
cancel-in-progress: true | |
env: | |
ref: ${{ inputs.ref || github.sha || github.ref }} | |
jobs: | |
release: | |
runs-on: ubuntu-latest | |
permissions: | |
# actions/checkout@v4 | |
contents: read | |
# thollander/actions-comment-pull-request@v2 | |
pull-requests: write | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ env.ref }} | |
# auto-changelog needs a full fetch for tag info | |
fetch-depth: 0 | |
# Check to see if the package.json version has changed | |
- id: check | |
uses: EndBug/version-check@v2 | |
with: | |
file-name: packages/chdman/package.json | |
# NOTE: `diff-search:true` is preferred so that only the exact commit that bumps the | |
# version triggers this workflow, but `workflow_dispatch` doesn't carry commit or | |
# commit ref info that's needed for it. | |
diff-search: ${{ github.event_name != 'workflow_dispatch' && true || false }} | |
static-checking: ${{ github.event_name == 'workflow_dispatch' && 'localIsNew' || '' }} | |
file-url: ${{ github.event_name == 'workflow_dispatch' && 'https://unpkg.com/chdman/package.json' || '' }} | |
- if: steps.check.outputs.changed == 'true' | |
uses: volta-cli/action@v4 | |
- if: steps.check.outputs.changed == 'true' | |
run: npm ci --force | |
# Generate the release's markdown template | |
- if: steps.check.outputs.changed == 'true' | |
id: auto-changelog | |
run: | | |
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64) | |
{ | |
echo "MARKDOWN<<$EOF" | |
./node_modules/.bin/auto-changelog --stdout --commit-limit false --unreleased | |
echo "" | |
echo "" | |
echo "$EOF" | |
} >> "${GITHUB_OUTPUT}" | |
# Create/update the draft release | |
- if: steps.check.outputs.changed == 'true' | |
id: release-drafter | |
uses: release-drafter/release-drafter@v6 | |
with: | |
name: v${{ steps.check.outputs.version }} | |
tag: v${{ steps.check.outputs.version }} | |
version: ${{ steps.check.outputs.version }} | |
commitish: ${{ env.ref }} | |
env: | |
# NOTE(cemmer): PAT here causes the release to be made under your account. | |
# ${{ secrets.GITHUB_TOKEN }} would cause it to be created from `github-actions`, even when published. | |
GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }} | |
- if: ${{ steps.release-drafter.outputs.id }} | |
run: | | |
{ | |
echo "# v${{ steps.check.outputs.version }} @ ${{ env.ref }}" | |
echo "" | |
echo "${{ steps.release-drafter.outputs.html_url }}" | |
} >> "${GITHUB_STEP_SUMMARY}" | |
# Comment back on the PR that caused this push | |
- if: ${{ steps.release-drafter.outputs.id }} | |
id: pr-finder | |
run: | | |
GIT_SHA=$(git rev-parse HEAD) | |
echo "${GIT_SHA}" | |
PR_NUMBER=$(curl -L \ | |
--fail-with-body \ | |
--silent \ | |
-H "Accept: application/vnd.github+json" \ | |
-H "X-GitHub-Api-Version: 2022-11-28" \ | |
"https://api.github.com/repos/${GITHUB_REPOSITORY}/commits/${GIT_SHA}/pulls" \ | |
| jq --raw-output '.[0].number') | |
echo "PR_NUMBER=${PR_NUMBER}" >> "${GITHUB_OUTPUT}" | |
- if: ${{ steps.release-drafter.outputs.id }} | |
uses: thollander/actions-comment-pull-request@v2 | |
with: | |
message: | | |
## :octocat: GitHub release | |
This pull request resulted in the release: [v${{ steps.check.outputs.version }} @ ${{ env.ref }}](${{ steps.release-drafter.outputs.html_url }}) | |
_Comment generated by the [${{ github.workflow }}](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}/attempts/${{ github.run_attempt }}) workflow._ | |
comment_tag: gh-release | |
pr_number: ${{ steps.pr-finder.outputs.PR_NUMBER }} |