Create settings.py #5
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: Build, Test, and Deploy | |
on: | |
pull_request: | |
types: [opened, synchronize] | |
push: | |
branches: | |
- main | |
workflow_dispatch: | |
inputs: | |
deploy: | |
description: Deploy if tests successful | |
required: true | |
type: boolean | |
default: false | |
permissions: | |
contents: write | |
jobs: | |
check-version-txt: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Tag with the release version | |
run: | | |
git tag $(cat version.txt) | |
lint-format-and-static-code-checks: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python 3.8 | |
uses: actions/setup-python@v3 | |
with: | |
python-version: 3.8 | |
- name: Install pre-commit | |
run: | | |
pip install pre-commit | |
- name: Lint, Format, and other static code quality checks | |
run: | | |
/bin/bash -x run.sh lint:ci | |
build-wheel-and-sdist: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python 3.8 | |
uses: actions/setup-python@v3 | |
with: | |
python-version: 3.8 | |
- name: Install build CLI | |
run: | | |
pip install build | |
- name: Build python package | |
run: | | |
/bin/bash -x run.sh build | |
- name: Upload wheel and sdist | |
uses: actions/upload-artifact@v3 | |
with: | |
name: wheel-and-sdist | |
path: ./dist/* | |
execute-tests: | |
needs: | |
- build-wheel-and-sdist | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python 3.8 | |
uses: actions/setup-python@v3 | |
with: | |
python-version: 3.8 | |
- name: Download wheel and sdist | |
uses: actions/download-artifact@v3 | |
with: | |
name: wheel-and-sdist | |
path: ./dist/ | |
- name: Install test dependencies | |
run: | | |
pip install pytest pytest-cov ./dist/*.whl | |
- name: Lint, Format, and other static code quality checks | |
run: | | |
/bin/bash -x run.sh test:ci | |
publish: | |
needs: | |
- execute-tests | |
- build-wheel-and-sdist | |
- lint-format-and-static-code-checks | |
- check-version-txt | |
runs-on: ubuntu-latest | |
# if - this is a merge to main or push directly to the main branch | |
if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python 3.8 | |
uses: actions/setup-python@v3 | |
with: | |
python-version: 3.8 | |
- name: Download wheel and sdist | |
uses: actions/download-artifact@v3 | |
with: | |
name: wheel-and-sdist | |
path: ./dist/ | |
# - name: Deploy | |
# if: ${{ github.event.inputs.deploy == 'true' }} | |
# run: | | |
# # ... | |
- name: Push tags | |
run: | | |
git tag $(cat version.txt) | |
git push origin --tags | |
# Print variables that are available to the workflow. This is useful for debugging and troubleshooting. | |
# docs: https://docs.github.com/en/actions/learn-github-actions/contexts#example-printing-context-information-to-the-log | |
dump-contexts-to-log: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Dump GitHub context | |
id: github_context_step | |
run: echo '${{ toJSON(github) }}' | |
- name: Dump job context | |
run: echo '${{ toJSON(job) }}' | |
- name: Dump steps context | |
run: echo '${{ toJSON(steps) }}' | |
- name: Dump runner context | |
run: echo '${{ toJSON(runner) }}' | |
- name: Dump strategy context | |
run: echo '${{ toJSON(strategy) }}' | |
- name: Dump matrix context | |
run: echo '${{ toJSON(matrix) }}' | |
- name: Dump secrets | |
run: echo '${{ toJSON(secrets) }}' | |
- name: Dump vars | |
run: echo '${{ toJSON(vars) }}' |