diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index e3c2ca2..2864d2c 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -11,25 +11,47 @@ jobs: if: github.event.pull_request.draft == false runs-on: ubuntu-latest + defaults: + run: + shell: bash -el {0} + steps: - uses: actions/checkout@v4 - - name: Set up Python 3.11 - uses: actions/setup-python@v5 + - name: Setup Mambaforge + uses: conda-incubator/setup-miniconda@v3 with: - python-version: '3.11' - - - name: Install Poetry - run: | - pip install poetry - - - name: Configure Poetry - run: | - poetry config virtualenvs.create false + miniforge-variant: Mambaforge + miniforge-version: latest + activate-environment: climateset + use-mamba: true + + - name: Get Date + id: get-date + run: echo "today=$(/bin/date -u '+%Y%m%d')" >> $GITHUB_OUTPUT + shell: bash + + - name: Cache Conda env + uses: actions/cache@v3 + with: + path: ${{ env.CONDA }}/envs + key: + conda-${{ runner.os }}--${{ runner.arch }}--${{ + steps.get-date.outputs.today }}-${{ + hashFiles('etc/example-environment-caching.yml') }}-${{ env.CACHE_NUMBER + }} + env: + CACHE_NUMBER: 0 + id: cache + + - name: Update environment + run: + mamba env update -n climateset -f environment.yml + if: steps.cache.outputs.cache-hit != 'true' - name: Install dependencies run: | - make install + make CONDA_TOOL=mamba install - name: Run linting checks run: | diff --git a/.github/workflows/precommit.yml b/.github/workflows/precommit.yml index 49957cb..a248e70 100644 --- a/.github/workflows/precommit.yml +++ b/.github/workflows/precommit.yml @@ -11,25 +11,47 @@ jobs: if: github.event.pull_request.draft == false runs-on: ubuntu-latest + defaults: + run: + shell: bash -el {0} + steps: - uses: actions/checkout@v4 - - name: Set up Python 3.11 - uses: actions/setup-python@v5 + - name: Setup Mambaforge + uses: conda-incubator/setup-miniconda@v3 with: - python-version: '3.11' - - - name: Install Poetry - run: | - pip install poetry - - - name: Configure Poetry - run: | - poetry config virtualenvs.create false + miniforge-variant: Mambaforge + miniforge-version: latest + activate-environment: climateset + use-mamba: true + + - name: Get Date + id: get-date + run: echo "today=$(/bin/date -u '+%Y%m%d')" >> $GITHUB_OUTPUT + shell: bash + + - name: Cache Conda env + uses: actions/cache@v3 + with: + path: ${{ env.CONDA }}/envs + key: + conda-${{ runner.os }}--${{ runner.arch }}--${{ + steps.get-date.outputs.today }}-${{ + hashFiles('etc/example-environment-caching.yml') }}-${{ env.CACHE_NUMBER + }} + env: + CACHE_NUMBER: 0 + id: cache + + - name: Update environment + run: + mamba env update -n climateset -f environment.yml + if: steps.cache.outputs.cache-hit != 'true' - name: Install dependencies run: | - make install + make CONDA_TOOL=mamba install - name: Run Pre-commit checks run: |