From 2a0b862867899f94b9481d1e136463192f132ee2 Mon Sep 17 00:00:00 2001 From: Theresa Eimer Date: Wed, 5 Jun 2024 14:22:35 +0200 Subject: [PATCH] feat: publication workflow --- .github/workflows/publish_release.yaml | 82 ++++++++++++++++++++++++++ README.md | 2 +- 2 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/publish_release.yaml diff --git a/.github/workflows/publish_release.yaml b/.github/workflows/publish_release.yaml new file mode 100644 index 000000000..842d4c608 --- /dev/null +++ b/.github/workflows/publish_release.yaml @@ -0,0 +1,82 @@ + +name: Publish Python Package +permissions: + id-token: write + +on: + # Manually triggerable in github + workflow_dispatch: + release: + types: [created] + +jobs: + test: + name: ${{ matrix.os }}-${{ matrix.python-version }}-${{ matrix.kind }} + if: ${{ !github.event.pull_request.draft }} + runs-on: ${{ matrix.os }} + + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + python-version: ['3.10'] + kind: ['conda'] + + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + submodules: "recursive" + + - name: Setup Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + + - name: Conda install + if: matrix.kind == 'conda' + run: | + # Miniconda is available in $CONDA env var + $CONDA/bin/conda create -n testenv --yes pip wheel gxx_linux-64 gcc_linux-64 python=${{ matrix.python-version }} + $CONDA/envs/testenv/bin/python3 -m pip install --upgrade pip + $CONDA/envs/testenv/bin/pip3 install -e .[all] + + - name: Tests + timeout-minutes: 60 + run: | + echo "Running all tests..." + if [[ ${{ matrix.kind }} == 'conda' ]]; then + PYTHON=$CONDA/envs/testenv/bin/python3 + export PATH="$CONDA/envs/testenv/bin:$PATH" + else + PYTHON=$(which python3) + fi + + if [ ${{ matrix.code-cov }} ]; then + $PYTHON -m pytest ${{ env.pytest-args }} ${{ env.code-cov-args }} --ignore=test/local_only tests + else + $PYTHON -m pytest ${{ env.pytest-args }} --ignore=test/local_only tests + fi + pypi-publish: + name: Upload release to PyPI + runs-on: ubuntu-latest + environment: + name: pypi + url: https://pypi.org/p/arlbench + steps: + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install build + - name: Build package + run: python -m build + + - name: Publish package distributions to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + password: ${{ secrets.pypi_api_token }} \ No newline at end of file diff --git a/README.md b/README.md index df4a70717..04c4540f2 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@
- +[![PyPI Version](https://img.shields.io/pypi/v/arlbench.svg)](https://pypi.python.org/pypi/arlbench) ![Python](https://img.shields.io/badge/Python-3.10-3776AB) ![License](https://img.shields.io/badge/License-BSD3-orange) [![Test](https://github.com/automl/arlbench/actions/workflows/pytest.yaml/badge.svg)](https://github.com/automl/arlbench/actions/workflows/pytest.yaml)