From dd76d2467cc2a8614abc161313673838d2e00883 Mon Sep 17 00:00:00 2001 From: Vincent Chalamon <407859+vincentchalamon@users.noreply.github.com> Date: Sun, 13 Oct 2024 17:11:45 +0200 Subject: [PATCH] chore: add Upgrade GitHub workflow --- .github/workflows/upgrade.yml | 78 +++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 .github/workflows/upgrade.yml diff --git a/.github/workflows/upgrade.yml b/.github/workflows/upgrade.yml new file mode 100644 index 00000000..69291922 --- /dev/null +++ b/.github/workflows/upgrade.yml @@ -0,0 +1,78 @@ +# yaml-language-server: $schema=https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/github-workflow.json +name: Upgrade + +on: + push: + branches: + - chore/release-workflow + workflow_dispatch: ~ + +jobs: + upgrade: + name: Upgrade + if: ${{ github.repository == 'api-platform/demo' }} + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + steps: + - + name: Checkout + uses: actions/checkout@v4 + - + name: Setup PHP with Composer + uses: shivammathur/setup-php@v2 + with: + tools: composer + - + name: Get Composer Cache Directory + id: composer-cache + working-directory: api + run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + - + name: Cache Dependencies + uses: actions/cache@v4 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: ${{ runner.os }}-composer- + - + name: Update API Platform Dependencies + working-directory: api + run: composer update "api-platform/*" --no-install --no-scripts + - + name: Calculate Diff + working-directory: api + id: diff + run: | + echo "from-version=$(git diff composer.lock | grep -m 1 "api-platform/*" -A 2 | grep -oP '^-\s*"version": "v(.*)",' | sed -e 's/^-\s*"version": "v\(.*\)",$/\1/')" >> $GITHUB_OUTPUT + echo "to-version=$(git diff composer.lock | grep -m 1 "api-platform/*" -A 2 | grep -oP '^\+\s*"version": "v(.*)",' | sed -e 's/^\+\s*"version": "v\(.*\)",$/\1/')" >> $GITHUB_OUTPUT + - + name: Update API version + if: steps.diff.outputs.to-version != '' + run: | + sed -i "s/version: .*/version: ${{ steps.diff.outputs.to-version }}/g" api/config/packages/api_platform.yaml + sed -i "s/^version: .*/version: ${{ steps.diff.outputs.to-version }}/g" helm/api-platform/Chart.yaml + sed -i "s/^appVersion: .*/appVersion: ${{ steps.diff.outputs.to-version }}/g" helm/api-platform/Chart.yaml + - + name: Create Pull Request + uses: peter-evans/create-pull-request@v7 + if: steps.diff.outputs.to-version != '' + with: + branch: release/api-platform-${{ steps.diff.outputs.to-version }} + base: ${{ github.event.repository.default_branch }} + commit-message: "chore: upgrade API Platform to ${{ steps.diff.outputs.to-version }}" + sign-commits: true + title: "chore: upgrade API Platform to ${{ steps.diff.outputs.to-version }}" + body: | + Upgrade API Platform components to ${{ steps.diff.outputs.to-version }}. + + Update API version to ${{ steps.diff.outputs.to-version }}. + + Update Chart version to ${{ steps.diff.outputs.to-version }}. + labels: dependencies + reviewers: vincentchalamon + add-paths: | + api/composer.* + api/config/packages/api_platform.yaml + helm/api-platform/Chart.yaml