Store metadata version. #35
Workflow file for this run
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: Scheduled Tests | |
on: | |
push: {} | |
pull_request: | |
branches: | |
- add-scheduled-tests | |
# on: workflow_dispatch | |
# on: | |
# schedule: | |
# - cron: '58 */3 * * *' | |
jobs: | |
run_app_tests: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
# python-version: [ "3.7", "3.8", "3.9", "3.10", "3.11" ] | |
python-version: [ "3.11" ] | |
steps: | |
- name: Get metadata version from API | |
id: metadataVersion | |
uses: satak/webrequest-action@master | |
with: | |
url: https://mygeneset.info/metadata | |
method: GET | |
- name: Show metadata response | |
run: | | |
echo "${{fromJson(steps.metadataVersion.outputs.output).data.build_date}}" | |
######## | |
- name: Restore metadata version variable from Cache | |
uses: actions/cache@v3 | |
with: | |
path: ${{ github.workspace }}/.cache/mygeneset-metadata-version | |
key: ${{ runner.os }}-mygeneset-metadata-version | |
- name: Print metadata version variable Value | |
run: | | |
echo "${{ env.MYGENESET_METADATA_VERSION }}" | |
- name: Compare metadata versions | |
id: compare | |
run: | | |
version_from_api=${{ fromJson(steps.metadataVersion.outputs.output).data.build_date }} | |
version_from_cache=${{ env.MYGENESET_METADATA_VERSION }} | |
echo "version_from_api" | |
echo $version_from_api | |
echo "version_from_cache" | |
echo $version_from_cache | |
if [ "$version_from_api" = "$version_from_cache" ]; then | |
echo "No new version identified. Stopping workflow." | |
echo "::error::Values are the same." | |
exit 0 | |
else | |
echo "New version identified. Proceeding with the workflow." | |
fi | |
- name: Set metadata version variable | |
run: | | |
echo "MYGENESET_METADATA_VERSION=${{fromJson(steps.metadataVersion.outputs.output).data.build_date}}" >> $GITHUB_ENV | |
- name: Store metadata version variable in Cache | |
uses: actions/cache@v3 | |
with: | |
path: ${{ github.workspace }}/.cache/mygeneset-metadata-version | |
key: ${{ runner.os }}-mygeneset-metadata-version | |
restore-keys: | | |
- ${{ runner.os }}-mygeneset-metadata-version | |
############## | |
- name: Checkout source | |
uses: actions/checkout@v3 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Upgrade pip | |
run: pip install --upgrade pip | |
- name: Install dependencies | |
run: pip install -r requirements_web.txt | |
- name: Install pytest | |
run: pip install pytest | |
- name: Install pytest-slack | |
run: pip install pytest-slack | |
# - name: Run Pytest and Capture Report | |
# id: pytest | |
# run: | | |
# pytest src/tests/test_remote.py --junitxml=pytest_report.xml | |
# - name: Read Pytest Report File Content | |
# id: read-pytest-report | |
# run: | | |
# # Use the cat command to read the file and store its content in a variable | |
# pytest_report_content=$(cat pytest_report.xml) | |
# echo "::set-output name=content::$pytest_report_content" | |
# - name: Send Report to Slack | |
# run: | | |
# curl -X POST -H 'Content-type: application/json' --data '{ | |
# "text": "Pytest Report:\n```'${{ steps.read-pytest-report.outputs.pytest_report_content }}'```" | |
# }' $SLACK_WEBHOOK_URL | |
# env: | |
# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
- name: Run pytest and generate report | |
run: pytest src/tests/test_remote.py --slack_hook=${{ secrets.SLACK_WEBHOOK_URL }} --slack_channel=observability-test | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
# - name: Run pytest and generate report | |
# run: pytest src/tests/test_remote.py --junitxml=pytest_report.xml | |
# - name: Upload report to GitHub Artifacts | |
# uses: actions/upload-artifact@v2 | |
# with: | |
# name: pytest-report | |
# path: pytest-report.xml | |
# - name: Extract test counts | |
# id: pytest | |
# run: | | |
# # Parse pytest report and extract desired fields | |
# errors=$(grep -o 'errors="[^"]*"' pytest_report.xml | cut -d'"' -f2) | |
# failures=$(grep -o 'failures="[^"]*"' pytest_report.xml | cut -d'"' -f2) | |
# skipped=$(grep -o 'skipped="[^"]*"' pytest_report.xml | cut -d'"' -f2) | |
# tests=$(grep -o 'tests="[^"]*"' pytest_report.xml | cut -d'"' -f2) | |
# time=$(grep -o 'time="[^"]*"' pytest_report.xml | cut -d'"' -f2) | |
# echo "Errors: $errors" | |
# echo "Failures: $failures" | |
# echo "Skipped: $skipped" | |
# echo "Tests: $tests" | |
# echo "Time: $time" | |
# working-directory: ${{ github.workspace }} | |
# continue-on-error: true # Continue even if the pytest report does not exist | |
# - name: Send report to Slack | |
# uses: 8398a7/action-slack@v3 | |
# with: | |
# status: ${{ job.status }} | |
# author_name: GitHub Actions | |
# title: Pytest Report | |
# fields: name,status | |
# env: | |
# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
# - name: Send Pytest Report to Slack | |
# id: slack | |
# uses: slackapi/[email protected] | |
# with: | |
# # This data can be any valid JSON from a previous step in the GitHub Action | |
# payload: | | |
# { | |
# "blocks": "", | |
# "attachments": { | |
# "text": "Passed Count: *{SlackTemplate.RESULTS['passed']}*", | |
# "mrkdwn_in": [ | |
# "text" | |
# ], | |
# "color": "good" | |
# }, | |
# } | |
# env: | |
# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
# - name: Send report to Slack | |
# uses: 8398a7/action-slack@v3 | |
# with: | |
# status: ${{ job.status }} | |
# author_name: Mygeneset Scheduled Pytest | |
# # title: Pytest Report | |
# message: | | |
# Pytest Report: | |
# - Errors: ${{ steps.pytest.outputs.errors }} | |
# - Failures: ${{ steps.pytest.outputs.failures }} | |
# - Skipped: ${{ steps.pytest.outputs.skipped }} | |
# - Tests: ${{ steps.pytest.outputs.tests }} | |
# - Time: ${{ steps.pytest.outputs.time }} | |
# env: | |
# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
# - name: Setup tmate debug session on failure | |
# if: ${{ failure() }} | |
# uses: mxschmitt/action-tmate@v3 |