Skip to content

Commit c386c88

Browse files
committed
add: run e2e tests on staging-preview
1 parent 6787f58 commit c386c88

File tree

2 files changed

+189
-143
lines changed

2 files changed

+189
-143
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: 'Install python and pytest'
2+
description: 'Setup ptyhon for running e2e tests'
3+
4+
runs:
5+
using: composite
6+
steps:
7+
- name: checkout pc-tests ref_name branch
8+
id: pc-tests
9+
uses: actions/checkout@v4
10+
continue-on-error: true
11+
with:
12+
repository: input-output-hk/sidechains-tests
13+
token: ${{ env.ACTIONS_PAT }}
14+
ref: ${{ github.head_ref || github.ref_name }}
15+
path: e2e-tests
16+
- name: checkout pc-tests master (fallback)
17+
if: steps.pc-tests.outcome == 'failure'
18+
uses: actions/checkout@v4
19+
with:
20+
repository: input-output-hk/sidechains-tests
21+
token: ${{ env.ACTIONS_PAT }}
22+
ref: master
23+
path: e2e-tests
24+
- name: Setup python and dependencies
25+
run: |
26+
cd e2e-tests
27+
sudo apt update
28+
sudo apt install -y software-properties-common
29+
sudo add-apt-repository ppa:deadsnakes/ppa
30+
sudo apt update
31+
sudo apt install -y python3.10 python3.10-venv python3.10-dev
32+
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1
33+
curl -L --silent https://github.com/getsops/sops/releases/download/v3.7.3/sops_3.7.3_amd64.deb > sops.deb && sudo dpkg -i sops.deb && rm sops.deb
34+
python -m venv venv
35+
source venv/bin/activate
36+
pip install -r requirements.txt
37+
cd ..
38+
shell: bash

.github/workflows/cd.yml

+151-143
Original file line numberDiff line numberDiff line change
@@ -22,171 +22,179 @@ env:
2222
SSH_AUTH_SOCK: /tmp/ssh_agent.sock
2323

2424
jobs:
25-
build-linux:
26-
permissions:
27-
id-token: write
28-
contents: write
29-
runs-on: ubuntu-latest
30-
steps:
31-
- name: Checkout
32-
uses: actions/checkout@v4
33-
with:
34-
ref: ${{ inputs.sha }}
35-
- name: Build and Upload for Linux
36-
uses: ./.github/actions/artifacts/build-pc-artifacts
37-
with:
38-
tag: ${{ inputs.tag }}
39-
os: linux
25+
# build-linux:
26+
# permissions:
27+
# id-token: write
28+
# contents: write
29+
# runs-on: ubuntu-latest
30+
# steps:
31+
# - name: Checkout
32+
# uses: actions/checkout@v4
33+
# with:
34+
# ref: ${{ inputs.sha }}
35+
# - name: Build and Upload for Linux
36+
# uses: ./.github/actions/artifacts/build-pc-artifacts
37+
# with:
38+
# tag: ${{ inputs.tag }}
39+
# os: linux
4040

41-
build-macos-x86_64:
42-
permissions:
43-
id-token: write
44-
contents: write
45-
runs-on: macos-latest
46-
steps:
47-
- name: Checkout
48-
uses: actions/checkout@v4
49-
with:
50-
ref: ${{ inputs.sha }}
51-
- name: Build and Upload for macOS x86_64
52-
uses: ./.github/actions/artifacts/build-pc-artifacts
53-
with:
54-
tag: ${{ inputs.tag }}
55-
os: macos-x86_64
41+
# build-macos-x86_64:
42+
# permissions:
43+
# id-token: write
44+
# contents: write
45+
# runs-on: macos-latest
46+
# steps:
47+
# - name: Checkout
48+
# uses: actions/checkout@v4
49+
# with:
50+
# ref: ${{ inputs.sha }}
51+
# - name: Build and Upload for macOS x86_64
52+
# uses: ./.github/actions/artifacts/build-pc-artifacts
53+
# with:
54+
# tag: ${{ inputs.tag }}
55+
# os: macos-x86_64
5656

