Skip to content

ORCA CI

ORCA CI #2416

Workflow file for this run

---
name: ORCA CI
on:
push:
# Prevent duplicate jobs on Dependabot PRs that interfere with automerge.
branches-ignore:
- 'dependabot/**'
pull_request:
schedule:
- cron: "0 0 * * *"
jobs:
build:
runs-on: ubuntu-24.04
env:
ORCA_SUT_NAME: acquia/drupal-recommended-project
ORCA_SUT_BRANCH: master
ORCA_VERSION: ${{ matrix.orca-version }}
ORCA_JOB: ${{ matrix.orca-job }}
# Google env variables.
ORCA_GOOGLE_API_CLIENT_ID: ${{ secrets.ORCA_GOOGLE_API_CLIENT_ID }}
ORCA_GOOGLE_API_CLIENT_SECRET: ${{ secrets.ORCA_GOOGLE_API_CLIENT_SECRET }}
ORCA_GOOGLE_API_REFRESH_TOKEN: ${{ secrets.ORCA_GOOGLE_API_REFRESH_TOKEN }}
strategy:
matrix:
orca-job:
- STATIC_CODE_ANALYSIS
- INTEGRATED_TEST_ON_PREVIOUS_MINOR
##- INTEGRATED_UPGRADE_TEST_FROM_PREVIOUS_MINOR
- ISOLATED_TEST_ON_CURRENT
- INTEGRATED_TEST_ON_CURRENT
- ISOLATED_TEST_ON_CURRENT_DEV
- INTEGRATED_TEST_ON_CURRENT_DEV
- ISOLATED_TEST_ON_NEXT_MINOR
- INTEGRATED_TEST_ON_NEXT_MINOR
- INTEGRATED_TEST_ON_NEXT_MINOR_DEV
- ISOLATED_TEST_ON_NEXT_MINOR_DEV
# We do not run deprecated code scans since they'd scan the entire
# codebase (since the SUT is the project template).
php-version: [ "8.3" ]
orca-version: [ "^4" ]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20.x
- uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
coverage: xdebug2
- name: Before install
run: |
composer create-project --no-dev acquia/orca ../orca "$ORCA_VERSION"
../orca/bin/ci/before_install.sh
if [[ ! "$ORCA_JOB" ]]; then composer install; fi
- name: Install
run: ../orca/bin/ci/install.sh
- name: Before script
run: ../orca/bin/ci/before_script.sh
- name: Script
run: ../orca/bin/ci/script.sh
- name: After script
run: ../orca/bin/ci/after_script.sh
- name: After success
if: ${{ success() }}
run: ../orca/bin/ci/after_success.sh
- name: After failure
if: ${{ failure() }}
run: ../orca/bin/ci/after_failure.sh
# Require all checks to pass without having to enumerate them in the branch protection UI.
# @see https://github.community/t/is-it-possible-to-require-all-github-actions-tasks-to-pass-without-enumerating-them/117957
all-successful:
if: always()
runs-on: ubuntu-latest
needs: [build]
steps:
- name: Decide whether the needed jobs succeeded or failed
uses: re-actors/alls-green@release/v1
with:
jobs: ${{ toJSON(needs) }}
- name: All checks successful
run: echo "🎉"