From 6a0a73aaec382988d9167947edff56cbf27f0dfa Mon Sep 17 00:00:00 2001 From: Andrew Longosz Date: Fri, 4 Sep 2026 22:52:42 +0200 Subject: [PATCH 1/3] [GHA] Updated GitHub Actions workflows to latest versions and standards - Bumped actions/checkout to v7 and actions/setup-node to v7 across backend-ci.yaml and frontend-ci.yaml. - Replaced direct ramsey/composer-install steps in backend-ci.yaml with ibexa/gh-workflows/actions/composer-install@main using the standard secrets inputs. - Pinned smoench/deptrac-action to tag 1.0.2 instead of the master branch (violation fix). - Renamed the backend workflow to "Backend CI" and added a bare workflow_dispatch trigger. - Added a set -euo pipefail guard to the check-cs | cs2pr step so check-cs failures are no longer masked by the pipe. - Standardized all runners to ubuntu-26.04 (replaced ubuntu-latest, ubuntu-22.04 and ubuntu-24.04). - Dropped the stale "main" branch from push triggers in backend-ci.yaml, browser-tests.yaml and frontend-ci.yaml. - Replaced the legacy zendesk-based release workflow with the skeleton release.yaml calling the reusable release_bundle workflow. - Deleted the obsolete pr-assign.yaml workflow. Co-Authored-By: Claude Fable 5 --- .github/workflows/backend-ci.yaml | 38 ++++++++++++++---------- .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(+), 68 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..4e7a184 100644 --- a/.github/workflows/backend-ci.yaml +++ b/.github/workflows/backend-ci.yaml @@ -1,22 +1,22 @@ -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 @@ -26,24 +26,30 @@ jobs: extensions: 'pdo_sqlite, gd' tools: cs2pr - - uses: ramsey/composer-install@v2 + - uses: ibexa/gh-workflows/actions/composer-install@main 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,7 +61,7 @@ jobs: - '8.4' steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v7 - name: Setup PHP Action uses: shivammathur/setup-php@v2 @@ -65,10 +71,12 @@ jobs: extensions: pdo_sqlite, gd tools: cs2pr - - uses: "ramsey/composer-install@v1" + - uses: ibexa/gh-workflows/actions/composer-install@main 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 1c48f79f8da831125528fa25a201b3079fcd8e8c Mon Sep 17 00:00:00 2001 From: Andrew Longosz Date: Sat, 5 Sep 2026 19:33:29 +0200 Subject: [PATCH 2/3] [GHA] Passed the PHP version to the composer-install action explicitly The implicit matrix.php fallback inside the action is kept only for backwards compatibility (IBX-11907, gh-workflows#115); callers should state the version. --- .github/workflows/backend-ci.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/backend-ci.yaml b/.github/workflows/backend-ci.yaml index 4e7a184..2af1a6f 100644 --- a/.github/workflows/backend-ci.yaml +++ b/.github/workflows/backend-ci.yaml @@ -28,6 +28,7 @@ jobs: - uses: ibexa/gh-workflows/actions/composer-install@main with: + php-version: ${{ matrix.php }} gh-client-id: ${{ secrets.AUTOMATION_CLIENT_ID }} gh-client-secret: ${{ secrets.AUTOMATION_CLIENT_SECRET }} satis-network-key: ${{ secrets.SATIS_NETWORK_KEY }} @@ -73,6 +74,7 @@ jobs: - uses: ibexa/gh-workflows/actions/composer-install@main with: + php-version: ${{ matrix.php }} gh-client-id: ${{ secrets.AUTOMATION_CLIENT_ID }} gh-client-secret: ${{ secrets.AUTOMATION_CLIENT_SECRET }} satis-network-key: ${{ secrets.SATIS_NETWORK_KEY }} From 50e898cef0544dae55313293e8875b08549ee7dd Mon Sep 17 00:00:00 2001 From: Andrew Longosz Date: Wed, 9 Sep 2026 12:34:35 +0200 Subject: [PATCH 3/3] [GHA] Dropped setup-php steps made redundant by composer-install ibexa/gh-workflows/actions/composer-install@main runs shivammathur/setup-php itself, passing php-version, coverage, extensions and tools: cs2pr, so a job that also declares its own setup-php step configures PHP twice over. Removed 2 such step(s). Each one set exactly what the action already applies, so nothing had to move. --- .github/workflows/backend-ci.yaml | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/.github/workflows/backend-ci.yaml b/.github/workflows/backend-ci.yaml index 2af1a6f..b8fe7fb 100644 --- a/.github/workflows/backend-ci.yaml +++ b/.github/workflows/backend-ci.yaml @@ -18,14 +18,6 @@ jobs: steps: - uses: actions/checkout@v7 - - name: Setup PHP Action - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php }} - coverage: none - extensions: 'pdo_sqlite, gd' - tools: cs2pr - - uses: ibexa/gh-workflows/actions/composer-install@main with: php-version: ${{ matrix.php }} @@ -64,14 +56,6 @@ jobs: steps: - uses: actions/checkout@v7 - - name: Setup PHP Action - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php }} - coverage: none - extensions: pdo_sqlite, gd - tools: cs2pr - - uses: ibexa/gh-workflows/actions/composer-install@main with: php-version: ${{ matrix.php }}