Skip to content

Automated tests

Automated tests #116

Workflow file for this run

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: setup Python
uses: actions/setup-python@v4
with:
python-version: "3.10"
- run: python3 --version
- 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