Как указано в заголовке, я хочу знать, есть ли тег в SHA фиксации, который запустил сборку кода AWS.
Я просмотрел все переменные Env, используя printenv в моем файле buildspec.yml, и похоже, что единственное, что AWS codebuild захватывает из git, - это хеш фиксации. Я хочу знать, есть ли простой способ получить метку.
Я нажимаю коммит и тег в git одной командой:
git push origin <releaseBranch> : <version>
Я ищу веб-перехватчик github. Это ответ, который я получил от CodeBuild:
{"response":"Webhook received and build started: https://us-west-2.console.aws.amazon.com/codebuild/<projectSpecificStuff>/view/new","statusCode":200}
И в самом верху тела сообщения POST от веб-перехватчика:
{
"ref": "refs/tags/0.0.2",
"before": "0000000000000000000000000000000000000000",
"after": "6258048d01ca4aa18e7c27dac2d7a51ec5640421",
"created": true,
"deleted": false,
"forced": false,
"base_ref": "refs/heads/release-script",
...
}
Краткий ответ на момент написания этой статьи - нет. AWS Codebuild не поддерживает веб-перехватчик при создании тега.
Мой первоначальный вопрос был направлен на создание простой системы сборки с прикрепленной семантической версией. Я решил проблему с тегами, создав фильтр веток и сценарий bash.
1) Я сделал свой фильтр ветки
build-[0-9]+.[0-9]+.[0-9]+.
2) Я написал сценарий bash, который:
Простое создание удаленной ветки заставит github запустить push-перехватчик на AWS. У веб-перехватчиков есть имя ветки, которое вы можете использовать в своем скрипте сборки кода.
"ref": "refs/heads/build-0.2.11"