Skip to content

callbacks for dask optimization loop (#122) #744

callbacks for dask optimization loop (#122)

callbacks for dask optimization loop (#122) #744

Workflow file for this run

name: ci-cd-pipeline
on:
push:
branches:
- main
pull_request:
branches:
- main
release:
types: [published]
jobs:
lint:
runs-on: ubuntu-20.04
container: python:3.8-slim
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: |
pip install poetry
poetry install --extras "all"
- name: Formatting
if: always()
run: |
poetry run black --check --exclude blackboxopt/examples/ .
poetry run black --check --include blackboxopt/examples/ --line-length 80 .
- name: Type Checks
if: always()
run: poetry run mypy --config-file pyproject.toml .
- name: Linting
if: always()
run: |
poetry run ruff check blackboxopt/
poetry run ruff check tests/
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04]
python-version: ["3.8", "3.9", "3.10", "3.11"]
container: python:${{ matrix.python-version }}-slim
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: |
pip install poetry
poetry install --extras "all"
- name: Run tests
if: always()
run: poetry run coverage run --branch -m pytest tests
env:
COVERAGE_FILE: ".coverage.${{ matrix.python-version }}"
- name: Store coverage file
uses: actions/upload-artifact@v3
with:
name: coverage
path: .coverage.${{ matrix.python-version }}
report:
needs: [test]
runs-on: ubuntu-20.04
permissions:
# Gives the action the necessary permissions for publishing new
# comments in pull requests.
pull-requests: write
# Gives the action the necessary permissions for pushing data to the
# python-coverage-comment-action branch, and for editing existing
# comments (to avoid publishing multiple comments in the same PR)
contents: write
steps:
- uses: actions/checkout@v3
- name: Download coverage summary
uses: actions/download-artifact@v3
with:
name: coverage
- name: Coverage comment
id: coverage_comment
uses: py-cov-action/python-coverage-comment-action@v3
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
MERGE_COVERAGE_FILES: true
- name: Store Pull Request comment to be posted
uses: actions/upload-artifact@v3
if: steps.coverage_comment.outputs.COMMENT_FILE_WRITTEN == 'true'
with:
name: python-coverage-comment-action
path: python-coverage-comment-action.txt
deploy:
needs: [lint, test]
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-20.04
container: python:3.8-slim
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: |
pip install poetry
- name: Build & release
env:
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
run: |
poetry config pypi-token.pypi $PYPI_TOKEN
poetry publish --build
docs:
needs: [lint, test]
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # fetch all branches, incl. gh-pages
- uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Install dependencies
run: |
pip install poetry
poetry install --extras "all"
- name: Setup git author
run: |
git config --global user.name docs deploy
git config --global user.email [email protected]
- name: Get GIT_TAG_NAME
uses: olegtarasov/[email protected]
id: tagName
- name: Publish
run: |
poetry run mike deploy --push --update-aliases ${{ env.GIT_TAG_NAME }} latest
poetry run mike set-default --push latest