Skip to content
Merged
46 changes: 16 additions & 30 deletions ci/build-envvars.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,22 @@

## githash.bat で設定する環境変数

|||ローカルビルド|Appveyor|Azure Pipelines|gitbash.h への出力|
|--|--|--|--|--|--|
|GIT_COMMIT_HASH|git の commit Hash|◎|◎|◎|◎|
|GIT_SHORT_COMMIT_HASH|git の commit Hash 短縮形|◎|◎|◎|◎|
|GIT_REMOTE_ORIGIN_URL|git remote origin URL|◎|◎|◎|◎|
|GIT_TAG_NAME|git の tag|◎|◎|◎|◎|
|CI_ACCOUNT_NAME|CI のアカウント名|×|◎|◎|◎|
|CI_REPO_NAME|リポジトリ名|×|◎|◎|◎|
|CI_BUILD_VERSION|CI のビルドバージョン (文字列)|×|◎|◎|◎|
|CI_BUILD_NUMBER|CI のビルド番号 (数値)|×|◎|◎|◎|
|CI_BUILD_URL|CI のビルドURL|×|◎|◎|◎|
|GITHUB_COMMIT_URL|GitHub の Commit URL|×|◎|◎|◎|
|GITHUB_PR_NUMBER|GitHub の PR 番号|×|○ (PRのみ)|○ (PRのみ)|○ (PRのみ)|
|GITHUB_PR_HEAD_COMMIT | GitHub の PR の Head commit Hash | × | ○ (PRのみ) | ○ (PRのみ) | ○ (PRのみ) |
|GITHUB_PR_HEAD_SHORT_COMMIT | GitHub の PR の Head commit Hash 短縮形 | × | ○ (PRのみ) | ○ (PRのみ) | ○ (PRのみ) |
|GITHUB_PR_HEAD_URL | GitHub の PR の Head commit の URL | × | ○ (PRのみ) | ○ (PRのみ) | ○ (PRのみ) |
|||ローカルビルド|Appveyor|gitbash.h への出力|
|--|--|--|--|--|
|GIT_COMMIT_HASH|git の commit Hash|◎|◎|◎|
|GIT_SHORT_COMMIT_HASH|git の commit Hash 短縮形|◎|◎|◎|
|GIT_REMOTE_ORIGIN_URL|git remote origin URL|◎|◎|◎|
|GIT_TAG_NAME|git の tag|◎|◎|◎|
|CI_ACCOUNT_NAME|CI のアカウント名|×|◎|◎|
|CI_REPO_NAME|リポジトリ名|×|◎|◎|
|CI_BUILD_VERSION|CI のビルドバージョン (文字列)|×|◎|◎|
|CI_BUILD_NUMBER|CI のビルド番号 (数値)|×|◎|◎|
|CI_BUILD_URL|CI のビルドURL|×|◎|◎|
|GITHUB_COMMIT_URL|GitHub の Commit URL|×|◎|◎|
|GITHUB_PR_NUMBER|GitHub の PR 番号|×|○ (PRのみ)|○ (PRのみ)|
|GITHUB_PR_HEAD_COMMIT | GitHub の PR の Head commit Hash | × |○ (PRのみ) |○ (PRのみ) |
|GITHUB_PR_HEAD_SHORT_COMMIT | GitHub の PR の Head commit Hash 短縮形 | × |○ (PRのみ) |○ (PRのみ) |
|GITHUB_PR_HEAD_URL | GitHub の PR の Head commit の URL | × |○ (PRのみ) |○ (PRのみ) |

## 入力として使用する環境変数

Expand All @@ -42,20 +42,6 @@ APPVEYOR_REPO_TAG_NAME は利用をやめて 代わりに GIT_TAG_NAME を使う
- 成果物に含まれる `set_appveyor_env.bat` を使用して設定することもできます。
* 上記の環境変数がどんな値になるのかは、過去の appveyor ビルドでのログを見ることによって確認できます。

### Azure Pipelines

|環境変数|説明|
|--|--|
|SYSTEM_TEAMFOUNDATIONSERVERURI | `https://dev.azure.com/sakuraeditor/` |
|BUILD_DEFINITIONNAME | Azure Pipeline のアカウント名 |
|SYSTEM_TEAMPROJECT | Azure Pipelines のプロジェクト名 |
|BUILD_REPOSITORY_PROVIDER | Pipeline が参照するリポジトリの種別 (GitHubの場合 "GitHub") |
|BUILD_REPOSITORY_NAME|リポジトリ名 (owner-name/repo-name)|
|BUILD_BUILDNUMBER|ビルドバージョン (文字列)|
|BUILD_BUILDID|ビルド番号 (数値)|
|SYSTEM_PULLREQUEST_PULLREQUESTNUMBER|Pull Request 番号|
|SYSTEM_PULLREQUEST_SOURCECOMMITID|Pull Request の Head commit Hash|

## githash.h で生成するマクロ

|生成するマクロ名|元にする環境変数|型|
Expand Down
50 changes: 7 additions & 43 deletions sakura/githash.bat
Original file line number Diff line number Diff line change
Expand Up @@ -88,77 +88,49 @@ exit /b 0
:set_repo_and_pr_variables
if defined APPVEYOR_REPO_NAME (
set CI_REPO_NAME=%APPVEYOR_REPO_NAME%
) else if defined BUILD_REPOSITORY_NAME (
set CI_REPO_NAME=%BUILD_REPOSITORY_NAME%
)

