Store metadata version. #34
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 | |
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 | |
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: Create metadata artifact | |
# run: | | |
# echo "${{fromJson(steps.metadataVersion.outputs.output).data.build_date}}" > mygeneset_metadata_version.txt | |
# - name: Upload metadata artifact | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: mygeneset-metadata-version | |
# path: mygeneset_metadata_version.txt | |
# - name: Remove local metadata artifact | |
# run: | | |
# rm -r mygeneset_metadata_version.txt | |
### --- ### | |
- name: Download Artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: mygeneset-metadata-version | |
# path: mygeneset_metadata_version.txt | |
- name: Read Artifact | |
run: | | |
cat mygeneset_metadata_version.txt | |
- name: Compare metadata versions | |
id: compare | |
run: | | |
version_new=${{fromJson(steps.metadataVersion.outputs.output).data.build_date}} | |
version_old=$(cat mygeneset_metadata_version.txt) | |
echo "version_new" | |
echo $version_new | |
echo "version_old" | |
echo $version_old | |
if [ "$version_new" = "$version_old" ]; 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: Create metadata artifact | |
run: | | |
echo "${{fromJson(steps.metadataVersion.outputs.output).data.build_date}}" > mygeneset_metadata_version.txt | |
id: create-artifact | |
- name: Upload metadata artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: mygeneset-metadata-version | |
path: mygeneset_metadata_version.txt | |
######### | |
- 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 |