conda test #161
This file contains hidden or 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: conda test | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| git-ref: | |
| description: checkout this tag (overrieds branch) | |
| required: false | |
| tags: | |
| description: tag to create a release | |
| required: false | |
| skip_test: | |
| description: skip test | |
| required: false | |
| jobs: | |
| clone: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: 'Clone Repository (Latest)' | |
| uses: actions/checkout@v4 | |
| - name: 'Clone Repository (Custom Ref)' | |
| uses: actions/checkout@v4 | |
| if: github.event.inputs.git-ref != '' | |
| with: | |
| ref: ${{ github.event.inputs.git-ref }} | |
| - name: 'Create release' | |
| if: github.event.inputs.tags != null | |
| uses: softprops/action-gh-release@v2 | |
| id : create_release | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| name: Release ${{ github.event.inputs.tags }} | |
| tag_name: ${{ github.event.inputs.tags }} | |
| draft: true | |
| prerelease: true | |
| build_conda: | |
| needs: [clone] | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: macos-15-intel | |
| name: macOS-x86_64 | |
| cpython-version: 311 | |
| python-version: "3.11" | |
| platform_id: macosx_x86_64 | |
| cibw_arch: x86_64 | |
| - os: ubuntu-latest | |
| name: x86_64 | |
| cpython-version: 311 | |
| python-version: "3.11" | |
| platform_id: manylinux_x86_64 | |
| cibw_manylinux: manylinux2014 | |
| cibw_arch: x86_64 | |
| - os: macos-14 | |
| name: MAC_ARM | |
| cpython-version: 311 | |
| python-version: "3.11" | |
| platform_id: macosx_arm64 | |
| cibw_manylinux: macosx_arm64 | |
| - os: macos-15-intel | |
| name: macOS-x86_64 | |
| cpython-version: 312 | |
| python-version: "3.12" | |
| platform_id: macosx_x86_64 | |
| cibw_arch: x86_64 | |
| - os: ubuntu-latest | |
| name: x86_64 | |
| cpython-version: 312 | |
| python-version: "3.12" | |
| platform_id: manylinux_x86_64 | |
| cibw_manylinux: manylinux2014 | |
| cibw_arch: x86_64 | |
| - os: macos-14 | |
| name: MAC_ARM | |
| cpython-version: 312 | |
| python-version: "3.12" | |
| platform_id: macosx_arm64 | |
| cibw_manylinux: macosx_arm64 | |
| - os: macos-15-intel | |
| name: macOS-x86_64 | |
| cpython-version: 313 | |
| python-version: "3.13" | |
| platform_id: macosx_x86_64 | |
| cibw_arch: x86_64 | |
| - os: ubuntu-latest | |
| name: x86_64 | |
| cpython-version: 313 | |
| python-version: "3.13" | |
| platform_id: manylinux_x86_64 | |
| cibw_manylinux: manylinux2014 | |
| cibw_arch: x86_64 | |
| - os: macos-14 | |
| name: MAC_ARM | |
| cpython-version: 313 | |
| python-version: "3.13" | |
| platform_id: macosx_arm64 | |
| cibw_manylinux: macosx_arm64 | |
| steps: | |
| - name: 'Clone Repository (Latest)' | |
| uses: actions/checkout@v4 | |
| - name: 'Clone Repository (Custom Ref)' | |
| uses: actions/checkout@v4 | |
| if: github.event.inputs.git-ref != '' | |
| with: | |
| ref: ${{ github.event.inputs.git-ref }} | |
| - uses: mamba-org/setup-micromamba@v1 | |
| with: | |
| environment-name: test-env | |
| condarc: | | |
| channels: | |
| - conda-forge | |
| - defaults | |
| - astropy | |
| create-args: >- | |
| python=${{ matrix.python-version }} | |
| swig>=4 | |
| conda-build | |
| pytest | |
| pyyaml | |
| generate-run-shell: true | |
| init-shell: bash | |
| - name: 'Install dependencies' | |
| shell: bash | |
| run: | | |
| source ~/.bash_profile | |
| micromamba activate test-env | |
| micromamba install -c astropy -c conda-forge --file requirements.txt | |
| - name: 'echo env TEST' | |
| run: | | |
| echo "Conda test workflow" | |
| - name: 'generate meta.yaml from requirements.txt' | |
| shell: bash | |
| run: | | |
| source ~/.bash_profile | |
| micromamba activate test-env | |
| python .github/workflows/requirements_to_conda_yml.py | |
| - name: 'generate conda_build_config.yaml' | |
| shell: bash | |
| run: | | |
| source ~/.bash_profile | |
| micromamba activate test-env | |
| python .github/workflows/generate_conda_build_config.py | |
| env: | |
| MATRIX_PYTHON_VERSION: ${{ matrix.python-version }} | |
| - name: 'conda build' | |
| if: github.event.inputs.tags != null | |
| working-directory: .github/conda-pipeline/github/ | |
| run: | | |
| source ~/.bash_profile | |
| micromamba activate test-env | |
| cat meta.yaml | |
| cat build.sh | |
| conda config --set anaconda_upload no | |
| conda build purge | |
| echo "Python version from matrix: ${{ matrix.python-version }}" | |
| echo "building package for Python ${{ matrix.python-version }}" | |
| conda build . -c conda-forge -c astropy | |
| echo "computing output path for Python ${{ matrix.python-version }}" | |
| conda build . --output > ./CONDABUILDJETSET.txt | |
| - name: 'set env CONDABUILDJETSET' | |
| if: github.event.inputs.tags != null | |
| working-directory: .github/conda-pipeline/github/ | |
| run: | | |
| echo $(cat CONDABUILDJETSET.txt) | |
| echo "CONDABUILDJETSET=$(tail -1 CONDABUILDJETSET.txt)" >> $GITHUB_ENV | |
| - name: 'echo env CONDABUILDJETSET' | |
| if: github.event.inputs.tags != null | |
| working-directory: .github/conda-pipeline/github/ | |
| run: echo "CONDABUILDJETSET=${{env.CONDABUILDJETSET}}" | |
| - name: 'conda install from conda build' | |
| if: github.event.inputs.tags != null | |
| run: | | |
| source ~/.bash_profile | |
| micromamba activate test-env | |
| conda install --yes --offline $CONDABUILDJETSET | |
| - name: 'conda install from source' | |
| if: github.event.inputs.tags == null | |
| run: | | |
| source ~/.bash_profile | |
| micromamba activate test-env | |
| python -m pip install . | |
| - name: 'test' | |
| if: github.event.inputs.skip_test != 'yes' | |
| working-directory: .github/action_test/ | |
| run: | | |
| echo $(running tests!) | |
| source ~/.bash_profile | |
| micromamba activate test-env | |
| pytest --pyargs -vvv jetset.tests.test_jet_model | |
| pytest --pyargs -vvv jetset.tests.test_hadronic_energetic | |
| pytest --pyargs -vvv -s jetset.tests.test_gammapy_plugin | |
| pytest --pyargs -vvv jetset.tests.test_integration::TestIntegration | |
| env: | |
| WF_ENV: CONDA | |
| - name: 'prepare asset' | |
| if: github.event.inputs.tags != null | |
| shell: bash | |
| run: | | |
| python .github/workflows/conda_rename.py | |
| #- name: Upload packages | |
| # uses: actions/upload-artifact@v4 | |
| # if: github.event.inputs.tags != null | |
| # with: | |
| # overwrite: true | |
| # path: 'conda-binary/*' | |
| - name: 'Upload Release Asset' | |
| if: github.event.inputs.tags != null | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| name: Release ${{ github.event.inputs.tags }} | |
| tag_name: ${{ github.event.inputs.tags }} | |
| prerelease: true | |
| draft: true | |
| files: 'conda-binary/*' | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |