# This workflows will build and upload a Python Package using Twine when a release is published # Conda-forge bot will pick up new PyPI version and automatically create new version # For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries name: CD on: release: types: [published] jobs: deploy: strategy: matrix: os: ['ubuntu-latest'] python-version: [3.8] runs-on: ${{ matrix.os }} environment: package steps: - name: Checkout uses: actions/checkout@v3 - name: Cache conda uses: actions/cache@v3 with: path: ~/conda_pkgs_dir key: conda-${{ matrix.os }}-python-${{ matrix.python-version }}-${{ hashFiles('environment.yml') }} - name: Setup Miniconda uses: conda-incubator/setup-miniconda@v2 with: auto-update-conda: true auto-activate-base: false activate-environment: hcrystalball python-version: ${{ matrix.python-version }} use-only-tar-bz2: true - name: Install from source # This is required for the pre-commit tests shell: pwsh run: pip install . - name: Conda list shell: pwsh run: conda list - name: Build shell: pwsh run: | pip install twine python setup.py sdist bdist_wheel - name: Publish to PyPI env: TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} shell: pwsh run: twine upload dist/*