if defined APPVEYOR_ACCOUNT_NAME (
set CI_ACCOUNT_NAME=%APPVEYOR_ACCOUNT_NAME%
) else if defined BUILD_DEFINITIONNAME (
set CI_ACCOUNT_NAME=%BUILD_DEFINITIONNAME%
)

@rem ----------------------------------------------------------------------------------------------------------
@rem Be aware the following rules.
@rem BUILD_BUILDID (at azure pipeline) is the counterpart of APPVEYOR_BUILD_NUMBER (at appveyor).
@rem BUILD_BUILDNUMBER (at azure pipeline) is the counterpart of APPVEYOR_BUILD_VERSION (at appveyor).
@rem ----------------------------------------------------------------------------------------------------------
@rem This is super confusing.
@rem BUILD_BUILDNUMBER (at azure pipeline) and APPVEYOR_BUILD_NUMBER (at appveyor) are different information.
@rem ----------------------------------------------------------------------------------------------------------
if defined APPVEYOR_BUILD_NUMBER (
@rem APPVEYOR_BUILD_NUMBER=1624
set CI_BUILD_NUMBER=%APPVEYOR_BUILD_NUMBER%
) else if defined BUILD_BUILDID (
@rem example BUILD_BUILDID=672
set CI_BUILD_NUMBER=%BUILD_BUILDID%
)

if defined APPVEYOR_BUILD_VERSION (
@rem APPVEYOR_BUILD_VERSION=1.0.1624
set CI_BUILD_VERSION=%APPVEYOR_BUILD_VERSION%
) else if defined BUILD_BUILDNUMBER (
@rem example BUILD_BUILDNUMBER=20200205.4
set CI_BUILD_VERSION=%BUILD_BUILDNUMBER%
)

if defined APPVEYOR_PULL_REQUEST_NUMBER (
set GITHUB_PR_NUMBER=%APPVEYOR_PULL_REQUEST_NUMBER%
) else if defined SYSTEM_PULLREQUEST_PULLREQUESTNUMBER (
set GITHUB_PR_NUMBER=%SYSTEM_PULLREQUEST_PULLREQUESTNUMBER%
)

if defined APPVEYOR_PULL_REQUEST_HEAD_COMMIT (
set GITHUB_PR_HEAD_SHORT_COMMIT=%APPVEYOR_PULL_REQUEST_HEAD_COMMIT:~0,8%
set GITHUB_PR_HEAD_COMMIT=%APPVEYOR_PULL_REQUEST_HEAD_COMMIT%
) else if defined SYSTEM_PULLREQUEST_SOURCECOMMITID (
set GITHUB_PR_HEAD_SHORT_COMMIT=%SYSTEM_PULLREQUEST_SOURCECOMMITID:~0,8%
set GITHUB_PR_HEAD_COMMIT=%SYSTEM_PULLREQUEST_SOURCECOMMITID%
)

if "%BUILD_REPOSITORY_PROVIDER%"=="GitHub" (
set GITHUB_ON=1
)
if "%APPVEYOR_REPO_PROVIDER%"=="gitHub" (
set GITHUB_ON=1
)

set PREFIX_GITHUB=https://github.com
Comment thread
m-tmatma marked this conversation as resolved.
if "%GITHUB_ON%" == "1" (
set "GITHUB_COMMIT_URL=%PREFIX_GITHUB%/%CI_REPO_NAME%/commit/%GIT_COMMIT_HASH%"
@rem Not Pull Request
if "%GITHUB_PR_NUMBER%" == "" (
@rem No PR
) else (
@rem PR URL
set "GITHUB_PR_HEAD_URL=%PREFIX_GITHUB%/%CI_REPO_NAME%/pull/%GITHUB_PR_NUMBER%/commits/%GITHUB_PR_HEAD_COMMIT%"
)
set "GITHUB_COMMIT_URL=%PREFIX_GITHUB%/%CI_REPO_NAME%/commit/%GIT_COMMIT_HASH%"
@rem Not Pull Request
if "%GITHUB_PR_NUMBER%" == "" (
@rem No PR
) else (
@rem PR URL
set "GITHUB_PR_HEAD_URL=%PREFIX_GITHUB%/%CI_REPO_NAME%/pull/%GITHUB_PR_NUMBER%/commits/%GITHUB_PR_HEAD_COMMIT%"
)
exit /b 0

:set_ci_build_url
call :set_ci_build_url_for_appveyor
call :set_ci_build_url_for_azurepipelines
call :set_ci_build_url_for_githubactions
exit /b 0

Expand All @@ -172,14 +144,6 @@ exit /b 0
set CI_BUILD_URL=%APPVEYOR_URL%/project/%APPVEYOR_ACCOUNT_NAME%/%APPVEYOR_PROJECT_SLUG%/build/%APPVEYOR_BUILD_VERSION%
exit /b 0

:set_ci_build_url_for_azurepipelines
if not defined SYSTEM_TEAMFOUNDATIONSERVERURI exit /b 0
if not defined SYSTEM_TEAMPROJECT exit /b 0
if not defined BUILD_BUILDID exit /b 0
set BUILD_ENV_NAME=AZP
set CI_BUILD_URL=%SYSTEM_TEAMFOUNDATIONSERVERURI%%SYSTEM_TEAMPROJECT%/_build/results?buildId=%BUILD_BUILDID%
exit /b 0

:set_ci_build_url_for_githubactions
if not defined GITHUB_ACTIONS exit /b 0
if not "%GITHUB_ACTIONS%" == "true" exit /b 0
Expand Down
Loading