Skip to content

Automated tests

Automated tests #158

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/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