Skip to content

Merge pull request #89 from AstuteSource/master #289

Merge pull request #89 from AstuteSource/master

Merge pull request #89 from AstuteSource/master #289

Workflow file for this run

# Basic workflow
name: build
# Use more columns for terminal output
env:
COLUMNS: 120
PYTHONIOENCODING: utf8
# Controls when the action will run
# Workflow begins with push or PR events
# Focuses on the master branch only
on: push
# Create one single job
# This job performs all necessary checks
jobs:
build:
# Use the latest version of Ubuntu on MacOS and Windows
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
python-version: ["3.11"]
include:
- os: macos-latest
python-version: "3.11"
- os: windows-latest
python-version: "3.11"
# Define the workflow steps
steps:
# Checkout the code of the repository
- name: Check out Repository Code
uses: actions/checkout@v3
with:
fetch-depth: 0
# Run the mdl linting tool
# Refers to .mdlrc file in repository
- name: Run Markdown Linting
if: matrix.os == 'ubuntu-latest'
uses: actionshub/markdownlint@main
# Setup Python for the current language version
- name: Setup Python ${{ matrix.python-version }}
if: always()
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
# Install pip
- name: Install Pip
if: always()
run: |
pip install -U pip
# Install poetry
- name: Install Poetry
if: always()
uses: abatilo/[email protected]
with:
poetry-version: 1.4.0
# Install dependencies
- name: Install dependencies
if: always()
run: |
poetry install
# Run the linters
- name: Run Linters
if: always()
run: |
poetry run task lint
# Run the program
- name: Run program
if: always()
run: |
poetry run chasten analyze chasten --config $PWD/.chasten/ --debug-level ERROR --debug-dest CONSOLE --search-path .
# Run the tests
- name: Run Tests
if: always()
run: |
poetry run task test
# Run the test coverage monitoring
- name: Run Test Coverage
if: always()
run: |
poetry run task test-coverage-silent > coverage.txt
# Display the Coverage Report
- name: Display Coverage
if: always() && matrix.os == 'ubuntu-latest'
run: |
export TOTAL=$(python -c "import json;print(json.load(open('coverage.json'))['totals']['percent_covered_display'])")
echo "total=$TOTAL" >> $GITHUB_ENV
echo "### Total coverage: ${TOTAL}%" >> $GITHUB_STEP_SUMMARY
CURRENT_GITHUB_STEP_SUMMARY="\`\`\`\n$(cat coverage.txt)\n\`\`\`"
echo "$CURRENT_GITHUB_STEP_SUMMARY" >> $GITHUB_STEP_SUMMARY
# Create the Coverage Badge
- name: Make Badge
uses: schneegans/[email protected]
with:
# GIST_TOKEN is a GitHub personal access token with scope "gist".
auth: ${{ secrets.GIST_TOKEN }}
gistID: 5300aa276fa9261b2b21b96c3141b3ad
filename: covbadge.json
label: Coverage
message: ${{ env.total }}%
minColorRange: 50
maxColorRange: 90
valColorRange: ${{ env.total }}