Skip to content

release

release #26

Workflow file for this run

# Automatically release new versions
name: "release"
on:
workflow_run:
workflows: [ "ci" ]
types: [ "completed" ]
jobs:
ReleaseDryRun:
runs-on: ubuntu-latest
# if: |
# github.event.repository.fork == false &&
# github.event.workflow_run.event == 'pull_request' &&
# github.event.workflow_run.conclusion == 'success' &&
# github.event.pull_request.merged == true &&
# github.ref == 'refs/heads/release'
# permissions:
# contents: write # to be able to publish a GitHub release
# issues: write # to be able to comment on released issues
# pull-requests: write # to be able to comment on released pull requests
outputs:
RESULT: ${{ steps.release_dry_run.outputs.result }}
VERSION: ${{ steps.release_dry_run.outputs.releaseVersion }}
RELEASE_NOTES: ${{ steps.release_dry_run.outputs.releaseNotes }}
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Install Node
uses: actions/setup-node@v4
with:
node-version: 'lts/*'
- name: Release (dry-run)
id: release_dry_run
uses: btnguyen2k/action-semrelease@v3
with:
dry-run: true
auto-mode: true
github-token: ${{ secrets.GITHUB_TOKEN }}
tag-major-release: false
tag-minor-release: false
branches: 'release'
tag-prefix: 'v'
tag-only: true
# uses: actions/github-script@v7
# with:
# github-token: ${{ secrets.GITHUB_TOKEN }}
# script: |
# console.log('Parsing release notes... πŸ•œ');
#
# const fileReleaseNotes = './RELEASE-NOTES.md';
# const reSemver = /^#+.*?[\s:-]v?((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)/;
# const fs = require('fs/promises');
# const file = await fs.open(`${fileReleaseNotes}`, `r`);
# const releaseNotes = []
# let enterReleaseNotes = false;
# let version = '';
# for await (const line of file.readLines({encoding: 'utf8'})) {
# const matches = line.match(reSemver)
# if (matches) {
# if (enterReleaseNotes) {
# break;
# }
# enterReleaseNotes = true;
# version = matches[1];
# } else if (enterReleaseNotes) {
# releaseNotes.push(line);
# }
# }
# if (version === '') {
# console.log('Stop 🚫');
# console.log(`No release version found in file <${fileReleaseNotes}>.`);
# return;
# }
# const tagName = `v${version}`;
## const tag = await github.rest.tags.get({
# # owner: context.repo.owner,
# # repo: context.repo.repo,
# # pull_number: pr_number,
# # });
#
#
## const releaseNotesData = fs.readFileSync('./RELEASE-NOTES.md', 'utf8');
## console.log(releaseNotesData);
#
## if (!context.payload.pull_request && (!context.payload.workflow_run.pull_requests || context.payload.workflow_run.pull_requests.length === 0)) {
## console.log('Not Merged 🚫');
## console.log('No pull_request found in payload.');
## return;
## }
## const pr_number = context.payload.pull_request ? context.payload.pull_request.number : context.payload.workflow_run.pull_requests[0].number
## console.log(`Merging PR <${pr_number}>... πŸ•œ`);
## const pr = await github.rest.pulls.get({
## owner: context.repo.owner,
## repo: context.repo.repo,
## pull_number: pr_number,
## });
## if (pr.data.user.login !== 'dependabot[bot]') {
## console.log('Not Merged 🚫');
## console.log(`User <${pr.data.user.login}> does not equal <dependabot[bot]>`);
## } else {
## await github.rest.pulls.merge({
## owner: context.repo.owner,
## repo: context.repo.repo,
## pull_number: pr_number,
## });
## console.log('Merged πŸŽ‰');
## }