8.0.3 • Published 1 year ago

@technote-space/release-github-actions v8.0.3

Weekly downloads
4
License
MIT
Repository
github
Last release
1 year ago

Release GitHub Actions

CI Status codecov CodeFactor License: MIT

Read this in other languages: English, 日本語.

これは GitHub Actions のリリースを自動化するための GitHub Actions です。
タグを作成するとこのアクションは自動で以下を行います。 1. ビルド実行 1. リリース用ブランチ作成 1. リリース用ブランチにタグを張り替え 1. 同じタグ名 かつ 公開済みのリリースが存在する場合、再度公開 (タグを張り替えた場合、リリースが下書き状態になるため)

Table of Contents

generated with TOC Generator

使用方法

例:.github/workflows/release.yml

#on:
#  push:
#    tags:
#      - "v*"

on: create

name: Release
jobs:
  release:
    name: Release GitHub Actions
    runs-on: ubuntu-latest
    steps:
      - uses: technote-space/release-github-actions@v6

対象イベントの詳細

CLI ツール

technote-space/release-github-actions-cli - GitHub

スクリーンショット

Release

オプション

namedescriptiondefaultrequirede.g.
BUILD_COMMANDビルド用コマンドコマンドの詳細yarn build:all
CLEAN_TARGETSリリース前に掃除するファイルやディレクトリ (カンマ区切り)絶対パスや .. は使用できませんコマンドの詳細.[!.]*,__tests__,docs,src,*.[jt]s,*.[mc][jt]s,*.json,*.lock,*.yml,*.yamltrue.[!.]*,*.txt
PACKAGE_MANAGER依存関係のインストールに使用するパッケージマネージャーyarn.lockpackage-lock.json がある場合は自動で使用するパッケージマネージャーを決定しますが、このオプションで強制することができますnpm または yarnyarn
COMMIT_MESSAGEコミット時に設定するメッセージfeat: build for releasetruefeat: release
COMMIT_NAMEコミット時に設定する名前github-actions[bot]true
COMMIT_EMAILコミット時に設定する名前41898282+github-actions[bot]@users.noreply.github.comtrue
BRANCH_NAMEGitHub Actions 用のブランチ名gh-actionstruegh-actions/${MAJOR}/${MINOR}/${PATCH}
BUILD_COMMAND_TARGETビルド用コマンド検索ターゲットprepare, build, production, prod, package, packcompile
ALLOW_MULTIPLE_BUILD_COMMANDS複数のビルドコマンド実行を許可するかどうかtruefalse
CREATE_MAJOR_VERSION_TAGメジャーバージョンタグ(例:v1)を作成するかどうかタグの詳細truefalse
CREATE_MINOR_VERSION_TAGマイナーバージョンタグ(例:v1.2)を作成するかどうかタグの詳細truefalse
CREATE_PATCH_VERSION_TAGパッチバージョンタグ(例:v1.2.3)を作成するかどうかタグの詳細truefalse
FETCH_DEPTH取得するコミット履歴の制限数35
TEST_TAG_PREFIXテスト用タグのプリフィックスtest/
CLEAN_TEST_TAGテストタグを掃除するかどうかfalsetrue
ORIGINAL_TAG_PREFIX元のタグを残す際に付与するプリフィックスoriginal/
DELETE_NODE_MODULESnode_modules を削除するかどうかfalsetrue
GITHUB_TOKENアクセストークン${{github.token}}true${{secrets.ACCESS_TOKEN}}

Execute commands

ビルド

  • preparebuildproductionprodpackage または pack が package.json の scripts に含まれる場合、ビルド用のコマンドとしてそれらを使用します。(BUILD_COMMAND_TARGET で変更可能です)
  • npm run installyarn install のようなインストール用コマンドが存在しない場合、インストール用コマンドが追加されます。

したがって、BUILD_COMMAND が設定されていない かつ package.json に build が存在する場合、以下のコマンドが実行されます。

yarn install
yarn build
yarn install --production

buildpack が含まれる場合は、以下のコマンドになります。

yarn install
yarn build
yarn pack
yarn install --production

ファイル削除

GitHub Actions の実行には「ビルドに使用するソース」や「テストファイル」、「テストの設定」などを必要としません。
そして GitHub Actions は使用されるたびにダウンロードされるため、ファイルは少ないほうが良いです。

CLEAN_TARGETS オプションはこの目的のために使用されます。
default: .[!.]*,__tests__,docs,src,*.[jt]s,*.[mc][jt]s,*.json,*.lock,*.yml,*.yaml

rm -rdf .[!.]*
rm -rdf *.js
rm -rdf *.mjs
rm -rdf *.ts
rm -rdf *.cts
rm -rdf *.json
rm -rdf *.lock
rm -rdf *.yml
rm -rdf *.yaml
rm -rdf __tests__ docs src

(action.yml は削除の対象ではありません)

Action イベント詳細

対象イベント

eventName: actioncondition
push: *condition
release: publishedcondition
create: *condition

condition

  • tags

動機

GitHub Actionsをリリースするには、すべてのビルドファイルと node_modules のような依存関係が必要ですが、通常はそれらをコミットしません。
したがってGitHub Actionsリリースする際には以下のような手順が必要です。
1. ローカルの開発用ブランチで開発 1. リリース用にビルド 1. node_modules のような依存モジュールを含めて必要なソースをリリース用ブランチにコミット 1. タグを付与 (メジャー、マイナー、パッチバージョンの考慮が必要) 1. GitHub にプッシュ 1. リリースを作成

リリースの度にこれらの手順を実行するのはとても面倒です。

この GitHub Actions を使用することで手順は単純になります。 1. ローカルの開発用ブランチで開発 1. リリースを作成 (タグを作成) 1. 自動化された手順が完了するのを待つ 1. リリース用にビルド 1. node_modules のような依存モジュールを含めて必要なソースをリリース用ブランチにコミット 1. タグを付与 (メジャー、マイナー、パッチバージョンの考慮が必要) 1. GitHub にプッシュ

補足

Tags

タグ名は Semantic Versioning に従っている必要があります。
以下のタグが作成されます。

  • 指定されたタグ名
  • メジャーバージョンのタグ名 (指定されたタグ名から生成)
    • 例:v1
  • マイナーバージョンのタグ名 (指定されたタグ名から生成)
    • 例:v1.2
  • パッチバージョンのタグ名 (指定されたタグ名から生成)
    • 例:v1.2.3

Author

GitHub (Technote)
Blog

8.0.3

1 year ago

8.0.2

1 year ago

8.0.1

2 years ago

7.2.4

2 years ago

7.2.3

2 years ago

7.2.2

2 years ago

7.2.1

2 years ago

7.2.0

2 years ago

7.1.1

2 years ago

7.1.0

2 years ago

7.0.8

2 years ago

7.0.7

3 years ago

7.0.6

3 years ago

7.0.5

3 years ago

7.0.4

3 years ago

7.0.3

3 years ago

7.0.2

3 years ago

7.0.1

3 years ago

7.0.0

3 years ago

6.2.7

3 years ago

6.2.6

3 years ago

6.2.5

3 years ago

6.2.4

3 years ago

6.2.3

3 years ago

6.2.2

4 years ago

6.2.1

4 years ago

6.2.0

4 years ago

6.1.0

4 years ago

6.0.12

4 years ago

6.0.11

4 years ago

6.0.10

4 years ago

6.0.9

4 years ago

6.0.8

4 years ago

6.0.7

4 years ago

6.0.6

4 years ago

6.0.5

4 years ago

6.0.4

4 years ago

6.0.3

4 years ago

6.0.2

4 years ago

6.0.1

4 years ago

6.0.0

4 years ago

5.0.2

4 years ago

5.0.1

4 years ago

5.0.0

4 years ago

4.1.1

4 years ago

4.1.0

4 years ago

4.0.0

4 years ago

3.1.3

4 years ago

3.1.2

4 years ago

3.1.0

4 years ago

3.0.5

4 years ago

3.0.4

4 years ago

3.0.3

4 years ago

3.0.2

4 years ago

3.0.1

4 years ago

3.0.0

4 years ago

2.0.11

4 years ago

2.0.10

4 years ago

2.0.9

4 years ago

2.0.8

4 years ago