Added unique prefix for environment variables for the Docker compose … #12
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: Test | |
on: | |
push: | |
branches: [ main ] | |
paths-ignore: | |
- 'docs/**' | |
- '*.rst' | |
pull_request: | |
branches: [ main ] | |
paths-ignore: | |
- 'docs/**' | |
- '*.rst' | |
# Allow manual workflow triggering from the "Actions" tab. | |
workflow_dispatch: | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
services: | |
postgres: | |
image: postgres | |
env: | |
POSTGRES_USER: byceps_test | |
POSTGRES_PASSWORD: test | |
POSTGRES_DB: byceps_test | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
ports: | |
# Make accessible on localhost. | |
- 5432:5432 | |
redis: | |
image: redis | |
options: >- | |
--health-cmd "redis-cli ping" | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
ports: | |
# Make accessible on localhost. | |
- 6379:6379 | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ["3.11"] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: 'pip' | |
cache-dependency-path: 'requirements/core.txt' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip wheel | |
python -m pip install -r requirements/core.txt -r requirements/test.txt | |
- name: Install BYCEPS | |
run: | | |
python -m pip install -e . | |
- name: Download binary for test coverage reporting to Code Climate | |
if: github.repository == 'byceps/byceps' | |
run: | | |
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter | |
chmod +x ./cc-test-reporter | |
- name: Notify Code Climate of a pending test coverage report | |
if: github.repository == 'byceps/byceps' | |
run: | | |
./cc-test-reporter before-build | |
- name: Test with pytest and coverage | |
run: | | |
coverage run --source=byceps -m pytest tests | |
- name: Generate XML output from test coverage | |
if: github.repository == 'byceps/byceps' | |
run: | | |
coverage xml | |
- name: Notify Code Climate of a completed test run | |
if: github.repository == 'byceps/byceps' | |
env: | |
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} | |
run: | | |
./cc-test-reporter after-build | |
- name: Post result to Discord | |
# Run job even if build is cancelled. | |
if: always() && github.repository == 'byceps/byceps' | |
env: | |
JOB_RESULT: ${{ job.status }} | |
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }} | |
run: python ./.github/workflows/send-workflow-result-to-discord.py $JOB_RESULT $DISCORD_WEBHOOK_URL |