Try using libmamba solver for conda packaging #1298
Workflow file for this run
This file contains 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-package | |
on: | |
push: | |
branches: [ master ] | |
tags: ["*"] | |
pull_request: | |
branches: [ master ] | |
jobs: | |
package: | |
name: ${{ matrix.config.name }} | |
runs-on: ${{ matrix.config.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- { | |
name: "Linux", | |
os: ubuntu-latest | |
} | |
- { | |
name: "MacOSX", | |
os: macos-latest | |
} | |
- { | |
name: "Windows", | |
os: windows-2019 | |
} | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
- name: Install conda | |
uses: conda-incubator/setup-miniconda@v2 | |
with: | |
auto-update-conda: true | |
python-version: 3.9 | |
activate-environment: hexrd | |
auto-activate-base: false | |
- name: Install build requirements | |
run: | | |
conda activate hexrd | |
# Change default solver to be libmamba, so that it runs much faster | |
conda install -n base -c conda-forge conda-libmamba-solver | |
conda config --set solver libmamba | |
# FIXME: downgrade urllib3 until this issue is fixed: | |
# https://github.com/Anaconda-Platform/anaconda-client/issues/654 | |
conda install --override-channels -c conda-forge anaconda-client conda-build conda 'urllib3<2.0.0' | |
# This is need to ensure ~/.profile or ~/.bashrc are used so the activate | |
# command works. | |
shell: bash -l {0} | |
- name: Build the package (host) | |
if: ${{ matrix.config.name != 'Linux' }} | |
run: | | |
conda activate hexrd | |
mkdir output | |
conda config --set solver libmamba | |
conda build --override-channels -c conda-forge --output-folder output/ conda.recipe/ | |
# This is need to ensure ~/.profile or ~/.bashrc are used so the activate | |
# command works. | |
shell: bash -l {0} | |
- name: Build the package (container) | |
if: ${{ matrix.config.name == 'Linux' }} | |
uses: docker://centos:7 | |
with: | |
entrypoint: /github/workspace/.github/workflows/container_build.sh | |
- name: Upload the package to anaconda channel (tag push to master) | |
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') | |
run: | | |
conda activate hexrd | |
anaconda --token ${{ secrets.ANACONDA_TOKEN }} upload --force --user HEXRD output/**/*.tar.bz2 | |
# This is need to ensure ~/.profile or ~/.bashrc are used so the activate | |
# command works. | |
shell: bash -l {0} | |
- name: Upload the package to anaconda prerelease channel (upload push to master) | |
if: github.event_name == 'push' && github.ref == 'refs/heads/master' | |
run: | | |
conda activate hexrd | |
anaconda --token ${{ secrets.ANACONDA_TOKEN }} upload --force --user HEXRD --label hexrd-prerelease output/**/*.tar.bz2 | |
# This is need to ensure ~/.profile or ~/.bashrc are used so the activate | |
# command works. | |
shell: bash -l {0} | |
- name: Get version for the artifact names | |
run: echo "HEXRD_GIT_DESCRIBE=$(git describe --tag)" >> $GITHUB_ENV | |
- name: Upload the package to github | |
uses: actions/upload-artifact@v2 | |
with: | |
name: HEXRD-${{ matrix.config.name }}-${{ env.HEXRD_GIT_DESCRIBE }}.tar.bz2 | |
path: output/**/*.tar.bz2 |