Automated tests #158
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/Train-lab-intern/aqa_python/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/Train-lab-intern/aqa_python/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/Train-lab-intern/aqa_python/actions/artifacts?name=github-pages" | |
| python -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/Train-lab-intern/aqa_python/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: 5 | |
test: | |
runs-on: ubuntu-latest | |
needs: download-history | |
steps: | |
- name: setup Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.10" | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: setup Python | |
run: sudo apt-get install python3 | |
- name: check python version | |
run: python3 --version | |
- name: Install Chrome | |
run: sudo apt-get install google-chrome-stable | |
- name: install dependencies | |
run: pip install -r requirements.txt | |
- name: Move to directory | |
run: cd /home/runner/work/aqa_python/aqa_python/ | |
- name: PWD | |
run: pwd | |
- name: LS | |
run: ls | |
- name: Create database_connection file | |
run: echo username = "'${{ secrets.USERNAME }}'" > database_connection.py | |
- run: echo password = "'${{ secrets.PASSWORD }}'" >> database_connection.py | |
- run: echo host = "'${{ secrets.HOST }}'" >> database_connection.py | |
- run: echo port = ${{ secrets.PORT }} >> database_connection.py | |
- run: echo database = "'${{ secrets.DATABASE }}'" >> database_connection.py | |
- run: echo server_ip = "'${{ secrets.SERVER_IP }}'" >> database_connection.py | |
- name: Cat database_connection.py | |
run: cat database_connection.py | |
- 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: 5 | |
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: 5 | |
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 |