generated from tweag/project
-
Notifications
You must be signed in to change notification settings - Fork 3
153 lines (132 loc) · 5.05 KB
/
api_workflow.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
# Workflow for executing API tests
name: API Workflow
env:
TAGS: "api"
BROWSERSTACK_USER: ${{secrets.BROWSERSTACK_API_USERNAME}}
BROWSERSTACK_ACCESS_KEY: ${{secrets.BROWSERSTACK_ACCESS_KEY}}
on:
schedule:
- cron: '0 21 * * *'
workflow_dispatch:
inputs:
tags:
description: 'Tags'
required: true
default: 'api'
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
run-api-test-schedule:
if: github.event_name == 'schedule'
# The type of GH runner where the job will run on
name: API Regression
runs-on: ubuntu-latest
steps:
# Setup Python
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.9'
# Checkout the latest code from the repo
- name: Check out code
uses: actions/checkout@v4
# Setup dependencies by running requirement.txt
- name: Setup dependencies
run: |
sh install.sh
# Execute tests. If test tag/s are provided while triggering manually it will pick that otherwise pick the default tags from Env section
- name: Run tests
run: |
if [ "${{ github.event.inputs.tags }}" != "" ]
then
TAGS="${{ github.event.inputs.tags }}"
fi
source $HOME/.bp-venv/bin/activate
sh api_run.sh "$TAGS"
- name: Get Allure history
uses: actions/checkout@v4
if: always()
continue-on-error: true
with:
ref: gh-pages
path: gh-pages
- name: Allure Report
uses: simple-elf/[email protected]
if: always()
with:
gh_pages: gh-pages
allure_results: allure-results
allure_history: allure-history
- name: Deploy report to Github Pages
if: always()
uses: peaceiris/actions-gh-pages@v3
with:
PERSONAL_TOKEN: ${{ secrets.PYTEST_TOKEN }}
PUBLISH_BRANCH: gh-pages
PUBLISH_DIR: allure-history
# Upload html results as GH artifact
- name: Upload pytest test results
uses: actions/upload-artifact@v4
with:
name: pytest-results
path: |
./*.html
./output/
./assets/
if: ${{ always() }}
run-api-test-on-local:
if: github.event_name != 'schedule'
name: API Regression
runs-on: ubuntu-latest
steps:
# Setup Python
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.9'
# Checkout the latest code from the repo
- name: Check out code
uses: actions/checkout@v4
# Setup dependencies by running requirement.txt
- name: Setup dependencies
run: |
sh install.sh
# Execute tests. If test tag/s are provided while triggering manually it will pick that otherwise pick the default tags from Env section
- name: Run tests
run: |
if [ "${{ github.event.inputs.tags }}" != "" ]
then
TAGS="${{ github.event.inputs.tags }}"
fi
source $HOME/.bp-venv/bin/activate
sh api_run.sh "$TAGS" "${{secrets.SLACK_WEBHOOK_URL}}" "${{secrets.TEAMS_WEBHOOK_URL}}"
- name: Get Allure history
uses: actions/checkout@v4
if: always()
continue-on-error: true
with:
ref: gh-pages
path: gh-pages
- name: Allure Report
uses: simple-elf/[email protected]
if: always()
with:
gh_pages: gh-pages
allure_results: allure-results
allure_history: allure-history
- name: Deploy report to Github Pages
if: always()
uses: peaceiris/actions-gh-pages@v3
with:
PERSONAL_TOKEN: ${{ secrets.PYTEST_TOKEN }}
PUBLISH_BRANCH: gh-pages
PUBLISH_DIR: allure-history
# Upload html results as GH artifact
- name: Upload pytest test results
uses: actions/upload-artifact@v4
with:
name: pytest-results
path: |
./*.html
./output/
./assets/
if: ${{ always() }}