Skip to content

prepare release

prepare release #27

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 }}"