Skip to content

Nightly

Nightly #5

Workflow file for this run

name: PR Check
on:
pull_request:
types: [opened, synchronize, reopened]
concurrency:
group: build-${{ github.event.pull_request.number || github.head_ref }}
cancel-in-progress: true
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
strategy:
fail-fast: true
max-parallel: 13
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: set path
run: echo "/opt/mambaforge/bin" >> $GITHUB_PATH
- name: Fetch conda install script
run: |
wget https://raw.githubusercontent.com/bioconda/bioconda-common/master/{install-and-set-up-conda,configure-conda,common}.sh
- name: Set up bioconda-utils
run: bash install-and-set-up-conda.sh
- name: Configure conda
run: bash configure-conda.sh
- name: Perform lint
env:
# Mimic circleci
OSTYPE: "linux-gnu"
CI: "true"
run: |
set -e
eval "$(conda shell.bash hook)"
conda activate bioconda
source common.sh
echo '============'
conda info --all
conda config --show-sources
python -c 'import bioconda_utils.utils as u ; import pathlib as p ; print(*(f"{f}:\n{p.Path(f).read_text()}" for f in u.load_conda_build_config().exclusive_config_files), sep="\n")'
echo '============'
if [ -z "$GITHUB_BASE_REF" ] ; then
export GITHUB_BASE_REF="master"
fi
git fetch origin "$GITHUB_BASE_REF"
bioconda-utils lint --loglevel debug --full-report --git-range origin/"$GITHUB_BASE_REF" HEAD
conda clean -y --all
build-linux:
name: Linux Tests
runs-on: ubuntu-latest
strategy:
fail-fast: true
max-parallel: 13
needs: lint
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: set path
run: echo "/opt/mambaforge/bin" >> $GITHUB_PATH
- name: Fetch conda install script
run: |
wget https://raw.githubusercontent.com/bioconda/bioconda-common/master/{install-and-set-up-conda,configure-conda,common}.sh
- name: Set up bioconda-utils
run: bash install-and-set-up-conda.sh
# This script can be used to reconfigure conda to use the right channel setup.
- name: Configure conda
run: bash configure-conda.sh
- name: Build and test
env:
# Mimic circleci
OSTYPE: "linux-gnu"
CI: "true"
run: |
set -e
# Clean up lingering build artifacts
for n in linux-64 osx-64 noarch; do
rm -f /opt/mambaforge/envs/bioconda/conda-bld/$n/*.tar.bz2
rm -f /opt/mambaforge/envs/bioconda/conda-bld/$n/*.conda
done
eval "$(conda shell.bash hook)"
conda activate bioconda
source common.sh
if [ -z "$GITHUB_BASE_REF" ] ; then
export GITHUB_BASE_REF="master"
fi
git fetch origin "$GITHUB_BASE_REF"
bioconda-utils build recipes config.yml \
--docker --mulled-test \
--git-range origin/"$GITHUB_BASE_REF" HEAD
- name: Prepare artifacts
run: |
(
rm -rf /tmp/artifacts
mkdir -p /tmp/artifacts/packages
cd /opt/mambaforge/envs/bioconda/conda-bld || exit 0
find -name .cache | xargs rm -rf || true
for n in index.html channeldata.json linux-64 osx-64 noarch; do
cp -rv $n /tmp/artifacts/packages || true
done
if command -V docker >/dev/null; then
mkdir -p /tmp/artifacts/images
cd /tmp/artifacts/images
docker image ls --format='{{.Repository}}:{{.Tag}}' | \
{ grep biocontainers || true ; } | \
xargs -n1 -P4 bash -c '
test -n "${1+x}" || exit 0
echo "Start compressing docker image ${1} ..."
docker save "${1}" | gzip -c > "${1##*/}.tar.gz"
echo "Finished compressing docker image ${1} ."
' --
# There's no : allowed in artifact names, replace it with ---
for f in /tmp/artifacts/images/*:* ; do mv -- "$f" "${f//:/---}"; done
fi
) || true
- name: Archive packages
uses: actions/upload-artifact@v4
with:
name: linux-packages
path: |
/tmp/artifacts
build-osx-64:
name: OSX-64 Tests
runs-on: macos-13
strategy:
fail-fast: true
max-parallel: 4
# Limited concurrency for osx, so first make sure linux can pass
needs: build-linux
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: set path
run: echo "/opt/mambaforge/bin" >> $GITHUB_PATH
- name: Fetch conda install script
run: |
wget https://raw.githubusercontent.com/bioconda/bioconda-common/master/{install-and-set-up-conda,configure-conda,common}.sh
- name: Set up bioconda-utils
run: bash install-and-set-up-conda.sh
# This script can be used to reconfigure conda to use the right channel setup.
- name: Configure conda
run: bash configure-conda.sh
- name: Build and Test
env:
# Mimic circleci
OSTYPE: "darwin"
CI: "true"
run: |
set -e
eval "$(conda shell.bash hook)"
conda activate bioconda
source common.sh
# Sets up OSX SDK
run_conda_forge_build_setup
# Clean up lingering build artifacts
for n in linux-64 osx-64 noarch; do
rm -f /opt/mambaforge/envs/bioconda/conda-bld/$n/*.tar.bz2
done
if [ -z "$GITHUB_BASE_REF" ] ; then
export GITHUB_BASE_REF="master"
fi
git fetch origin "$GITHUB_BASE_REF"
bioconda-utils build recipes config.yml \
--git-range origin/"$GITHUB_BASE_REF" HEAD
- name: Prepare artifacts
run: |
(
rm -rf /tmp/artifacts
mkdir -p /tmp/artifacts/packages
cd /opt/mambaforge/envs/bioconda/conda-bld || exit 0
find -name .cache | xargs rm -rf || true
for n in index.html channeldata.json linux-64 osx-64 noarch; do
cp -rv $n /tmp/artifacts/packages || true
done
) || true
- name: Archive packages
uses: actions/upload-artifact@v4
with:
name: osx-packages
path: |
/tmp/artifacts
# Disabled due to concurrency limits on GHA for OSX. osx-arm64 builds are on CircleCI.
# build_and_test-osx-arm64:
# name: OSX-ARM64 Tests
# runs-on: macOS-14 # M1
# strategy:
# fail-fast: true
# max-parallel: 4
# needs: build-linux
# steps:
# - uses: actions/checkout@v4
# with:
# fetch-depth: 0
# # bail if there's no osx-arm64 recipes
# - name: Check for Additional Platforms
# id: additional_platforms
# run: |
# result=$(./scripts/check-for-additional-platforms.sh "origin/master...HEAD" "build_and_test" "${GITHUB_JOB}")
# if [[ ${result} != "build" ]]
# then
# echo "No recipes using this platform, skipping rest of job."
# echo "skip_build=true" >> $GITHUB_OUTPUT
# fi
# - name: set path
# run: echo "/opt/mambaforge/bin" >> $GITHUB_PATH
# - name: Fetch conda install script
# if: steps.additional_platforms.outputs.skip_build != 'true'
# run: |
# wget https://raw.githubusercontent.com/bioconda/bioconda-common/master/{install-and-set-up-conda,configure-conda,common}.sh
# - name: Set up bioconda-utils
# if: steps.additional_platforms.outputs.skip_build != 'true'
# run: bash install-and-set-up-conda.sh
# - name: Configure conda
# if: steps.additional_platforms.outputs.skip_build != 'true'
# run: bash configure-conda.sh
# - name: Build and Test
# if: steps.additional_platforms.outputs.skip_build != 'true'
# env:
# # Mimic circleci
# OSTYPE: "darwin"
# CI: "true"
# run: |
# set -xe
# eval "$(conda shell.bash hook)"
# conda activate bioconda
# source common.sh
# # Sets up OSX SDK
# run_conda_forge_build_setup
# if [ -z "$GITHUB_BASE_REF" ] ; then
# export GITHUB_BASE_REF="master"
# fi
# git fetch origin "$GITHUB_BASE_REF"
# bioconda-utils build recipes config.yml \
# --lint --git-range origin/"$GITHUB_BASE_REF" HEAD
# - name: Prepare artifacts
# if: steps.additional_platforms.outputs.skip_build != 'true'
# run: |
# (
# rm -rf /tmp/artifacts
# mkdir -p /tmp/artifacts/packages
# cd /opt/mambaforge/envs/bioconda/conda-bld || exit 0
# find -name .cache | xargs rm -rf || true
# for n in index.html channeldata.json osx-arm64 noarch; do
# cp -rv $n /tmp/artifacts/packages || true
# done
# ) || true
# - name: Archive packages
# if: steps.additional_platforms.outputs.skip_build != 'true'
# uses: actions/upload-artifact@v4
# with:
# name: osx-arm64-packages
# path: |
# /tmp/artifacts