Skip to content

Store metadata version. #31

Store metadata version.

Store metadata version. #31

Workflow file for this run

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