add runner #759
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: push | |
on: [push, pull_request] | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.x | |
cache: "pip" | |
- uses: pre-commit/action@v3.0.0 | |
test: | |
runs-on: ubuntu-latest | |
environment: test | |
strategy: | |
matrix: | |
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: "pip" | |
- name: Install dependencies for testing | |
run: pip install pytest pytest-cov | |
- name: Install module | |
run: pip install -r requirements.txt && pip install -e . | |
- name: pytest | |
run: pytest --cov=materialx --cov-report=xml --cov-report=html . | |
- name: Upload coverage report for documentation | |
uses: actions/upload-artifact@v3 | |
with: | |
name: coverage | |
path: htmlcov | |
retention-days: 5 | |
- name: Upload coverage reports to Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
- name: Upload coverage reports to Codacy | |
uses: codacy/codacy-coverage-reporter-action@v1 | |
with: | |
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} | |
coverage-reports: coverage.xml | |
pages: | |
if: startsWith(github.event.ref, 'refs/tags/v') || contains(fromJson('["refs/heads/master", "refs/heads/main"]'), github.ref) | |
needs: [test] | |
environment: github-pages | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.x | |
- name: Get pip cache dir | |
id: pip-cache | |
run: echo "::set-output name=dir::$(pip cache dir)" | |
- uses: actions/cache@v3 | |
with: | |
key: ${{ github.ref }} | |
path: .cache | |
- run: pip install -r docs/requirements.txt | |
- run: pip install -e . | |
- name: Download coverage report | |
uses: actions/download-artifact@v3 | |
with: | |
name: coverage | |
path: htmlcov | |
- run: mkdocs build -v -f docs/mkdocs.yml | |
- name: Deploy | |
uses: peaceiris/actions-gh-pages@v3 | |
if: ${{ github.ref == 'refs/heads/master' }} | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: ./docs/site | |
release: | |
if: startsWith(github.event.ref, 'refs/tags/v') | |
needs: [lint, test] | |
environment: pypi | |
permissions: | |
contents: write | |
id-token: write | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.x | |
cache: "pip" | |
- name: Install dependencies for building | |
run: pip install wheel setuptools_scm | |
- name: build package | |
run: python setup.py sdist bdist_wheel | |
- name: create release | |
uses: "marvinpinto/action-automatic-releases@latest" | |
with: | |
repo_token: "${{ secrets.GITHUB_TOKEN }}" | |
prerelease: false | |
files: | | |
dist/* | |
- name: publish to PyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
develop: | |
if: contains(fromJson('["refs/heads/master", "refs/heads/main"]'), github.ref) | |
needs: [lint, test] | |
environment: pypi | |
permissions: | |
contents: write | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.x | |
cache: "pip" | |
- name: Install dependencies for building | |
run: pip install wheel setuptools_scm | |
- name: build package | |
run: python setup.py sdist bdist_wheel | |
- name: create release | |
uses: "marvinpinto/action-automatic-releases@latest" | |
with: | |
repo_token: "${{ secrets.GITHUB_TOKEN }}" | |
automatic_release_tag: "latest" | |
prerelease: true | |
title: "Development Build" | |
files: | | |
dist/* |