From 803bccd8abddd87c8863c4bc09dd67ad9f304c9d Mon Sep 17 00:00:00 2001 From: Andrew Longosz Date: Sun, 13 Sep 2026 17:23:08 +0200 Subject: [PATCH 1/2] IBX-11778: Updated GitHub Actions workflows to org standard (#22) For more details see https://ibexa.atlassian.net/browse/IBX-11778 and https://github.com/ibexa/core-search/pull/22 Key changes: * Renamed the CI workflow to "Backend CI" and added a bare workflow_dispatch trigger (IBX-12062) * Bumped actions/checkout and actions/setup-node to v7 * Pinned smoench/deptrac-action to the 1.0.2 tag instead of the master branch * Standardized all runner labels to ubuntu-26.04 * Replaced direct ramsey/composer-install steps with the shared ibexa/gh-workflows composer-install action, passing the PHP version explicitly (IBX-11907) * Dropped the setup-php steps made redundant by the composer-install action * Dropped the non-existent main branch from the push triggers of backend-ci, browser-tests and frontend-ci * Guarded the code style check with set -euo pipefail so cs2pr no longer masks check-cs failures (IBX-11853) * Replaced the legacy zendesk-based release workflow (with its actions/checkout@master pin) with the skeleton release.yaml calling the shared release_bundle.yml reusable workflow * Removed the deprecated pr-assign.yaml workflow --------- Co-Authored-By: Claude Fable 5 --- .github/workflows/backend-ci.yaml | 52 ++++++++++++---------------- .github/workflows/browser-tests.yaml | 1 - .github/workflows/frontend-ci.yaml | 7 ++-- .github/workflows/pr-assign.yaml | 10 ------ .github/workflows/release.yaml | 43 +++-------------------- 5 files changed, 31 insertions(+), 82 deletions(-) delete mode 100644 .github/workflows/pr-assign.yaml diff --git a/.github/workflows/backend-ci.yaml b/.github/workflows/backend-ci.yaml index 42da1ea..b8fe7fb 100644 --- a/.github/workflows/backend-ci.yaml +++ b/.github/workflows/backend-ci.yaml @@ -1,49 +1,48 @@ -name: Backend build +name: Backend CI on: push: branches: - - main - '[0-9]+.[0-9]+' pull_request: ~ + workflow_dispatch: ~ jobs: cs-fix: name: Run code style check - runs-on: "ubuntu-22.04" + runs-on: "ubuntu-26.04" strategy: matrix: php: - '8.1' steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v7 - - name: Setup PHP Action - uses: shivammathur/setup-php@v2 + - uses: ibexa/gh-workflows/actions/composer-install@main with: php-version: ${{ matrix.php }} - coverage: none - extensions: 'pdo_sqlite, gd' - tools: cs2pr - - - uses: ramsey/composer-install@v2 - with: - dependency-versions: "highest" + gh-client-id: ${{ secrets.AUTOMATION_CLIENT_ID }} + gh-client-secret: ${{ secrets.AUTOMATION_CLIENT_SECRET }} + satis-network-key: ${{ secrets.SATIS_NETWORK_KEY }} + satis-network-token: ${{ secrets.SATIS_NETWORK_TOKEN }} - name: Run code style check - run: composer run-script check-cs -- --format=checkstyle | cs2pr + shell: bash + run: | + set -euo pipefail + composer run-script check-cs -- --format=checkstyle | cs2pr deptrac: name: Deptrac - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v7 - name: Deptrac - uses: smoench/deptrac-action@master + uses: smoench/deptrac-action@1.0.2 tests: name: Tests - runs-on: "ubuntu-22.04" + runs-on: "ubuntu-26.04" timeout-minutes: 10 strategy: @@ -55,20 +54,15 @@ jobs: - '8.4' steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v7 - - name: Setup PHP Action - uses: shivammathur/setup-php@v2 + - uses: ibexa/gh-workflows/actions/composer-install@main with: php-version: ${{ matrix.php }} - coverage: none - extensions: pdo_sqlite, gd - tools: cs2pr - - - uses: "ramsey/composer-install@v1" - with: - dependency-versions: "highest" - composer-options: "--prefer-dist --no-progress --no-suggest" + gh-client-id: ${{ secrets.AUTOMATION_CLIENT_ID }} + gh-client-secret: ${{ secrets.AUTOMATION_CLIENT_SECRET }} + satis-network-key: ${{ secrets.SATIS_NETWORK_KEY }} + satis-network-token: ${{ secrets.SATIS_NETWORK_TOKEN }} - name: Setup problem matchers for PHPUnit run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" diff --git a/.github/workflows/browser-tests.yaml b/.github/workflows/browser-tests.yaml index b185650..2ec7851 100644 --- a/.github/workflows/browser-tests.yaml +++ b/.github/workflows/browser-tests.yaml @@ -3,7 +3,6 @@ name: Browser tests on: push: branches: - - main - '[0-9]+.[0-9]+' pull_request: ~ diff --git a/.github/workflows/frontend-ci.yaml b/.github/workflows/frontend-ci.yaml index f682738..6bd9c64 100644 --- a/.github/workflows/frontend-ci.yaml +++ b/.github/workflows/frontend-ci.yaml @@ -5,7 +5,6 @@ on: paths: - "**.js" branches: - - main - '[0-9]+.[0-9]+' pull_request: paths: @@ -14,12 +13,12 @@ on: jobs: frontend-test: name: Frontend build test - runs-on: "ubuntu-24.04" + runs-on: "ubuntu-26.04" timeout-minutes: 5 steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 + - uses: actions/checkout@v7 + - uses: actions/setup-node@v7 with: node-version: '18' - run: yarn install diff --git a/.github/workflows/pr-assign.yaml b/.github/workflows/pr-assign.yaml deleted file mode 100644 index ea9165c..0000000 --- a/.github/workflows/pr-assign.yaml +++ /dev/null @@ -1,10 +0,0 @@ -name: Assign Pull Request to maintainers - -on: - pull_request_target: ~ - -jobs: - assign: - uses: ibexa/gh-workflows/.github/workflows/pr-assign.yml@main - secrets: - robot-token: ${{ secrets.EZROBOT_PAT }} diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 1503cbe..beedd0c 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -1,4 +1,4 @@ -name: Automatic Changelog Generator for tag +name: Call Automatic Changelog Generator for tag Workflow on: push: @@ -7,40 +7,7 @@ on: - '!v*-alpha*' jobs: - release: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@master - - name: Set Environment - run: | - echo "BUILD_TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV - - name: Get previous release tag based on type - id: prevrelease - uses: ibexa/version-logic-action@master - with: - currentTag: ${{ env.BUILD_TAG }} - - - name: Generate changelog - id: changelog - uses: ibexa/changelog-generator-action@v2 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - jira_token: ${{ secrets.JIRA_TOKEN }} - currentTag: ${{ env.BUILD_TAG }} - previousTag: ${{ steps.prevrelease.outputs.previousTag }} - - - name: Print the changelog - run: echo "$CHANGELOG" - env: - CHANGELOG: ${{ steps.changelog.outputs.changelog }} - - - name: Create Release - id: create_release - uses: zendesk/action-create-release@v1 - with: - tag_name: ${{ env.BUILD_TAG }} - body: | - ${{ steps.changelog.outputs.changelog }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + create_release_for_tag: + uses: ibexa/gh-workflows/.github/workflows/release_bundle.yml@main + secrets: + JIRA_TOKEN: ${{ secrets.JIRA_TOKEN }} From ec601933ab01473f981ee2f4cdef6582664fc754 Mon Sep 17 00:00:00 2001 From: Andrew Longosz Date: Mon, 14 Sep 2026 22:02:31 +0200 Subject: [PATCH 2/2] IBX-11778: [GHA][Rector PHP] Reused shared Rector workflow The inline job in backend-ci.yaml was the only one left on the old form after the merge-up: ubuntu-24.04, checkout@v5, hand-rolled setup-php plus ramsey/composer-install. Replaced by the shared reusable workflow, same form as ibexa/connector-anthropic 5.0. rector.php and the ibexa/rector dev requirement are both present on this branch, so the gating holds. Co-Authored-By: Claude Opus 5 --- .github/workflows/backend-ci.yaml | 25 ------------------------- .github/workflows/rector.yaml | 17 +++++++++++++++++ 2 files changed, 17 insertions(+), 25 deletions(-) create mode 100644 .github/workflows/rector.yaml diff --git a/.github/workflows/backend-ci.yaml b/.github/workflows/backend-ci.yaml index 48be456..9a57f53 100644 --- a/.github/workflows/backend-ci.yaml +++ b/.github/workflows/backend-ci.yaml @@ -49,31 +49,6 @@ jobs: - name: Run deptrac run: composer run-script deptrac - rector: - name: Run rector - runs-on: "ubuntu-24.04" - strategy: - matrix: - php: - - '8.3' - steps: - - uses: actions/checkout@v5 - - - name: Setup PHP Action - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php }} - coverage: none - extensions: 'pdo_sqlite, gd' - tools: cs2pr - - - uses: ramsey/composer-install@v3 - with: - dependency-versions: highest - - - name: Run rector - run: vendor/bin/rector process --dry-run --ansi - tests: name: Tests runs-on: "ubuntu-26.04" diff --git a/.github/workflows/rector.yaml b/.github/workflows/rector.yaml new file mode 100644 index 0000000..804802a --- /dev/null +++ b/.github/workflows/rector.yaml @@ -0,0 +1,17 @@ +name: Rector PHP +on: + push: + branches: + - '[0-9]+.[0-9]+' + pull_request: ~ +jobs: + rector: + name: Run rector + uses: ibexa/gh-workflows/.github/workflows/rector.yml@main + with: + php-version: '8.3' + secrets: + AUTOMATION_CLIENT_ID: ${{ secrets.AUTOMATION_CLIENT_ID }} + AUTOMATION_CLIENT_SECRET: ${{ secrets.AUTOMATION_CLIENT_SECRET }} + SATIS_NETWORK_KEY: ${{ secrets.SATIS_NETWORK_KEY }} + SATIS_NETWORK_TOKEN: ${{ secrets.SATIS_NETWORK_TOKEN }}