-
Notifications
You must be signed in to change notification settings - Fork 24
77 lines (73 loc) · 2.99 KB
/
trigger-circle-type.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
name: trigger-circleci-type
on:
workflow_dispatch:
inputs:
# these inputs will be shown to the user on GitHub Actions page
# and the user can simply check off the tags to run
# the two sets of tests covering most of the features
# NOTE: GitHub workflows are limited to ten input parameters
sanity:
description: Run the tests tagged "@sanity"
required: false
type: boolean
regression:
description: Run the tests tagged "@regression"
required: false
type: boolean
# tests for individual features - the user will need to type the tags
# comma-separated in order to avoid hitting then ten workflow input limit
testTags:
description: |
Other test tags to run, comma-separated. Includes @adding, @complete,
@editing, @item, @persistence, @routing
# a few other utility params
recordedRunTag:
description: Cypress Dashboard run tag
required: false
type: string
machines:
description: Number of machines to use
required: false
type: integer
default: 1
jobs:
trigger-circleci:
runs-on: ubuntu-22.04
steps:
- name: Print GitHub event inputs
env:
EVENT: ${{ toJson(github.event.inputs) }}
run: |
echo "$EVENT"
# all environment variables that start with GITHUB_
# https://github.com/bahmutov/print-env
npx @bahmutov/print-env GITHUB_
- name: Trigger CircleCI run
env:
CIRCLE_CI_API_TOKEN: ${{ secrets.CIRCLE_CI_API_TOKEN }}
# show parsed parameters when triggering the CircleCI pipeline
DEBUG: trigger-circleci-pipeline
run: |
# collect all input parameters into one string
TAGS=
if [[ "${{ github.event.inputs.sanity }}" == "true" ]]; then
TAGS="@sanity"
fi
if [[ "${{ github.event.inputs.regression }}" == "true" ]]; then
TAGS="$TAGS,@regression"
fi
if [[ "${{ github.event.inputs.testTags }}" != "" ]]; then
TAGS="$TAGS,${{ github.event.inputs.testTags }}"
fi
echo "Collected tags: $TAGS"
echo "Number of machines: ${{ github.event.inputs.machines }}"
echo "Optional dashboard run tag: ${{ github.event.inputs.recordedRunTag }}"
# using an environment variable makes it shorter in the next step
export RUN_TAG="${{ github.event.inputs.recordedRunTag }}"
# https://github.com/bahmutov/trigger-circleci-pipeline
# note that we need to quote the entire parameters string
# and escape quotes for individual parts that can have spaces in them
npx trigger-circleci-pipeline@1.9.1 \
--org bahmutov --project test-todomvc-using-app-actions \
--parameters "MACHINES=${{ github.event.inputs.machines }},RECORDED_RUN_TAG=\"${RUN_TAG}\",GREP_TAGS=\"${TAGS}\"" \
--branch $GITHUB_REF_NAME