Skip to content

build

build #88

Workflow file for this run

name: build
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
release:
types:
- published
schedule:
- cron: "0 0 * * 0"
jobs:
build-devcontainer:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- name: Checkout (GitHub)
uses: actions/checkout@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and run Dev Container task
uses: devcontainers/[email protected]
with:
imageName: ghcr.io/systemrdl/peakrdl-markdown/devcontainer
cacheFrom: ghcr.io/systemrdl/peakrdl-markdown/devcontainer
push: always
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version:
- "3.7"
- "3.8"
- "3.9"
- "3.10"
- "3.11"
steps:
- uses: actions/checkout@v3
- name: Install Poetry
run: pipx install poetry
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: "poetry"
- name: Install dependencies
run: poetry install --only main,test --sync
- name: Test
run: poetry run pytest test/ --cov=peakrdl_markdown --cov-report=term --cov-report=xml:output/coverage/cov.xml --cov-report=html:output/coverage/html
- name: Coveralls
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
echo "repo_token: ${GITHUB_TOKEN}" > .coveralls.yml
poetry run coveralls --service=github
lint:
runs-on: ubuntu-latest
strategy:
matrix:
tool:
- "black --check --diff"
- "pydocstyle"
- "pycodestyle"
- "pylint"
- "mypy"
steps:
- uses: actions/checkout@v3
- name: Install Poetry
run: pipx install poetry
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.11"
cache: "poetry"
- name: Install dependencies
run: poetry install --only main,lint --sync
- name: Run formatter
run: poetry run ${{ matrix.tool }} src/ test/
build-docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Poetry
run: pipx install poetry
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.11"
cache: "poetry"
- name: Install dependencies
run: poetry install --only main,doc --sync
- name: Build docs
run: poetry run make -C docs/ html
- name: Upload the built documentation
uses: actions/upload-artifact@v3
with:
name: documentation
path: docs/_build/
build-publish:
needs:
- test
- build-docs
- lint
if: github.ref == 'refs/heads/main'
name: Build source distribution
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Poetry
run: pipx install poetry
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.11"
cache: "poetry"
- name: Build the package
run: poetry build
- name: Upload the built package
uses: actions/upload-artifact@v3
with:
name: package
path: dist/*
- name: Publish the package
run: |
poetry config http-basic.pypi __token__ ${{ secrets.PYPI_PASSWORD }}
poetry publish --skip-existing