Commit f421c512 authored by Yogev Ben David's avatar Yogev Ben David Committed by GitHub

Autogenerate changelog using github-release-notes (#382)

* Auto generate changelog

* Update .github/main.workflow

* Add skip-changelog as a valid PR label
parent ccc18858
workflow "Verify labels" { workflow "Verify labels" {
on = "pull_request" on = "pull_request"
resolves = "VerifyLabels" resolves = "Enforce PR label"
} }
action "VerifyLabels" { action "Enforce PR label" {
uses = "yogevbd/enforce-label-action@1.0.0" uses = "yogevbd/enforce-label-action@1.0.0"
secrets = ["GITHUB_TOKEN"] secrets = ["GITHUB_TOKEN"]
env = { env = {
VALID_LABELS = "bug,enhancement,feature" VALID_LABELS = "bug,enhancement,feature,skip-changelog"
} }
} }
\ No newline at end of file
module.exports = {
template: {
commit: ({message, url, author, name}) => `- [${message}](${url}) - ${author ? `@${author}` : name}`,
issue: "- {{name}} [{{text}}]({{url}})",
label: "[**{{label}}**]",
noLabel: "closed",
group: "\n#### {{heading}}\n",
changelogTitle: "# Changelog\n\n",
release: "## {{release}} ({{date}})\n{{body}}",
releaseSeparator: "\n---\n\n"
},
groupBy: {
"Enhancements:": ["enhancement", "internal"],
"Bug Fixes:": ["bug"],
"Features": ["feature"]
},
ignoreIssuesWith: [
"skip-changelog"
],
ignoreTagsWith: [
"snapshot"
],
dataSource: "prs",
changelogFileName: "CHANGELOG.gren.md",
tags: "all",
override: true,
generate: true
}
\ No newline at end of file
...@@ -63,7 +63,8 @@ ...@@ -63,7 +63,8 @@
"detox": "13.x.x", "detox": "13.x.x",
"jsc-android": "236355.x.x", "jsc-android": "236355.x.x",
"jest": "24.8.0", "jest": "24.8.0",
"metro-react-native-babel-preset": "0.55.x" "metro-react-native-babel-preset": "0.55.x",
"github-release-notes": "0.17.0"
}, },
"publishConfig": { "publishConfig": {
"registry": "https://registry.npmjs.org/" "registry": "https://registry.npmjs.org/"
......
...@@ -3,7 +3,7 @@ const exec = require('shell-utils').exec; ...@@ -3,7 +3,7 @@ const exec = require('shell-utils').exec;
const semver = require('semver'); const semver = require('semver');
const fs = require('fs'); const fs = require('fs');
const _ = require('lodash'); const _ = require('lodash');
const path = require('path'); const grenrc = require('../.grenrc');
// Workaround JS // Workaround JS
const isRelease = process.env.RELEASE_BUILD === 'true'; const isRelease = process.env.RELEASE_BUILD === 'true';
...@@ -99,7 +99,7 @@ function tagAndPublish(newVersion) { ...@@ -99,7 +99,7 @@ function tagAndPublish(newVersion) {
exec.execSync(`git tag -a ${newVersion} -m "${newVersion}"`); exec.execSync(`git tag -a ${newVersion} -m "${newVersion}"`);
exec.execSyncSilent(`git push deploy ${newVersion} || true`); exec.execSyncSilent(`git push deploy ${newVersion} || true`);
if (isRelease) { if (isRelease) {
updatePackageJsonGit(newVersion); updateGit(newVersion);
} }
} }
...@@ -115,14 +115,24 @@ function readPackageJson() { ...@@ -115,14 +115,24 @@ function readPackageJson() {
return JSON.parse(fs.readFileSync(getPackageJsonPath())); return JSON.parse(fs.readFileSync(getPackageJsonPath()));
} }
function updatePackageJsonGit(version) { function updateGit(version) {
exec.execSync(`git checkout ${BRANCH}`); exec.execSync(`git checkout ${BRANCH}`);
updatePackageJson(version);
generateChangelog();
exec.execSync(`git commit -m "Update package.json version to ${version} and generate CHANGELOG.gren.md [ci skip]"`);
exec.execSync(`git push deploy ${BRANCH}`);
}
function updatePackageJson(version) {
const packageJson = readPackageJson(); const packageJson = readPackageJson();
packageJson.version = version; packageJson.version = version;
writePackageJson(packageJson); writePackageJson(packageJson);
exec.execSync(`git add package.json`); exec.execSync(`git add package.json`);
exec.execSync(`git commit -m"Update package.json version to ${version} [ci skip]"`); }
exec.execSync(`git push deploy ${BRANCH}`);
function generateChangelog() {
exec.execSync('gren changelog');
exec.execSync(`git add ${grenrc.changelogFileName}`);
} }
run(); run();
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment