Skip to content

[test branch] Test osx-arm64 merging to mock target branch (2) #31

[test branch] Test osx-arm64 merging to mock target branch (2)

[test branch] Test osx-arm64 merging to mock target branch (2) #31

Workflow file for this run

name: PR (osx-arm64)
on:
pull_request:
types: [opened, synchronize, reopened]
concurrency:
group: build-${{ github.event.pull_request.number || github.head_ref }}
cancel-in-progress: true
jobs:
build_and_test-osx-arm64:
name: build_and_test-osx-arm64
runs-on: macOS-14 # M1
strategy:
fail-fast: true
max-parallel: 13
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: ./.github/check-for-additional-platforms.sh "origin/master...HEAD" "build_and_test"
- name: set path
run: |
mkdir -p /opt/mambaforge
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: Restore cache
id: cache
if: steps.additional_platforms.outputs.skip_build != 'true'
uses: actions/cache@v4
with:
path: /opt/mambaforge
key: ${{ runner.os }}-arm64--master--${{ hashFiles('install-and-set-up-conda.sh', 'common.sh', 'configure-conda.sh') }}
- name: Set up bioconda-utils
if: steps.cache.outputs.cache-hit != 'true' && steps.additional_platforms.outputs.skip_build != 'true'
run: bash install-and-set-up-conda.sh
# This script can be used to reconfigure conda to use the right channel setup.
# This has to be done after the cache is restored, because
# the channel setup is not cached as it resides in the home directory.
# We could use a system-wide (and therefore cached) channel setup,
# but mamba does not support that at the time of implementation
# (it ignores settings made with --system).
- 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 -e
eval "$(conda shell.bash hook)"
conda activate bioconda
# Use SDK with arm64 support
export MACOSX_DEPLOYMENT_TARGET=11.0
# Clean up lingering build artifacts
rm -f /opt/mambaforge/envs/bioconda/conda-bld/osx-arm64/*.tar.bz2
# The SDK isn't actually cached, so reinstall it
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