prepare release #27
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Split monorepo - tagged | |
on: | |
push: | |
# see https://github.community/t/how-to-run-github-actions-workflow-only-for-new-tags/16075/10?u=tomasvotruba | |
tags: | |
- '*' | |
env: | |
CHECKOUT_SUBMODULES: "recursive" | |
jobs: | |
provide_data: | |
name: Provide data | |
# see json juggling: https://docs.github.com/en/free-pro-team@latest/actions/reference/context-and-expression-syntax-for-github-actions#example-6 | |
# see https://stackoverflow.com/a/62953566/1348344 | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: ${{ env.CHECKOUT_SUBMODULES }} | |
# required for matrix of packages set | |
- uses: shivammathur/setup-php@v2 | |
with: | |
php-version: 8.1 | |
coverage: none | |
env: | |
COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- uses: "ramsey/composer-install@v2" | |
- id: output_data | |
run: | | |
exclude_package_paths="$(vendor/bin/monorepo-builder skip-monorepo-split-packages --config=config/monorepo-builder/skip-monorepo-split-packages.php)" | |
echo "[Excluded package paths] $(echo $exclude_package_paths)" | |
exclude_package_path_arg="--exclude-package-path=$(echo $exclude_package_paths | sed -e 's/ / --exclude-package-path=/g')" | |
echo "matrix=$(vendor/bin/monorepo-builder package-entries-json --config=config/monorepo-builder/package-entries-json.php $(echo $exclude_package_path_arg))" >> $GITHUB_OUTPUT | |
echo "git_base_branch=$(vendor/bin/monorepo-builder env-var GIT_BASE_BRANCH --config=config/monorepo-builder/env-var.php)" >> $GITHUB_OUTPUT | |
echo "git_user_name=$(vendor/bin/monorepo-builder env-var GIT_USER_NAME --config=config/monorepo-builder/env-var.php)" >> $GITHUB_OUTPUT | |
echo "git_user_email=$(vendor/bin/monorepo-builder env-var GIT_USER_EMAIL --config=config/monorepo-builder/env-var.php)" >> $GITHUB_OUTPUT | |
# this step is needed, so the output gets to the next defined job | |
outputs: | |
matrix: ${{ steps.output_data.outputs.matrix }} | |
git_base_branch: ${{ steps.output_data.outputs.git_base_branch }} | |
git_user_name: ${{ steps.output_data.outputs.git_user_name }} | |
git_user_email: ${{ steps.output_data.outputs.git_user_email }} | |
split_monorepo_tagged: | |
needs: provide_data | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
package: ${{fromJson(needs.provide_data.outputs.matrix)}} | |
name: Split with tag - ${{ matrix.package.name }} (${{ matrix.package.path }}) | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: ${{ env.CHECKOUT_SUBMODULES }} | |
# this is required for "WyriHaximus/github-action-get-previous-tag" workflow | |
# see https://github.com/actions/checkout#fetch-all-history-for-all-tags-and-branches | |
fetch-depth: 0 | |
# see https://github.com/WyriHaximus/github-action-get-previous-tag | |
- id: previous_tag | |
uses: "WyriHaximus/github-action-get-previous-tag@master" | |
# Uses an action in the root directory | |
- name: Monorepo Split of ${{ matrix.package.name }} (${{ matrix.package.path }}) | |
uses: symplify/monorepo-split-github-action@1.1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }} | |
with: | |
branch: "${{ needs.provide_data.outputs.git_base_branch }}" | |
package-directory: '${{ matrix.package.path }}' | |
split-repository-organization: '${{ matrix.package.organization }}' | |
split-repository-name: '${{ matrix.package.name }}' | |
tag: ${{ steps.previous_tag.outputs.tag }} | |
user-name: "${{ needs.provide_data.outputs.git_user_name }}" | |
user-email: "${{ needs.provide_data.outputs.git_user_email }}" |