Install from conda-forge #1835
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
| # Verify that installation from conda-forge works as intended | |
| name: Install from conda-forge | |
| on: | |
| # 05:00 UTC = 06:00 CET = 07:00 CEST | |
| schedule: | |
| - cron: "0 5 * * *" | |
| # Uncomment to debug | |
| # pull_request: | |
| # branches: [ main ] | |
| env: | |
| # Oldest version that can reliably be downloaded | |
| GAMS_VERSION: 48.6.1 | |
| jobs: | |
| conda: | |
| strategy: | |
| matrix: | |
| os: [windows-latest, macos-latest] | |
| conda: | |
| - {installer: anaconda, version: 2024.06-1} | |
| - {installer: miniconda, version: py312_24.7.1-0} | |
| fail-fast: false | |
| runs-on: ${{ matrix.os }} | |
| name: ${{ matrix.os }}-${{ matrix.conda.installer }} | |
| steps: | |
| - name: Cache Anaconda installer, conda packages | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| $CONDA/pkgs | |
| ~/.conda/pkgs | |
| ~/anaconda3/pkgs | |
| ~/appdata/local/conda/conda/pkgs | |
| ${{ github.workspace }}/Anaconda*.exe | |
| key: ${{ matrix.os }}-${{ matrix.conda.installer }} | |
| - name: Setup Anaconda or miniconda | |
| uses: iiasa/actions/setup-conda@main | |
| with: | |
| installer: ${{ matrix.conda.installer }} | |
| version: ${{ matrix.conda.version }} | |
| # TODO move the following 2 steps into the above action | |
| - name: Determine shell on current OS | |
| id: shell | |
| run: | | |
| import os | |
| init, profile = { | |
| "macos": ("bash", "source ~/.bash_profile"), | |
| "windows": ("powershell", ""), | |
| }.get("${{ matrix.os }}".split("-")[0]) | |
| with open(os.environ["GITHUB_OUTPUT"], "a") as f: | |
| f.write(f"init={init}\n") | |
| f.write(f"profile={profile}\n") | |
| shell: python | |
| - name: Cache GAMS installer | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| gams | |
| key: ${{ matrix.os }}-gams${{ env.GAMS_VERSION }} | |
| restore-keys: | | |
| ${{ matrix.os }}- | |
| - uses: iiasa/actions/setup-gams@main | |
| with: | |
| version: ${{ env.GAMS_VERSION }} | |
| license: ${{ secrets.GAMS_LICENSE }} | |
| - name: Initialize shell for "conda activate" | |
| run: conda init ${{ steps.shell.outputs.init }} | |
| - name: Configure conda channels, update, create environment, and install message-ix | |
| run: | | |
| conda install -n base conda-libmamba-solver | |
| conda config --set solver libmamba | |
| conda config --prepend channels conda-forge | |
| conda config --set channel_priority strict | |
| conda update -n base -c defaults conda | |
| # Also install pytest and packages required for testing. pip/PyPI | |
| # supports this via message_ix[testing], but conda does not. | |
| # Pin Python version to enable pyam versions relied on by the sankey tool; | |
| # remove once pyam supports the latest Python | |
| conda create --quiet --name testenv message-ix pytest asyncssh sphinx python=3.12 | |
| conda list --name testenv | |
| - name: Check CLI commands and run test | |
| run: | | |
| # Source profile. On non-windows OSes, GHA invokes bash with | |
| # "--noprofile", so the file written by "conda init bash" above is not | |
| # read automatically | |
| ${{ steps.shell.outputs.profile }} | |
| # Activate the test environment | |
| conda activate testenv | |
| conda info | |
| # Check CLI tools | |
| message-ix show-versions | |
| ixmp --platform default list || true | |
| # Run a single test from the test suite to touch JDBCBackend Java code, | |
| # via JPype | |
| pytest --pyargs message_ix -p ixmp.testing -p message_ix.testing -p no:faulthandler -k "test_add_cat" --verbose -rA --color=yes |