sakura icon indicating copy to clipboard operation
sakura copied to clipboard

githash.batの独自環境変数を分かりやすく再定義したい

Open berryzplus opened this issue 3 years ago • 3 comments

(必須) やりたいこと(=実現したいこと)

githash.batで定義している独自の環境変数を分かりやすい名前で再定義したいです。

現状は、以下のようにgithash.bat内でCI独自の環境変数を、独自の環境変数にマップしています。 https://github.com/sakura-editor/sakura/blob/6cc86abce18d8792ce88a114d2a4fbf3c86c3225/sakura/githash.bat#L72-L76

👆の例では CI_REPO_NAME が独自変数です。  独自変数の値として、appveyor では APPVEYOR_REPO_NAME を使い、  Azure Pipelines では BUILD_REPOSITORY_NAME を使うように定義しています。  定義のマッピングをバッチに記述するスタイルの関係上、現在 GitHub Actions には未対応です。  githash.bat が GitHub Actions に未対応である対策として #1664 が出ています。

(省略可) 解決手段の提案

CIには通常、独自の環境変数を定義する機能があります。

  • GitHub Actions なら独自環境変数を定義できます。
  • Azure Pipelines でも独自環境変数を定義できます。
  • Appveyorでさえも独自環境変数を定義できます。

CI環境の構成ファイルで 独自環境変数 CI_REPO_NAME を定義してやれば良いです。

定義すべき環境変数の数が多いのと、 現状の独自環境変数の変数名がやや分かりにくいのと、 変更結果を表示する CDlgAbout がテスト不能なのが理由で、 かなり前から放置していました。

対策するには CDlgAbout をテスト可能にする対応を行うのが正攻法なんですけど、これはちょっち大変な作業かも知れません。

berryzplus avatar May 09 '21 09:05 berryzplus

バージョン情報ダイアログに出て欲しい情報をテキトーに見繕って名前を振ってみました。

キー(名前) 説明
BUILD_SOURCE_HASH コミットハッシュ
BUILD_SOURCE_URL コミットがpushされている場合のリポジトリへのリンク
BUILD_SOURCE_TAG タグビルドの場合のタグ
BUILD_SOURCE_DIFF コミットがpushされている場合のsakura/sakura-editor masterとの差分ページへのリンク
BUILD_VERSION 累積コミット数
CI_BUILD_NAME ビルド環境を識別する名前
CI_BUILD_URL CIビルドの場合のビルドページへのリンク
PULL_REQUEST_URL PRの場合のPRページへのリンク

現状で定義されている環境変数はこれよりも数が多くて、名前が分かりにくいです。

  • BUILD_SOURCE_DIFFは現状にないリンクです。おいらの趣味で「あったらいいな」なので優先度「低」。
  • BUILD_VERSIONは #1687 と関連する提案です。現状で各CIのビルド番号を表示しているのを統一してはどうか、という話の一環。

berryzplus avatar Oct 02 '21 01:10 berryzplus

突き合わせてみるとこんな感じ。

キー(名前) 既存項目で似ている環境変数
BUILD_SOURCE_HASH GIT_COMMIT_HASH
BUILD_SOURCE_URL GIT_REMOTE_ORIGIN_URL
BUILD_SOURCE_TAG GIT_TAG_NAME
BUILD_SOURCE_DIFF (新規)
BUILD_VERSION (新規)
CI_BUILD_NAME (新規)
CI_BUILD_URL CI_BUILD_URL
PULL_REQUEST_URL GITHUB_PR_HEAD_URL

berryzplus avatar Oct 02 '21 01:10 berryzplus

誤: CI_BUILD_NAME 正: BUILD_ENV_NAME

ローカルビルドのときに CI_BUILD_* なのは変だから。

berryzplus avatar Oct 09 '21 07:10 berryzplus