57-
build-macos-arm64:
58-
permissions:
59-
id-token: write
60-
contents: write
61-
runs-on: macos-latest
62-
steps:
63-
- name: Checkout
64-
uses: actions/checkout@v4
65-
with:
66-
ref: ${{ inputs.sha }}
67-
- name: Build and Upload for macOS arm64
68-
uses: ./.github/actions/artifacts/build-pc-artifacts
69-
with:
70-
tag: ${{ inputs.tag }}
71-
os: macos-arm64
57+
# build-macos-arm64:
58+
# permissions:
59+
# id-token: write
60+
# contents: write
61+
# runs-on: macos-latest
62+
# steps:
63+
# - name: Checkout
64+
# uses: actions/checkout@v4
65+
# with:
66+
# ref: ${{ inputs.sha }}
67+
# - name: Build and Upload for macOS arm64
68+
# uses: ./.github/actions/artifacts/build-pc-artifacts
69+
# with:
70+
# tag: ${{ inputs.tag }}
71+
# os: macos-arm64
7272

73-
build-and-publish-ecr:
74-
permissions:
75-
id-token: write
76-
contents: write
77-
needs: build-linux
78-
runs-on: ubuntu-latest
79-
steps:
80-
- name: Checkout
81-
uses: actions/checkout@v4
82-
- name: Build and Publish to ECR
83-
uses: ./.github/actions/images/build-and-publish-ecr
84-
with:
85-
sha: ${{ inputs.sha }}
86-
tag: ${{ inputs.tag }}
87-
env:
88-
AWS_REGION: "eu-central-1"
89-
ECR_REGISTRY_SECRET: ${{ secrets.ECR_REGISTRY_SECRET }}
90-
AWS_ROLE_ARN_SECRET: ${{ secrets.AWS_ROLE_ARN_SECRET }}
91-
SSH_KEY: ${{ secrets.SUBSTRATE_REPO_SSH_KEY }}
73+
# build-and-publish-ecr:
74+
# permissions:
75+
# id-token: write
76+
# contents: write
77+
# needs: build-linux
78+
# runs-on: ubuntu-latest
79+
# steps:
80+
# - name: Checkout
81+
# uses: actions/checkout@v4
82+
# - name: Build and Publish to ECR
83+
# uses: ./.github/actions/images/build-and-publish-ecr
84+
# with:
85+
# sha: ${{ inputs.sha }}
86+
# tag: ${{ inputs.tag }}
87+
# env:
88+
# AWS_REGION: "eu-central-1"
89+
# ECR_REGISTRY_SECRET: ${{ secrets.ECR_REGISTRY_SECRET }}
90+
# AWS_ROLE_ARN_SECRET: ${{ secrets.AWS_ROLE_ARN_SECRET }}
91+
# SSH_KEY: ${{ secrets.SUBSTRATE_REPO_SSH_KEY }}
9292

93-
create-draft-release:
94-
permissions:
95-
id-token: write
96-
contents: write
97-
needs: [build-linux, build-macos-x86_64, build-macos-arm64]
98-
runs-on: ubuntu-latest
99-
steps:
100-
- name: Checkout
101-
uses: actions/checkout@v4
102-
- name: Create Draft Release
103-
uses: ./.github/actions/release/create-draft-release
104-
with:
105-
tag: ${{ inputs.tag }}
106-
env:
107-
GITHUB_TOKEN: ${{ github.token }}
93+
# create-draft-release:
94+
# permissions:
95+
# id-token: write
96+
# contents: write
97+
# needs: [build-linux, build-macos-x86_64, build-macos-arm64]
98+
# runs-on: ubuntu-latest
99+
# steps:
100+
# - name: Checkout
101+
# uses: actions/checkout@v4
102+
# - name: Create Draft Release
103+
# uses: ./.github/actions/release/create-draft-release
104+
# with:
105+
# tag: ${{ inputs.tag }}
106+
# env:
107+
# GITHUB_TOKEN: ${{ github.token }}
108108

