diff --git a/.github/workflows/PR-arm.yml b/.github/workflows/PR-arm.yml deleted file mode 100644 index 49e7b855dfecb..0000000000000 --- a/.github/workflows/PR-arm.yml +++ /dev/null @@ -1,86 +0,0 @@ -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: | - 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 -e - 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 \ - --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 diff --git a/.github/workflows/PR.yml b/.github/workflows/PR.yml index 9418eba60943d..c7d5d3fce07e6 100644 --- a/.github/workflows/PR.yml +++ b/.github/workflows/PR.yml @@ -13,7 +13,7 @@ jobs: fail-fast: true max-parallel: 13 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -24,15 +24,7 @@ jobs: run: | wget https://raw.githubusercontent.com/bioconda/bioconda-common/master/{install-and-set-up-conda,configure-conda,common}.sh - - name: Restore cache - id: cache - uses: actions/cache@v3 - with: - path: /opt/mambaforge - key: ${{ runner.os }}--bulk--${{ hashFiles('**/install-and-set-up-conda.sh') }} - - name: Set up bioconda-utils - if: steps.cache.outputs.cache-hit != 'true' run: bash install-and-set-up-conda.sh - name: Configure conda @@ -67,7 +59,7 @@ jobs: max-parallel: 13 needs: lint steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -78,23 +70,10 @@ jobs: run: | wget https://raw.githubusercontent.com/bioconda/bioconda-common/master/{install-and-set-up-conda,configure-conda,common}.sh - - name: Restore cache - id: cache - uses: actions/cache@v3 - with: - path: /opt/mambaforge - key: ${{ runner.os }}--bulk--${{ hashFiles('**/install-and-set-up-conda.sh') }} - - name: Set up bioconda-utils - if: steps.cache.outputs.cache-hit != '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 run: bash configure-conda.sh @@ -151,28 +130,28 @@ jobs: ) || true - name: Archive packages - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: linux-packages path: | /tmp/artifacts/packages - name: Archive images - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: docker-images path: | /tmp/artifacts/images - build-osx: - name: OSX Tests + build-osx-64: + name: OSX-64 Tests runs-on: macos-13 strategy: fail-fast: true max-parallel: 4 needs: build-linux steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -183,23 +162,10 @@ jobs: run: | wget https://raw.githubusercontent.com/bioconda/bioconda-common/master/{install-and-set-up-conda,configure-conda,common}.sh - - name: Restore cache - id: cache - uses: actions/cache@v3 - with: - path: /opt/mambaforge - key: ${{ runner.os }}--bulk--${{ hashFiles('**/install-and-set-up-conda.sh') }} - - name: Set up bioconda-utils - if: steps.cache.outputs.cache-hit != '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 run: bash configure-conda.sh @@ -241,8 +207,88 @@ jobs: ) || true - name: Archive packages - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: osx-packages path: | /tmp/artifacts/packages + + 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 -e + 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 \ + --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 diff --git a/.github/workflows/master-arm.yml b/.github/workflows/master-arm.yml deleted file mode 100644 index 09844165447ef..0000000000000 --- a/.github/workflows/master-arm.yml +++ /dev/null @@ -1,69 +0,0 @@ -name: Upload (osx-arm64) -on: - push: - branches: - - master - -jobs: - build_and_upload-osx-arm64: - name: build_and_upload-osx-arm64 - if: github.repository == 'bioconda/bioconda-recipes' - runs-on: macOS-14 # M1 - strategy: - fail-fast: false - max-parallel: 4 - 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 "${GITHUB_SHA}~1 ${GITHUB_SHA}" "build_and_upload" "${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 Upload - if: steps.additional_platforms.outputs.skip_build != 'true' - env: - QUAY_LOGIN: ${{ secrets.QUAY_LOGIN }} - QUAY_OAUTH_TOKEN: ${{ secrets.QUAY_OAUTH_TOKEN }} - ANACONDA_TOKEN: ${{ secrets.ANACONDA_TOKEN }} - INVOLUCRO_AUTH: ${{ secrets.INVOLUCRO_AUTH }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # Mimic circleci - OSTYPE: "darwin" - CI: "true" - run: | - set -e - eval "$(conda shell.bash hook)" - conda activate bioconda - source common.sh - - bioconda-utils handle-merged-pr recipes config.yml \ - --repo bioconda/bioconda-recipes \ - --git-range ${GITHUB_SHA}~1 ${GITHUB_SHA} \ - --fallback build \ - --artifact-source github-actions diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index e698443590e50..dfd3945596555 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -12,7 +12,7 @@ jobs: fail-fast: false max-parallel: 13 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -23,23 +23,10 @@ jobs: run: | wget https://raw.githubusercontent.com/bioconda/bioconda-common/master/{install-and-set-up-conda,configure-conda,common}.sh - - name: Restore cache - id: cache - uses: actions/cache@v3 - with: - path: /opt/mambaforge - key: ${{ runner.os }}--bulk--${{ hashFiles('**/install-and-set-up-conda.sh') }} - - name: Set up bioconda-utils - if: steps.cache.outputs.cache-hit != '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 run: bash configure-conda.sh @@ -68,15 +55,15 @@ jobs: --docker --mulled-test --anaconda-upload --mulled-upload-target biocontainers docker rmi quay.io/dpryan79/mulled_container:latest - build-osx: - name: OSX Upload + build-osx-64: + name: OSX-64 Upload if: github.repository == 'bioconda/bioconda-recipes' runs-on: macos-13 strategy: fail-fast: false max-parallel: 4 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -87,23 +74,10 @@ jobs: run: | wget https://raw.githubusercontent.com/bioconda/bioconda-common/master/{install-and-set-up-conda,configure-conda,common}.sh - - name: Restore cache - id: cache - uses: actions/cache@v3 - with: - path: /opt/mambaforge - key: ${{ runner.os }}--bulk--${{ hashFiles('**/install-and-set-up-conda.sh') }} - - name: Set up bioconda-utils - if: steps.cache.outputs.cache-hit != '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 run: bash configure-conda.sh @@ -131,3 +105,66 @@ jobs: # --fallback build bioconda-utils build recipes config.yml \ --anaconda-upload --git-range ${GITHUB_SHA}~1 ${GITHUB_SHA} + + build_and_upload-osx-arm64: + name: OSX-ARM64 Upload + if: github.repository == 'bioconda/bioconda-recipes' + runs-on: macOS-14 # M1 + strategy: + fail-fast: false + max-parallel: 4 + 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 "${GITHUB_SHA}~1 ${GITHUB_SHA}" "build_and_upload" "${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 Upload + if: steps.additional_platforms.outputs.skip_build != 'true' + env: + QUAY_LOGIN: ${{ secrets.QUAY_LOGIN }} + QUAY_OAUTH_TOKEN: ${{ secrets.QUAY_OAUTH_TOKEN }} + ANACONDA_TOKEN: ${{ secrets.ANACONDA_TOKEN }} + INVOLUCRO_AUTH: ${{ secrets.INVOLUCRO_AUTH }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # Mimic circleci + OSTYPE: "darwin" + CI: "true" + run: | + set -e + eval "$(conda shell.bash hook)" + conda activate bioconda + source common.sh + + bioconda-utils handle-merged-pr recipes config.yml \ + --repo bioconda/bioconda-recipes \ + --git-range ${GITHUB_SHA}~1 ${GITHUB_SHA} \ + --fallback build \ + --artifact-source github-actions