From 58698f569c36181a18c6efba875b3ab22ad45de3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Thu, 19 May 2022 17:18:37 +0200 Subject: [PATCH] Enhancement: Add composer/determine-root-version action --- CHANGELOG.md | 15 ++++++++-- .../determine-root-version/action.yaml | 29 +++++++++++++++++++ .../composer/determine-root-version/run.sh | 28 ++++++++++++++++++ 3 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 actions/composer/determine-root-version/action.yaml create mode 100755 actions/composer/determine-root-version/run.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index c5063bc..aa99848 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## Unreleased -For a full diff see [`1.4.1...main`][1.4.1...main]. +For a full diff see [`1.5.0...main`][1.5.0...main]. + +## [`1.5.0`][1.5.0] + +For a full diff see [`1.4.1...1.5.0`][1.4.1...1.5.0]. + +### Added + +- Added composite action `composer/determine-root-version` ([#87]), by [@localheinz] ### Fixed @@ -95,6 +103,7 @@ For a full diff see [`1.0.0...main`][1.0.0...main]. [1.3.2]: https://github.com/ergebnis/.github/releases/tag/1.3.2 [1.4.0]: https://github.com/ergebnis/.github/releases/tag/1.4.0 [1.4.1]: https://github.com/ergebnis/.github/releases/tag/1.4.1 +[1.5.0]: https://github.com/ergebnis/.github/releases/tag/1.5.0 [ca7f15d...1.0.0]: https://github.com/ergebnis/.github/compare/ca7f15d...1.0.0 [1.0.0...1.1.0]: https://github.com/ergebnis/.github/compare/1.0.0...1.1.0 @@ -105,7 +114,8 @@ For a full diff see [`1.0.0...main`][1.0.0...main]. [1.3.1...1.3.2]: https://github.com/ergebnis/.github/compare/1.3.1...1.3.2 [1.3.2...1.4.0]: https://github.com/ergebnis/.github/compare/1.3.2...1.4.0 [1.4.0...1.4.1]: https://github.com/ergebnis/.github/compare/1.4.0...1.4.1 -[1.4.1...main]: https://github.com/ergebnis/.github/compare/1.4.1...main +[1.4.1...1.5.0]: https://github.com/ergebnis/.github/compare/1.4.1...1.5.0 +[1.5.0...main]: https://github.com/ergebnis/.github/compare/1.5.0...main [#47]: https://github.com/ergebnis/.github/pull/47 [#48]: https://github.com/ergebnis/.github/pull/48 @@ -121,5 +131,6 @@ For a full diff see [`1.0.0...main`][1.0.0...main]. [#79]: https://github.com/ergebnis/.github/pull/79 [#80]: https://github.com/ergebnis/.github/pull/80 [#82]: https://github.com/ergebnis/.github/pull/82 +[#87]: https://github.com/ergebnis/.github/pull/87 [@localheinz]: https://github.com/localheinz diff --git a/actions/composer/determine-root-version/action.yaml b/actions/composer/determine-root-version/action.yaml new file mode 100644 index 0000000..016d19f --- /dev/null +++ b/actions/composer/determine-root-version/action.yaml @@ -0,0 +1,29 @@ +# https://docs.github.com/en/actions/creating-actions/creating-a-composite-action +# https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#inputs +# https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#runs-for-composite-run-steps-actions +# https://getcomposer.org/doc/03-cli.md#composer-root-version + +name: "Determine composer root version" + +description: "Determines the composer root version and exports it as COMPOSER_ROOT_VERSION environment variable" + +inputs: + branch: + default: "main" + description: "Name of the branch, e.g. \"main\"" + required: true + working-directory: + default: "." + description: "Which directory to use as working directory" + required: true + +runs: + using: "composite" + + steps: + - name: "Determine composer root version" + env: + COMPOSER_DETERMINE_ROOT_VERSION_BRANCH: "${{ inputs.branch }}" + COMPOSER_DETERMINE_ROOT_VERSION_WORKING_DIRECTORY: "${{ inputs.working-directory }}" + run: "${{ github.action_path }}/run.sh" + shell: "bash" diff --git a/actions/composer/determine-root-version/run.sh b/actions/composer/determine-root-version/run.sh new file mode 100755 index 0000000..0eb7444 --- /dev/null +++ b/actions/composer/determine-root-version/run.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +branch="${COMPOSER_DETERMINE_ROOT_VERSION_BRANCH}" +workingDirectory="${COMPOSER_DETERMINE_ROOT_VERSION_WORKING_DIRECTORY}" + +if [[ ! -d ${workingDirectory} ]]; then + echo "::error::The value for the \"working-directory\" input needs to be an existing directory. The directory \"${workingDirectory}\" does not exist." + + exit 1; +fi + +pathToComposerJsonFile="${COMPOSER_DETERMINE_ROOT_VERSION_WORKING_DIRECTORY}/composer.json" + +if [[ ! -f "${pathToComposerJsonFile}" ]]; then + echo "::error::A composer.json file could not be found in the directory \"${workingDirectory}\"." + + exit 1 +fi + +COMPOSER_ROOT_VERSION=$(jq --arg key "dev-${branch}" --raw-output '.["extra"]["branch-alias"][$key]' "${pathToComposerJsonFile}") + +if [[ null = "${COMPOSER_ROOT_VERSION}" ]]; then + echo "::error:A branch alias has not been defined in \"${pathToComposerJsonFile}\" for branch \"${branch}\"." + + exit 0 +fi + +echo "COMPOSER_ROOT_VERSION=${COMPOSER_ROOT_VERSION}" >> "${GITHUB_ENV}"