109-
generate-chain-specs:
110-
permissions:
111-
id-token: write
112-
contents: write
113-
needs: build-linux
114-
runs-on: ubuntu-latest
115-
steps:
116-
- name: Checkout
117-
uses: actions/checkout@v4
118-
- name: Generate Chain Specs
119-
uses: ./.github/actions/artifacts/generate-chain-specs
120-
with:
121-
tag: ${{ inputs.tag }}
109+
# generate-chain-specs:
110+
# permissions:
111+
# id-token: write
112+
# contents: write
113+
# needs: build-linux
114+
# runs-on: ubuntu-latest
115+
# steps:
116+
# - name: Checkout
117+
# uses: actions/checkout@v4
118+
# - name: Generate Chain Specs
119+
# uses: ./.github/actions/artifacts/generate-chain-specs
120+
# with:
121+
# tag: ${{ inputs.tag }}
122122

123-
upload-chain-specs:
124-
permissions:
125-
id-token: write
126-
contents: write
127-
needs: generate-chain-specs
128-
runs-on: [self-hosted, eks]
129-
steps:
130-
- name: Checkout
131-
uses: actions/checkout@v4
132-
- name: Upload chain spec artifacts to Kubernetes
133-
uses: ./.github/actions/deploy/upload-chain-specs
134-
with:
135-
sha: ${{ github.sha }}
136-
env:
137-
kubeconfig_base64: ${{ secrets.kubeconfig_base64 }}
138-
K8S_SERVER: ${{ secrets.K8S_SERVER }}
139-
K8S_SA_TOKEN: ${{ secrets.K8S_SA_TOKEN }}
123+
# upload-chain-specs:
124+
# permissions:
125+
# id-token: write
126+
# contents: write
127+
# needs: generate-chain-specs
128+
# runs-on: [self-hosted, eks]
129+
# steps:
130+
# - name: Checkout
131+
# uses: actions/checkout@v4
132+
# - name: Upload chain spec artifacts to Kubernetes
133+
# uses: ./.github/actions/deploy/upload-chain-specs
134+
# with:
135+
# sha: ${{ github.sha }}
136+
# env:
137+
# kubeconfig_base64: ${{ secrets.kubeconfig_base64 }}
138+
# K8S_SERVER: ${{ secrets.K8S_SERVER }}
139+
# K8S_SA_TOKEN: ${{ secrets.K8S_SA_TOKEN }}
140+
141+
# deploy-staging-preview:
142+
# permissions:
143+
# id-token: write
144+
# contents: write
145+
# needs: [build-and-publish-ecr, upload-chain-specs]
146+
# runs-on: [self-hosted, eks]
147+
# steps:
148+
# - name: Checkout
149+
# uses: actions/checkout@v4
150+
# - name: Deploy staging-preview
151+
# uses: ./.github/actions/deploy/deploy-staging-preview
152+
# with:
153+
# image: ${{ secrets.ECR_REGISTRY_SECRET }}/substrate-node:${{ inputs.sha }}
154+
# sha: ${{ github.sha }}
155+
# env:
156+
# AWS_REGION: "eu-central-1"
157+
# SSH_AUTH_SOCK: /tmp/ssh_agent.sock
158+
# ACTIONS_PAT: ${{ secrets.ACTIONS_PAT }}
159+
# AWS_ROLE_ARN_SECRET: ${{ secrets.AWS_ROLE_ARN_SECRET }}
160+
# ECR_REGISTRY_SECRET: ${{ secrets.ECR_REGISTRY_SECRET }}
161+
# kubeconfig_base64: ${{ secrets.kubeconfig_base64 }}
162+
# K8S_SERVER: ${{ secrets.K8S_SERVER }}
163+
# K8S_SA_TOKEN: ${{ secrets.K8S_SA_TOKEN }}
140164

