Skip to content

Commit e783ec4

Browse files
feat: Build for release
1 parent 5e1a5ad commit e783ec4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+2630
-4917
lines changed

README.ja.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
- [BUILD_COMMAND_TARGET](#build_command_target)
3131
- [CREATE_MAJOR_VERSION_TAG](#create_major_version_tag)
3232
- [CREATE_MINOR_VERSION_TAG](#create_minor_version_tag)
33+
- [CREATE_PATCH_VERSION_TAG](#create_patch_version_tag)
3334
- [OUTPUT_BUILD_INFO_FILENAME](#output_build_info_filename)
3435
- [FETCH_DEPTH](#fetch_depth)
3536
- [TEST_TAG_PREFIX](#test_tag_prefix)
@@ -129,6 +130,11 @@ default: `true`
129130
default: `true`
130131
[タグの詳細](#tags)
131132

133+
### CREATE_PATCH_VERSION_TAG
134+
パッチバージョンタグ(例:v1.2.3)を作成するかどうか
135+
default: `true`
136+
[タグの詳細](#tags)
137+
132138
### OUTPUT_BUILD_INFO_FILENAME
133139
ビルド情報を出力するファイル名
134140
default: `''`
@@ -180,7 +186,7 @@ default: `''`
180186
1. ローカルの開発用ブランチで開発
181187
1. リリース用にビルド
182188
1. `node_modules` のような依存モジュールを含めて必要なソースをリリース用ブランチにコミット
183-
1. タグを付与 (メジャーバージョンやマイナーバージョンの考慮が必要)
189+
1. タグを付与 (メジャー、マイナー、パッチバージョンの考慮が必要)
184190
1. GitHub にプッシュ
185191
1. リリースを作成
186192

@@ -192,7 +198,7 @@ default: `''`
192198
1. 自動化された手順が完了するのを待つ
193199
1. リリース用にビルド
194200
1. `node_modules` のような依存モジュールを含めて必要なソースをリリース用ブランチにコミット
195-
1. タグを付与 (メジャーバージョンやマイナーバージョンの考慮が必要)
201+
1. タグを付与 (メジャー、マイナー、パッチバージョンの考慮が必要)
196202
1. GitHub にプッシュ
197203

198204
## 補足
@@ -204,6 +210,8 @@ default: `''`
204210
- 例:`v1`
205211
- マイナーバージョンのタグ名 (指定されたタグ名から生成)
206212
- 例:`v1.2`
213+
- パッチバージョンのタグ名 (指定されたタグ名から生成)
214+
- 例:`v1.2.3`
207215

208216
## このアクションを使用しているアクションの例
209217
- [Release GitHub Actions](https://github.com/technote-space/release-github-actions)

README.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ Once you create a new tag, this action will automatically
3030
- [BUILD_COMMAND_TARGET](#build_command_target)
3131
- [CREATE_MAJOR_VERSION_TAG](#create_major_version_tag)
3232
- [CREATE_MINOR_VERSION_TAG](#create_minor_version_tag)
33+
- [CREATE_PATCH_VERSION_TAG](#create_patch_version_tag)
3334
- [OUTPUT_BUILD_INFO_FILENAME](#output_build_info_filename)
3435
- [FETCH_DEPTH](#fetch_depth)
3536
- [TEST_TAG_PREFIX](#test_tag_prefix)
@@ -130,6 +131,11 @@ Whether to create minor version tag (e.g. v1.2).
130131
default: `true`
131132
[Detail of tags](#tags)
132133

134+
### CREATE_PATCH_VERSION_TAG
135+
Whether to create patch version tag (e.g. v1.2.3).
136+
default: `true`
137+
[Detail of tags](#tags)
138+
133139
### OUTPUT_BUILD_INFO_FILENAME
134140
Filename of build information.
135141
default: `''`
@@ -181,7 +187,7 @@ So if you want to release `GitHub Action`, you have to do following steps.
181187
1. Develop locally on the branch for develop
182188
1. Build for release
183189
1. Commit all source code including dependencies like `node_modules` to branch for release
184-
1. Add tags (consider major and minor versions)
190+
1. Add tags (consider major, minor and patch versions)
185191
1. Push to GitHub
186192
1. Publish release
187193

@@ -193,7 +199,7 @@ If you use this `GitHub Action`, the steps to do are simpler.
193199
1. Wait for the automated steps to finish
194200
1. Build for release
195201
1. Commit all source code including dependencies like `node_modules` to branch for release
196-
1. Add tags (consider major and minor versions)
202+
1. Add tags (consider major, minor and patch versions)
197203
1. Push to GitHub
198204

199205
## Addition
@@ -205,6 +211,8 @@ The following tags will be created.
205211
- e.g. `v1`
206212
- minor tag name (generated by tag name)
207213
- e.g. `v1.2`
214+
- patch tag name (generated by tag name)
215+
- e.g. `v1.2.3`
208216

209217
## Sample GitHub Actions using this Action
210218
- [Release GitHub Actions](https://github.com/technote-space/release-github-actions)

action.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ inputs:
3232
CREATE_MINOR_VERSION_TAG:
3333
description: Whether to create minor version tag.
3434
default: true
35+
CREATE_PATCH_VERSION_TAG:
36+
description: Whether to create patch version tag.
37+
default: true
3538
OUTPUT_BUILD_INFO_FILENAME:
3639
description: Filename of build information.
3740
default: ''

build.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"tagName":"v1.6.3","branch":"gh-actions","tags":["v1.6.3","v1","v1.6"],"updated_at":"2019-09-29T17:29:29.220Z"}
1+
{"tagName":"v1.6.4","branch":"gh-actions","tags":["v1.6.4","v1","v1.6"],"updated_at":"2019-10-05T05:23:13.158Z"}

lib/utils/command.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ exports.createBuildInfoFile = (context) => __awaiter(void 0, void 0, void 0, fun
5858
exports.cloneForBranch = (context) => __awaiter(void 0, void 0, void 0, function* () {
5959
const { pushDir, branchName } = misc_1.getParams();
6060
startProcess('Cloning the branch %s from the remote repo', branchName);
61-
yield helper.clone(pushDir, branchName, context);
61+
yield helper.cloneBranch(pushDir, branchName, context);
6262
});
6363
exports.checkBranch = (clonedBranch) => __awaiter(void 0, void 0, void 0, function* () {
6464
const { pushDir, branchName } = misc_1.getParams();

lib/utils/misc.js

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ exports.getTestTag = (tagName) => tagName.replace(getTestTagPrefixRegExp(), '');
7676
exports.getOriginalTagPrefix = () => core_1.getInput('ORIGINAL_TAG_PREFIX') || constant_1.DEFAULT_ORIGINAL_TAG_PREFIX;
7777
exports.isCreateMajorVersionTag = () => getBoolValue(core_1.getInput('CREATE_MAJOR_VERSION_TAG') || 'true');
7878
exports.isCreateMinorVersionTag = () => getBoolValue(core_1.getInput('CREATE_MINOR_VERSION_TAG') || 'true');
79+
exports.isCreatePatchVersionTag = () => getBoolValue(core_1.getInput('CREATE_PATCH_VERSION_TAG') || 'true');
7980
exports.getOutputBuildInfoFilename = () => {
8081
const filename = (core_1.getInput('OUTPUT_BUILD_INFO_FILENAME') || constant_1.DEFAULT_OUTPUT_BUILD_INFO_FILENAME).trim();
8182
if (filename.startsWith('/') || filename.includes('..')) {
@@ -88,26 +89,17 @@ const getVersionFragments = (tagName) => tagName.trim().replace(/^v?/gi, '').spl
8889
exports.getMajorTag = (tagName) => 'v' + getVersionFragments(tagName).slice(0, 1).join('.');
8990
// eslint-disable-next-line no-magic-numbers
9091
exports.getMinorTag = (tagName) => 'v' + getVersionFragments(tagName).concat(['0']).slice(0, 2).join('.');
92+
// eslint-disable-next-line no-magic-numbers
93+
exports.getPatchTag = (tagName) => 'v' + getVersionFragments(tagName).concat(['0', '0']).slice(0, 3).join('.');
9194
exports.isValidTagName = (tagName) => isSemanticVersioningTagName(tagName) || (exports.isTestTag(tagName) && isSemanticVersioningTagName(exports.getTestTag(tagName)));
9295
exports.getCreateTags = (tagName) => {
93-
const tagNames = [tagName];
94-
if (exports.isTestTag(tagName)) {
95-
if (exports.isCreateMajorVersionTag()) {
96-
tagNames.push(exports.getTestTagPrefix() + exports.getMajorTag(exports.getTestTag(tagName)));
97-
}
98-
if (exports.isCreateMinorVersionTag()) {
99-
tagNames.push(exports.getTestTagPrefix() + exports.getMinorTag(exports.getTestTag(tagName)));
100-
}
101-
}
102-
else {
103-
if (exports.isCreateMajorVersionTag()) {
104-
tagNames.push(exports.getMajorTag(tagName));
105-
}
106-
if (exports.isCreateMinorVersionTag()) {
107-
tagNames.push(exports.getMinorTag(tagName));
108-
}
109-
}
110-
return uniqueArray(tagNames);
96+
const settings = [
97+
{ condition: exports.isCreateMajorVersionTag, createTag: exports.getMajorTag },
98+
{ condition: exports.isCreateMinorVersionTag, createTag: exports.getMinorTag },
99+
{ condition: exports.isCreatePatchVersionTag, createTag: exports.getPatchTag },
100+
];
101+
const createTag = exports.isTestTag(tagName) ? (create) => exports.getTestTagPrefix() + create(exports.getTestTag(tagName)) : (create) => create(tagName);
102+
return uniqueArray(settings.filter(setting => setting.condition()).map(setting => createTag(setting.createTag)).concat(tagName));
111103
};
112104
exports.getParams = () => {
113105
const workDir = path_1.default.resolve(getWorkspace(), '.work');

0 commit comments

Comments
 (0)