-
-
Notifications
You must be signed in to change notification settings - Fork 0
130 lines (113 loc) · 4.75 KB
/
scenario.yaml
File metadata and controls
130 lines (113 loc) · 4.75 KB
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
name: scenario
on:
push:
tags:
- 'scenario*'
env:
TAG_NAME: ${{ github.ref_name }}
RUNTYPE_READ_ONLY: readonly
RUNTYPE_READ_WRITE: readwrite
RUNTYPE_DEPLOY: deploy
RUNTYPE_ALL: all
jobs:
scenario-testing:
runs-on: ubuntu-latest
timeout-minutes: ${{ vars.DEFAULT_JOB_TIMEOUT_MIN == '' && 120 || vars.DEFAULT_JOB_TIMEOUT_MIN }}
steps:
- name: Install Package dependencies
run: |
sudo apt-get update
sudo apt-get install -y jq
- name: Check out code into the Go module directory
uses: actions/checkout@v4.1.1
- name: Setup Python
uses: actions/setup-python@v5.0.0
with:
cache: pip
python-version: '3.11'
- name: Install Python dependencies
run: |
pip3 install -r cicd/requirements.txt
- name: Ref Parse
run: |
_defaultRunType="${{ env.RUNTYPE_READ_ONLY }}"
tag_obj="$(python3 cicd/python/tag_parse.py '${{ github.ref_name }}' --parse-scenario-tag)"
echo "tag_obj: $tag_obj"
runID="$(echo "${tag_obj}" | jq -r '.run_id')"
runType="$(echo "${tag_obj}" | jq -r '.run_type')"
repositoryShorthand="$(echo "${tag_obj}" | jq -r '.repository_shorthand')"
artifactRepositoryFullName='stackql/stackql'
if [ "$repositoryShorthand" = "devel" ]; then
artifactRepositoryFullName='stackql/stackql-devel'
fi
if [ "$runType" = "" ]; then
runType="$_defaultRunType"
elif [ "$runType" != "${{ env.RUNTYPE_READ_ONLY }}" ] \
&& [ "$runType" != "${{ env.RUNTYPE_READ_WRITE }}" ] \
&& [ "$runType" != "${{ env.RUNTYPE_DEPLOY }}" ] \
&& [ "$runType" != "${{ env.RUNTYPE_ALL }}" ]
then
echo "Invalid run type: $runType"
exit 1
fi
{
echo "runID=$runID"
echo "artifactRepositoryFullName=$artifactRepositoryFullName"
echo "runType=$runType"
} >> "${GITHUB_ENV}"
- name: Download Artifact
uses: actions/download-artifact@v4.1.2
with:
name: stackql_linux_amd64
path: build
github-token: ${{ secrets.CI_STACKQL_PACKAGE_DOWNLOAD_TOKEN }}
repository: ${{ env.artifactRepositoryFullName }}
run-id: ${{ env.runID }}
- name: Stackql permissions
run: |
sudo chmod a+rwx build/stackql
ls -al build/stackql
{
echo "$(pwd)/build"
} >> "${GITHUB_PATH}"
- name: Check Stackql Version
run: |
stackql --version
- name: Persist secrets
run: |
echo "$GCP_RO_SECRET" > cicd/keys/testing/google-ro-credentials.json
echo "$GCP_RW_SECRET" > cicd/keys/testing/google-rw-credentials.json
shell: bash
env:
GCP_RO_SECRET: ${{ secrets.CI_SCENARIO_GCP_RO_SECRET }}
GCP_RW_SECRET: ${{ secrets.CI_SCENARIO_GCP_RW_SECRET }}
- name: Run Read Only Walkthrough Scenarios
if: ${{ env.runType == env.RUNTYPE_READ_ONLY || env.runType == env.RUNTYPE_ALL }}
env:
AWS_ACCESS_KEY_ID: ${{ secrets.CI_SCENARIO_RO_AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_SCENARIO_RO_AWS_SECRET_ACCESS_KEY }}
run: |
python3 test/python/markdown_testing/markdown_testing.py "$(pwd)" --test-root=docs/walkthroughs/readonly 2>&1 | tee cicd/log/markdown-readonly-testing-results.log
- name: Run Read Write Walkthrough Scenarios
if: ${{ env.runType == env.RUNTYPE_READ_WRITE || env.runType == env.RUNTYPE_ALL }}
env:
AWS_ACCESS_KEY_ID: ${{ secrets.CI_SCENARIO_RW_AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_SCENARIO_RW_AWS_SECRET_ACCESS_KEY }}
run: |
python3 test/python/markdown_testing/markdown_testing.py "$(pwd)" --test-root=docs/walkthroughs/readwrite 2>&1 | tee cicd/log/markdown-readwrite-testing-results.log
- name: Run Deploy Walkthrough Scenarios
if: ${{ env.runType == env.RUNTYPE_DEPLOY || env.runType == env.RUNTYPE_ALL }}
env:
AWS_ACCESS_KEY_ID: ${{ secrets.CI_SCENARIO_RW_AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_SCENARIO_RW_AWS_SECRET_ACCESS_KEY }}
run: |
python3 test/python/markdown_testing/markdown_testing.py "$(pwd)" --test-root=docs/walkthroughs/deploy 2>&1 | tee cicd/log/markdown-deploy-testing-results.log
- name: Upload Test Results
uses: actions/upload-artifact@v4.3.1
with:
name: scenario_test_results
path: cicd/log/markdown-*.log
- name: Cleanup
if: always()
run: |
rm -rf cicd/keys/testing