141-
deploy-staging-preview:
165+
staging-preview-tests:
142166
permissions:
143167
id-token: write
144168
contents: write
145-
needs: [build-and-publish-ecr, upload-chain-specs]
169+
# needs: deploy-staging-preview
146170
runs-on: [self-hosted, eks]
147171
steps:
148172
- name: Checkout
149173
uses: actions/checkout@v4
150-
- name: Deploy staging-preview
151-
uses: ./.github/actions/deploy/deploy-staging-preview
174+
- name: Health check
175+
uses: ./.github/actions/tests/staging-preview-tests
152176
with:
153-
image: ${{ secrets.ECR_REGISTRY_SECRET }}/substrate-node:${{ inputs.sha }}
154-
sha: ${{ github.sha }}
177+
node-host: staging-preview-validator-1.staging-preview.svc.cluster.local
178+
node-port: 9933
155179
env:
156-
AWS_REGION: "eu-central-1"
157180
SSH_AUTH_SOCK: /tmp/ssh_agent.sock
181+
AWS_ROLE_ARN_: ${{ secrets.AWS_ROLE_ARN_ }}
182+
SSH_KEY_BINARY_HOST: ${{ secrets.SSH_KEY_BINARY_HOST }}
183+
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
184+
JIRA_URL: ${{ secrets.JIRA_URL }}
158185
ACTIONS_PAT: ${{ secrets.ACTIONS_PAT }}
159-
AWS_ROLE_ARN_SECRET: ${{ secrets.AWS_ROLE_ARN_SECRET }}
160-
ECR_REGISTRY_SECRET: ${{ secrets.ECR_REGISTRY_SECRET }}
161186
kubeconfig_base64: ${{ secrets.kubeconfig_base64 }}
162187
K8S_SERVER: ${{ secrets.K8S_SERVER }}
163188
K8S_SA_TOKEN: ${{ secrets.K8S_SA_TOKEN }}
189+
- name: Setup tests
190+
uses: ./.github/actions/tests/setup-python
191+
- name: Run smoke tests
192+
uses: ./.github/actions/tests/run-e2e-tests
193+
with:
194+
env: staging
195+
blockchain: substrate
196+
keyword: "test_get_status or test_get_params"
164197

165-
# staging-preview-tests:
166-
# permissions:
167-
# id-token: write
168-
# contents: write
169-
# needs: deploy-staging-preview
170-
# runs-on: [self-hosted, eks]
171-
# steps:
172-
# - name: Checkout
173-
# uses: actions/checkout@v4
174-
# - name: Run Tests
175-
# uses: ./.github/actions/tests/staging-preview-tests
176-
# with:
177-
# node-host: staging-preview-validator-1.staging-preview.svc.cluster.local
178-
# node-port: 9933
179-
# env:
180-
# SSH_AUTH_SOCK: /tmp/ssh_agent.sock
181-
# AWS_ROLE_ARN_: ${{ secrets.AWS_ROLE_ARN_ }}
182-
# SSH_KEY_BINARY_HOST: ${{ secrets.SSH_KEY_BINARY_HOST }}
183-
# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
184-
# JIRA_URL: ${{ secrets.JIRA_URL }}
185-
# ACTIONS_PAT: ${{ secrets.ACTIONS_PAT }}
186-
# kubeconfig_base64: ${{ secrets.kubeconfig_base64 }}
187-
# K8S_SERVER: ${{ secrets.K8S_SERVER }}
188-
# K8S_SA_TOKEN: ${{ secrets.K8S_SA_TOKEN }}
189-
#
190198
# build-and-publish-ghcr:
191199
# permissions:
192200
# id-token: write

0 commit comments

Comments
 (0)