-
Notifications
You must be signed in to change notification settings - Fork 10
157 lines (139 loc) · 5.14 KB
/
staging.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
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
name: Staging Partner Chains Tests
on:
schedule:
- cron: '0 4 * * *'
workflow_dispatch:
inputs:
keyword:
description: 'Run tests by keyword (-k)'
type: string
latest_mc_epoch:
description: 'Parametrize committee tests to verify whole last MC epoch'
type: boolean
log_level:
description: 'Log level'
required: true
default: 'info'
type: choice
options:
- critical
- error
- warning
- info
- debug
plan:
description: 'XRay Test Plan'
type: string
required: false
execution:
description: 'XRay Test Execution'
type: string
required: false
jobs:
run:
permissions:
id-token: write
contents: read
runs-on: eks
if: github.event.pull_request.draft == false
env:
TEST_ENVIRONMENT: staging
steps:
- name: set ssh-agent to binary host
uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.SSH_KEY_BINARY_HOST }}
- name: Acquire AWS Credentials
uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: ${{ secrets.AWS_ROLE_ARN_ }}
aws-region: "eu-central-1"
- name: checkout code
uses: actions/checkout@v4
with:
ref: ${{ github.event_name == 'workflow_dispatch' && github.ref_name || 'release-v1.3.x' }}
- name: Set deployment_version as env variable
run: echo "DEPLOYMENT_VERSION=$(jq -r .deployment_version ./config/substrate/staging_nodes.json)" >> $GITHUB_ENV
- name: Set XRay variables
run: |
if [ ! -z "${{ inputs.plan }}" ]; then
echo "TEST_PLAN=${{ inputs.plan }}" >> $GITHUB_ENV
elif [ ! -z "${{ inputs.execution }}" ]; then
echo "TEST_EXECUTION=${{ inputs.execution }}" >> $GITHUB_ENV
else
echo "TEST_PLAN=ETCM-9105" >> $GITHUB_ENV
fi
- name: set report_to_xray env variable
run: |
echo "REPORT_TO_XRAY=$([[ '${{ github.event_name }}' == 'schedule' || -n '${{ github.event.inputs.plan }}' || -n '${{ github.event.inputs.execution }}' ]] && echo true || echo false )" >> $GITHUB_ENV
- name: install earthly
uses: earthly/actions-setup@v1
with:
github-token: ${{ github.token }}
use-cache: true
version: ^0.7.0
- name: run
env:
EARTHLY_BUILD_ARGS: "CI_RUN=true"
FORCE_COLOR: 1
SLACK_REF_NAME: ${{ github.event_name == 'schedule' && format('{0}/v{1}', env.TEST_ENVIRONMENT, env.DEPLOYMENT_VERSION) || github.ref_name }}
LOG_LEVEL: ${{ inputs.log_level }}
KEYWORD: ${{ inputs.keyword }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
JOB_URL: "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
LATEST_MC_EPOCH: ${{ (github.event.schedule || inputs.latest_mc_epoch == true) && true || false }}
REPORT_TO_SLACK: ${{ github.ref == 'refs/heads/master' && 'true' || 'false' }}
GITHUB_ACTOR_USERNAME: ${{ github.event_name == 'schedule' && 'nightly' || github.actor }}
XRAY_CLIENT_ID: ${{ secrets.XRAY_CLIENT_ID }}
XRAY_CLIENT_SECRET: ${{ secrets.XRAY_CLIENT_SECRET }}
XRAY_API_BASE_URL: ${{ secrets.XRAY_API_BASE_URL }}
JIRA_URL: ${{ secrets.JIRA_URL }}
MARKERS: "not active_flow and not passive_flow"
run: |
cd E2E-tests
earthly \
--secret AWS_SESSION_TOKEN="$AWS_SESSION_TOKEN" \
--secret AWS_ACCESS_KEY_ID="$AWS_ACCESS_KEY_ID" \
--secret AWS_SECRET_ACCESS_KEY="$AWS_SECRET_ACCESS_KEY" \
--secret SLACK_WEBHOOK_URL="$SLACK_WEBHOOK_URL" \
--secret XRAY_CLIENT_ID="$XRAY_CLIENT_ID" \
--secret XRAY_CLIENT_SECRET="$XRAY_CLIENT_SECRET" \
--secret XRAY_API_BASE_URL="$XRAY_API_BASE_URL" \
--secret JIRA_URL="$JIRA_URL" \
--ssh-auth-sock="$SSH_AUTH_SOCK" \
+report \
--log_level="${LOG_LEVEL:-"info"}" \
--env=${{ env.TEST_ENVIRONMENT }} \
--stack=${{ env.TEST_ENVIRONMENT }} \
--keyword="${KEYWORD:-"test_"}" \
--repository ${{ github.repository }} \
--job_url="$JOB_URL" \
--slack_ref_name $SLACK_REF_NAME \
--latest_mc_epoch=$LATEST_MC_EPOCH \
--report_to_slack=$REPORT_TO_SLACK \
--github_actor_username="$GITHUB_ACTOR_USERNAME" \
--plan="$TEST_PLAN" \
--execution="$TEST_EXECUTION" \
--report_to_xray=$REPORT_TO_XRAY \
--decrypt=true \
--markers="$MARKERS"
- name: Archive Debug Log
if: always()
uses: actions/upload-artifact@v4
with:
name: debug_log
retention-days: 15
overwrite: true
path: debug.log
- name: Setup Node
uses: actions/setup-node@v4
if: ${{ !cancelled() }}
with:
node-version: 'latest'
- name: Install Ctrf
if: ${{ !cancelled() }}
run: npm install github-actions-ctrf
- name: Generate Summary Report
if: ${{ !cancelled() }}
run: |
npx github-actions-ctrf ctrf-report.json