Manual trigger #37
Workflow file for this run
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 | |
- use custom testplan | |
default: '7.0.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' | |
default: 'PHP8.1/MySQL5.7' | |
description: 'Limit to one PHP/MySQL combination' | |
# custom_testplan is useful for workflow testing cases in feature branches | |
# for main dev branches like b-X.0.x we should avoid using it | |
custom_testplan: | |
type: string | |
required: true | |
description: 'URL/PATH of the testplan to run' | |
default: '~/defaults/7.0.x.yml,~/module-template.yml' | |
# runs_on is useful for workflow testing cases in feature branches | |
# for main dev branches like b-X.0.x we should avoid using it | |
runs_on: | |
type: string | |
description: 'JSON string/array describing the runner' | |
required: true | |
default: '"ubuntu-latest"' | |
# use_dev_version is useful for workflow testing cases in feature branches | |
# for main dev branches like b-X.0.x we should avoid using it | |
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 | |
PLAN="~/module-template.yml" | |
# shellcheck disable=SC2088 | |
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 | |
# shellcheck disable=SC2088 | |
case '${{ inputs.scenario}}' in | |
"7.0.x") TESTPLAN="~/defaults/7.0.x.yml,${LIMIT}${PLAN}" ;; | |
"7.1.x") TESTPLAN="~/defaults/7.1.x.yml,${LIMIT}${PLAN}" ;; | |
"7.2.x") TESTPLAN="~/defaults/7.2.x.yml,${LIMIT}${PLAN}" ;; | |
"8.0.x") TESTPLAN="~/defaults/8.0.x.yml,${LIMIT}${PLAN}" ;; | |
"use custom testplan") 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/universal_workflow_light.yml@v0 | |
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/universal_workflow_light.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 }} |