Manual trigger #10
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Manual trigger | |
# Matrix workflow using re-usable github actions | |
on: | |
workflow_dispatch: | |
inputs: | |
scenario: | |
type: choice | |
options: | |
- 7.0.x | |
- 7.1.x | |
- 8.0.x | |
- use custom testplan | |
default: '7.1.x' | |
description: 'Choose test scenario' | |
limit: | |
type: choice | |
options: | |
- 'no' | |
- 'PHP8.0/MySQL5.7' | |
- 'PHP8.0/MySQL8.0' | |
- 'PHP8.1/MySQL5.7' | |
- 'PHP8.1/MySQL8.0' | |
- 'PHP8.2/MySQL5.7' | |
- 'PHP8.2/MySQL8.0' | |
- 'PHP8.3/MySQL5.7' | |
- 'PHP8.3/MySQL8.0' | |
default: 'PHP8.1/MySQL5.7' | |
description: 'Limit to one PHP/MySQL combination' | |
custom_testplan: | |
type: string | |
required: true | |
description: 'URL/PATH of the testplan to run' | |
default: '~/defaults/7.0.x.yml,~/module-gdproptin.yml' | |
runs_on: | |
type: string | |
description: 'JSON string/array describing the runner' | |
required: true | |
default: '"ubuntu-latest"' | |
use_dev_version: | |
type: choice | |
options: ['no', 'v0'] | |
description: 'Use the dev version of github actions' | |
default: 'no' | |
jobs: | |
build_testplan: | |
runs-on: ${{ fromJson(inputs.runs_on) }} | |
outputs: | |
testplan: '${{ steps.build.outputs.testplan }}' | |
steps: | |
- name: 'Build testplan' | |
id: build | |
run: | | |
# Build testplan | |
# shellcheck disable=SC2088 # Tilde expansion happens in the workflow and not by bash | |
case '${{inputs.limit}}' in | |
"no") LIMIT='';; | |
"PHP8.0/MySQL5.7") LIMIT='~/defaults/php8.0_mysql5.7_only.yml,' ;; | |
"PHP8.0/MySQL8.0") LIMIT='~/defaults/php8.0_mysql8.0_only.yml,' ;; | |
"PHP8.1/MySQL5.7") LIMIT='~/defaults/php8.1_mysql5.7_only.yml,' ;; | |
"PHP8.1/MySQL8.0") LIMIT='~/defaults/php8.1_mysql8.0_only.yml,' ;; | |
"PHP8.2/MySQL5.7") LIMIT='~/defaults/php8.2_mysql5.7_only.yml,' ;; | |
"PHP8.2/MySQL8.0") LIMIT='~/defaults/php8.2_mysql8.0_only.yml,' ;; | |
"PHP8.3/MySQL5.7") LIMIT='~/defaults/php8.3_mysql5.7_only.yml,' ;; | |
"PHP8.3/MySQL8.0") LIMIT='~/defaults/php8.3_mysql8.0_only.yml,' ;; | |
*) echo "Illegal choice, fix the workflow" | |
exit 1 | |
;; | |
esac | |
case '${{ inputs.scenario}}' in | |
"7.0.x") | |
# shellcheck disable=SC2088 # Tilde expansion happens in the workflow and not by bash | |
TESTPLAN="~/defaults/7.0.x.yml,${LIMIT}~/module-gdproptin.yml" | |
;; | |
"7.1.x") | |
# shellcheck disable=SC2088 # Tilde expansion happens in the workflow and not by bash | |
TESTPLAN="~/defaults/7.1.x.yml,${LIMIT}~/module-gdproptin.yml" | |
;; | |
"8.0.x") | |
# shellcheck disable=SC2088 # Tilde expansion happens in the workflow and not by bash | |
TESTPLAN="${LIMIT}~/module-gdproptin.yml" | |
;; | |
"use custom testplan") | |
# shellcheck disable=SC2088 # Tilde expansion happens in the workflow and not by bash | |
TESTPLAN="${{ inputs.custom_testplan }}" | |
;; | |
*) | |
echo "Illegal choice, fix the workflow" | |
exit 1 | |
;; | |
esac | |
echo "testplan=${TESTPLAN}" | tee -a "${GITHUB_OUTPUT}" | |
dispatch_stable: | |
if: ${{ inputs.use_dev_version == 'no' }} | |
needs: build_testplan | |
uses: oxid-eSales/github-actions/.github/workflows/call-universal_test_workflow.yml@v4 | |
with: | |
testplan: ${{ needs.build_testplan.outputs.testplan }} | |
runs_on: ${{ inputs.runs_on }} | |
defaults: 'v4' | |
plan_folder: '.github/oxid-esales' | |
secrets: | |
DOCKER_HUB_USER: ${{ secrets.DOCKER_HUB_USER }} | |
DOCKER_HUB_TOKEN: ${{ secrets.DOCKER_HUB_TOKEN }} | |
CACHE_ENDPOINT: ${{ secrets.CACHE_ENDPOINT }} | |
CACHE_ACCESS_KEY: ${{ secrets.CACHE_ACCESS_KEY }} | |
CACHE_SECRET_KEY: ${{ secrets.CACHE_SECRET_KEY }} | |
enterprise_github_token: ${{ secrets.enterprise_github_token }} | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
dispatch_v0: | |
if: ${{ inputs.use_dev_version == 'v0' }} | |
needs: build_testplan | |
uses: oxid-eSales/github-actions/.github/workflows/call-universal_test_workflow.yml@v0 | |
with: | |
testplan: ${{ needs.build_testplan.outputs.testplan }} | |
runs_on: ${{ inputs.runs_on }} | |
defaults: 'v0' | |
plan_folder: '.github/oxid-esales' | |
secrets: | |
DOCKER_HUB_USER: ${{ secrets.DOCKER_HUB_USER }} | |
DOCKER_HUB_TOKEN: ${{ secrets.DOCKER_HUB_TOKEN }} | |
CACHE_ENDPOINT: ${{ secrets.CACHE_ENDPOINT }} | |
CACHE_ACCESS_KEY: ${{ secrets.CACHE_ACCESS_KEY }} | |
CACHE_SECRET_KEY: ${{ secrets.CACHE_SECRET_KEY }} | |
enterprise_github_token: ${{ secrets.enterprise_github_token }} | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} |