From 24144939b983227d55d9d5fb23e8331bdf30b93b Mon Sep 17 00:00:00 2001 From: Theresa Eimer Date: Tue, 13 Feb 2024 11:26:27 +0100 Subject: [PATCH] Create publish_release.yml --- .github/workflows/publish_release.yml | 82 +++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 .github/workflows/publish_release.yml diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml new file mode 100644 index 00000000..f47c5e92 --- /dev/null +++ b/.github/workflows/publish_release.yml @@ -0,0 +1,82 @@ +name: Publish Python Package + +on: + 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.9', '3.10', '3.11'] + kind: ['conda'] + + include: + # Add the tag code-cov to ubuntu-3.7-source + - os: ubuntu-latest + python-version: 3.9 + kind: 'conda' + code-cov: true + 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 .[dev,dm_control,mario,brax,box2d] + + - 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 test + else + $PYTHON -m pytest ${{ env.pytest-args }} --ignore=test/local_only test + fi + deploy: + runs-on: ubuntu-latest + needs: [test] + environment: release + permissions: + id-token: write + steps: + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.11' + cache: pip + cache-dependency-path: '**/pyproject.toml' + - name: Install dependencies + run: | + pip install setuptools wheel build + - name: Build + run: | + python -m build + - name: Publish + uses: pypa/gh-action-pypi-publish@release/v1