Starting release for mukulmishra18 PR merge #15
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
name: Merge | |
run-name: Starting release for ${{ github.actor }} PR merge | |
on: | |
push: | |
branches: | |
- feature/test-automated-release | |
pull_request: | |
types: | |
- closed | |
branches: | |
# Test branch for testing the merge workflow, will be changed to develop | |
- feature/test-automated-release | |
jobs: | |
if_merged: | |
#if: github.event.pull_request.merged == true | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout develop | |
uses: actions/checkout@v4 | |
with: | |
# For testing checkout to a temp branch, will be changed to develop | |
ref: feature/test-automated-release | |
# token: ${{ secrets.GH_TOKEN }} | |
- name: Install dep | |
run: npm ci | |
- name: Read package.json version | |
uses: actions/github-script@v6 | |
id: define-package-json-version | |
with: | |
script: | | |
const { version } = require('./package.json') | |
core.info(`performing a ${{ inputs.release-type }} release for existing version ${version}`) | |
core.setOutput('packageJsonVersion', version) | |
- name: Define release version | |
uses: actions/github-script@v6 | |
id: define-release-version | |
with: | |
script: | | |
const { defineReleaseVersion } = require('./.github/scripts/defineVersion.js') | |
return defineReleaseVersion({core}, 'minor', undefined, "${{ steps.define-package-json-version.outputs.packageJsonVersion }}" ) | |
- name: Bump package.json version | |
run: | | |
git pull | |
git config --global user.email '[email protected]' | |
git config --global user.name 'Automated Release' | |
npm version "${{ fromJson(steps.define-release-version.outputs.result).full }}" | |
- name: Update Changelog | |
uses: actions/github-script@v6 | |
with: | |
script: | | |
const fs = require('fs'); | |
const { updateChangeLog } = require('./.github/scripts/updateChangelog.js') | |
const stableVersion = '${{ fromJson(steps.define-release-version.outputs.result).full }}'.split('-')[0] | |
const releaseDate = new Date().toISOString().split('T')[0] | |
const data = fs.readFileSync('./CHANGELOG.md',{encoding:'utf8', flag:'r'}); | |
core.info(`Updating ${stableVersion} with date ${releaseDate} in Changelog`); | |
const changelogFileContents = updateChangeLog(data, stableVersion, releaseDate); | |
fs.writeFileSync('./CHANGELOG.md', changelogFileContents, 'utf-8'); | |
- name: Push changes | |
# Running a task with github token will not trigger a new workflow run | |
# token: ${{ secrets.GH_TOKEN }} | |
run: | | |
git add . | |
git commit -m "Bump version ${{ fromJson(steps.define-release-version.outputs.result).full }} and update changelog" | |
git push origin feature/test-automated-release | |
- name: Notify team | |
run: | | |
node ./.github/scripts/notifySlackTeam.js ${{ fromJson(steps.define-release-version.outputs.result).full }} CHANGELOG.md |