Automated tests #89
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Automated tests | |
on: | |
schedule: | |
- cron: '30 6 * * *' | |
permissions: | |
contents: read | |
pages: write | |
id-token: write | |
jobs: | |
download-history: | |
runs-on: ubuntu-latest | |
name: Download history | |
steps: | |
- run: > | |
ARTIFACT_ID=$(curl -L | |
-H "Accept: application/vnd.github+json" | |
-H "X-GitHub-Api-Version: 2022-11-28" | |
"https://api.github.com/repos/SiarheiZhachek/QA_diploma/actions/artifacts?name=reports" | |
| python3 -c "import sys, json; print(json.load(sys.stdin)['artifacts'][0]['id']);") | |
&& | |
curl -L | |
-H "Accept: application/vnd.github+json" | |
-H "Authorization: Bearer ${{ secrets.TOKEN }}" | |
-H "X-GitHub-Api-Version: 2022-11-28" | |
https://api.github.com/repos/SiarheiZhachek/QA_diploma/actions/artifacts/$ARTIFACT_ID/zip | |
-o artifacts.zip && | |
REPORT_ID=$(curl -L | |
-H "Accept: application/vnd.github+json" | |
-H "X-GitHub-Api-Version: 2022-11-28" | |
"https://api.github.com/repos/SiarheiZhachek/QA_diploma/actions/artifacts?name=github-pages" | |
| python3 -c "import sys, json; print(json.load(sys.stdin)['artifacts'][0]['id']);") | |
&& | |
curl -L | |
-H "Accept: application/vnd.github+json" | |
-H "Authorization: Bearer ${{ secrets.TOKEN }}" | |
-H "X-GitHub-Api-Version: 2022-11-28" | |
https://api.github.com/repos/SiarheiZhachek/QA_diploma/actions/artifacts/$REPORT_ID/zip | |
-o pages.zip | |
- run: mkdir reports && unzip artifacts.zip -d reports | |
- run: mkdir old_pages pages_history && unzip pages.zip -d old_pages && tar -xvf old_pages/artifact.tar -C pages_history | |
- run: cp pages_history/history/* reports && cp -r pages_history/history reports | |
- name: Store allure history | |
uses: actions/upload-artifact@v3 | |
with: | |
name: reports | |
path: | |
reports | |
retention-days: 2 | |
test: | |
runs-on: ubuntu-latest | |
needs: download-history | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install Chrome | |
run: sudo apt-get install google-chrome-stable | |
- name: install dependencies | |
run: pip install -r requirements.txt | |
- name: run tests | |
run: pytest --host=server --alluredir=reports | |
continue-on-error: true | |
- name: Store allure history | |
uses: actions/upload-artifact@v3 | |
with: | |
name: reports | |
path: | |
reports | |
retention-days: 2 | |
generate-report: | |
runs-on: ubuntu-latest | |
needs: test | |
name: Generate report | |
steps: | |
- uses: actions/setup-java@v3 | |
with: | |
distribution: 'microsoft' # See 'Supported distributions' for available options | |
java-version: '17' | |
- run: sudo wget https://github.com/allure-framework/allure2/releases/download/2.30.0/allure-2.30.0.tgz && sudo tar -zxvf allure-2.30.0.tgz -C /opt/ && sudo ln -s /opt/allure-2.30.0/bin/allure /usr/bin/allure | |
- name: Download all workflow run artifacts | |
uses: actions/download-artifact@v3 | |
- run: allure generate -c reports -o _site | |
- name: Store generated report | |
uses: actions/upload-artifact@v3 | |
with: | |
name: _site | |
path: | |
_site | |
retention-days: 2 | |
publish-report: | |
runs-on: ubuntu-latest | |
needs: generate-report | |
name: Report publication | |
steps: | |
- name: Download all workflow run artifacts | |
uses: actions/download-artifact@v3 | |
- name: Upload Pages artifact | |
uses: actions/upload-pages-artifact@v2 | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v1.2.9 |