Conda lock file creation #197
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 lock file creation | |
| on: | |
| # Trigger on push on main or other branch for testing | |
| # NOTE that push: main will create the file very often | |
| # and hence lots of automated PRs | |
| # push: | |
| # branches: | |
| # - main | |
| schedule: | |
| - cron: '0 4 */10 * *' | |
| # Required shell entrypoint to have properly configured bash shell | |
| defaults: | |
| run: | |
| shell: bash -l {0} | |
| jobs: | |
| create-lock-file: | |
| name: Create conda lock file for latest Python | |
| runs-on: 'ubuntu-latest' | |
| if: github.repository == 'ESMValGroup/ESMValTool' # avoid GAs in forks | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - uses: conda-incubator/setup-miniconda@v3 | |
| with: | |
| auto-update-conda: true | |
| activate-environment: esmvaltool-fromlock | |
| python-version: "3.13" | |
| miniforge-version: "latest" | |
| use-mamba: true | |
| - name: Show conda config | |
| run: | | |
| conda update -n base -c conda-forge conda | |
| conda --version | |
| mamba --version | |
| - name: Python info | |
| run: | | |
| which python | |
| python --version | |
| - name: Install conda-lock | |
| run: mamba install -y -c conda-forge conda-lock | |
| - name: Check version of conda-lock | |
| run: conda-lock --version | |
| - name: Create conda lock file for linux-64 | |
| run: conda-lock lock --platform linux-64 -f environment.yml --mamba --kind explicit | |
| - name: Show conda version again | |
| run: conda --version | |
| - name: Show Python exec and version again | |
| run: | | |
| which python | |
| python -V | |
| - name: Create conda-lock environment | |
| run: conda create --name esmvaltool-fromlock --file conda-linux-64.lock | |
| - name: Install pip | |
| run: mamba install -y pip | |
| - name: Check Python and pip versions post pip-install | |
| run: | | |
| which python | |
| pip --version | |
| - name: Install ESMValTool | |
| run: pip install --no-deps -e .[develop] | |
| - name: Check ESMValTool version | |
| run: esmvaltool --help | |
| - name: Check ESMValTool help | |
| run: esmvaltool version | |
| - name: Check code quality | |
| run: pre-commit run -a | |
| - name: Run tests | |
| run: pytest -n 2 -m "not installation" | |
| # Automated PR | |
| # see https://github.com/marketplace/actions/create-pull-request | |
| - name: Create Automated PR if conda lock file has changed | |
| uses: peter-evans/create-pull-request@v8 | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| commit-message: Updating Linux condalock file | |
| author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> | |
| signoff: false | |
| branch: condalock-update | |
| delete-branch: true | |
| title: '[Condalock] Update Linux condalock file' | |
| body: | | |
| Update condalock file | |
| Automatic Pull Request. | |
| labels: | | |
| testing | |
| condalock | |
| automatedPR | |
| assignees: valeriupredoi | |
| reviewers: valeriupredoi | |
| draft: false |