Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add CI to build mulled containers with Wave #4080

Open
wants to merge 84 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
1c7c4b9
build: Add wave
edmundmiller Oct 17, 2023
112c9e6
build: Set strategy to dockerfile, conda then container
edmundmiller Oct 17, 2023
9d61b64
refactor: Remove container
edmundmiller Oct 17, 2023
cf3aa94
build: Add a repo to push to
edmundmiller Oct 17, 2023
73d6d6f
ci(wave): Add wave build
edmundmiller Nov 2, 2023
83f1e30
ci(wave): Switch to all_changed_files
edmundmiller Nov 2, 2023
95d0069
ci(wave): Only look for envronment.ymls
edmundmiller Nov 2, 2023
649214d
dummy: Change env
edmundmiller Nov 2, 2023
a4f4611
ci(wave): Remove raw format
edmundmiller Nov 2, 2023
aa02e1b
ci(wave): Try a bunch of different things at once
edmundmiller Nov 2, 2023
b37919c
ci(wave): Remove redundant fromJson and wrap in an array
edmundmiller Nov 2, 2023
42e9f9e
ci(wave): I have no idea what I'm doing
edmundmiller Nov 2, 2023
abdbc57
ci(wave): Wrap it
edmundmiller Nov 2, 2023
06188dd
ci(wave): Found an example
edmundmiller Nov 2, 2023
72275d6
ci(wave): Maybe quotes?
edmundmiller Nov 2, 2023
bd0bdb0
ci(wave): That'll do it
edmundmiller Nov 2, 2023
8333d50
ci(wave): Fix wave install
edmundmiller Nov 2, 2023
95ec7e4
ci(wave): Hard code an image
edmundmiller Nov 2, 2023
f20da94
ci(wave): Add secrets
edmundmiller Nov 2, 2023
4fe3bbd
feat: Try a different files structure
edmundmiller Nov 3, 2023
7f84d8a
ci(wave): First stab at building singularity images
edmundmiller Nov 3, 2023
c80e959
fixup! feat: Try a different files structure
edmundmiller Nov 3, 2023
15b163d
ci(wave): Add profile to matrix
edmundmiller Nov 3, 2023
a08373d
ci(wave): Give up on fancy substitution
edmundmiller Nov 3, 2023
960702f
ci(wave): Add await
edmundmiller Nov 3, 2023
9a3f93e
ci(wave): Switch to quay
edmundmiller Nov 3, 2023
4c92894
test(wave): Add freeze and update build repo
edmundmiller Nov 3, 2023
1cd2efe
refactor(wave): What happens if I add a container?
edmundmiller Nov 3, 2023
6386a76
refactor(wave): Have both bowtie modules use the same env
edmundmiller Nov 3, 2023
8aec35d
test: Cut out using wave on tests
edmundmiller Nov 3, 2023
5a8fcc9
refactor: What happens if we use the singularity one?
edmundmiller Nov 3, 2023
9b8ddfd
refactor: Keep container directives for offline download
edmundmiller Nov 10, 2023
7b12cd7
feat: Try new singularity OCI setting
edmundmiller Nov 22, 2023
cac8b9f
build: Update container name
edmundmiller Nov 22, 2023
75464b3
chore: Bump wave-cli version
edmundmiller Nov 26, 2023
f588f18
ci: Install runc
edmundmiller Nov 26, 2023
f4144ac
ci: Switch to singularityhub action
edmundmiller Nov 26, 2023
8ea536e
ci: Install new singularity manually
edmundmiller Nov 26, 2023
d6437f8
ci: Install dependancies for singularity
edmundmiller Nov 26, 2023
265abdf
ci: runc => crun
edmundmiller Nov 26, 2023
00313f3
ci: Fix cgroup error
edmundmiller Nov 26, 2023
04dd852
ci: That'll do it
edmundmiller Nov 28, 2023
1127407
ci: Remove Dockerfile
edmundmiller Nov 30, 2023
7b241f1
ci: Update name
edmundmiller Nov 30, 2023
2c3a787
ci: Push to the correct repos
edmundmiller Nov 30, 2023
895c72f
ci: Remove OCI stuff
edmundmiller Nov 30, 2023
34852d9
ci: Need a full URL
edmundmiller Nov 30, 2023
154fdda
ci: Fix // in container name
edmundmiller Nov 30, 2023
f3276d1
ci: Remove push
edmundmiller Nov 30, 2023
66ebb14
build: Add containers back
edmundmiller Nov 30, 2023
3394c98
ci: Add cache repos
edmundmiller Nov 30, 2023
cfc8528
ci: Change registry name to use _
edmundmiller Nov 30, 2023
c20dad0
build: / => _ in container name
edmundmiller Nov 30, 2023
7b0b40b
Try ociAutoPull
edmundmiller Feb 16, 2024
b3488fb
chore: Add renovate comments to samtools
edmundmiller Feb 16, 2024
5a3d546
test: Add ociAutoPull to nf-test
edmundmiller Feb 16, 2024
a3753e7
ci: Bump wave version
edmundmiller Feb 16, 2024
0546a88
chore: Bump containers with new wave version
edmundmiller Feb 16, 2024
8995941
build: Update to use commity.wave.seqera.io
edmundmiller Jun 11, 2024
08292ea
ci: Bump wave-cli to 1.4.1
edmundmiller Jun 11, 2024
bc4a8bc
ci: Try apptainer
edmundmiller Jun 11, 2024
300502d
ci: Remove build-repo to see what happens
edmundmiller Jun 11, 2024
69e1ea5
build: Bump Nextflow version requirement
edmundmiller Jun 11, 2024
14aa295
fix: Get rid of the environment name?
edmundmiller Jun 11, 2024
ca5d48a
ci: Bump action versions
edmundmiller Jun 11, 2024
4353d08
ci: Try name-strategy tagPrefix
edmundmiller Jun 11, 2024
b36b631
ci: Remove singularity build for now
edmundmiller Jun 11, 2024
d0d8315
ci: Try imageSuffix
edmundmiller Jun 11, 2024
2112a96
ci: Try none
edmundmiller Jun 11, 2024
5ef863f
ci: What is the bowtie container name
edmundmiller Jun 12, 2024
ec74401
ci: Remove --name-strategy
edmundmiller Jun 12, 2024
364f7a6
style: Add back in container elvis operator
edmundmiller Jun 18, 2024
a1e54b4
ci: Remove cache repo
edmundmiller Jun 18, 2024
8fa7b0d
Revert "build: Bump Nextflow version requirement"
edmundmiller Jun 18, 2024
727dda0
Revert "test: Add ociAutoPull to nf-test"
edmundmiller Jun 18, 2024
daa44fe
test(#6505): Snapshot the versions contents, not the hash
edmundmiller Sep 10, 2024
457bf9e
ci(#6505): Update version snapshot after building containers
edmundmiller Sep 10, 2024
2925c17
test(#6505): Attempt a topic channel with tests
edmundmiller Sep 10, 2024
455bc2d
Merge remote-tracking branch 'origin/master' into wave
edmundmiller Oct 30, 2024
2462a11
chore: Bump to 1.5.0
edmundmiller Oct 30, 2024
6934f0b
fix: Remove shard and filter on test bumping
edmundmiller Oct 30, 2024
3fa2c06
build: Bump images to match environment
edmundmiller Oct 30, 2024
8c73e71
ci: Fix nf-test setup
edmundmiller Oct 30, 2024
24de614
ci: Remove snapshot bumping
edmundmiller Oct 30, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
138 changes: 138 additions & 0 deletions .github/workflows/wave.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
name: Wave
# When environment.yml is changed
on:
pull_request:
paths:
- "**/environment.yml"

# TODO On complete call testing CI
# TODO Skip testing CI if any changes to environment.yml

env:
WAVE_VER: "1.5.0"
NFTEST_VER: "0.9.1"

jobs:
gen-matrix:
name: generate-matrix
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4

- name: Calculate file differences
id: diff
uses: tj-actions/changed-files@v44
with:
json: true
quotepath: false
# TODO Add Dockerfiles
files: |
modules/**/environment.yml
- name: Debug
run: echo ${{ steps.diff.outputs.all_changed_files }}
- id: set-matrix
run: echo "matrix={\"profile\":[\"docker\", \"singularity\"],\"files\":${{ steps.diff.outputs.all_changed_files }} }" >> "$GITHUB_OUTPUT"

outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}

build:
if: "${{ fromJson(needs.gen-matrix.outputs.matrix) }}"
needs: gen-matrix
name: build
runs-on: ubuntu-latest
timeout-minutes: 60
strategy:
fail-fast: false
matrix: "${{ fromJson(needs.gen-matrix.outputs.matrix) }}"
steps:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4

- name: Install wave-cli
run: |
wget -q https://github.com/seqeralabs/wave-cli/releases/download/v${WAVE_VER}/wave-${WAVE_VER}-linux-x86_64
sudo mv wave-${WAVE_VER}-linux-x86_64 /usr/local/bin/wave
chmod +x /usr/local/bin/wave

- name: Create a registry name
uses: actions/github-script@v7
id: registry-name
with:
result-encoding: string
script: |
return '${{ matrix.files }}'.replace('modules/nf-core/', '').replace('/environment.yml', '').replace('/', '_');
Comment on lines +58 to +64
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is to have name in the conda environment, right? We can remove if so.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, this was to have a different wave repo per module. We can keep this for anything built by a Dockerfile for now(bclconvert, cellranger, etc.)


- name: Build container
if: matrix.profile == 'docker'
run: |
wave --conda-file "${{ matrix.files }}" \
--freeze \
--await \
--tower-token ${{ secrets.TOWER_ACCESS_TOKEN }} \
--tower-workspace-id ${{ secrets.TOWER_WORKSPACE_ID }}

- name: Build Singularity
if: matrix.profile == 'singularity'
run: |
wave --conda-file "${{ matrix.files }}" \
--freeze \
--await \
--tower-token ${{ secrets.TOWER_ACCESS_TOKEN }} \
--tower-workspace-id ${{ secrets.TOWER_WORKSPACE_ID }} \
--singularity

# TODO Build from Dockerfiles

# bump-versions:
# needs: gen-matrix
# name: bump-versions
# runs-on: ubuntu-latest
# steps:
# - uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4
# with:
# distribution: "temurin"
# java-version: "17"

# - uses: nf-core/setup-nextflow@v2

# - uses: nf-core/setup-nf-test@v1
# with:
# version: ${{ env.NFTEST_VER }}

# - name: Bump Snapshot Versions
# env:
# # NFT_DIFF: "pdiff"
# # NFT_DIFF_ARGS: "--line-numbers --width 120 --expand-tabs=2"
# SENTIEON_LICSRVR_IP: ${{ secrets.SENTIEON_LICSRVR_IP }}
# SENTIEON_AUTH_MECH: "GitHub Actions - token"
# run: |
# # use "docker_self_hosted" if it runs on self-hosted runner and matrix.profile=docker
# if [ "${{ matrix.profile }}" == "docker" ]; then
# PROFILE="docker_self_hosted"
# else
# PROFILE=${{ matrix.profile }}
# fi

# NFT_WORKDIR=~ \
# nf-test test \
# --profile=${{ matrix.profile }} \
# --tap=test.tap \
# # --ci \
# --verbose \
# --only-changed \
# # --shard ${{ matrix.shard }}/${{ env.TOTAL_SHARDS }} \
# # --filter ${{ matrix.filter }} \
# --follow-dependencies \
# --tag version \
# --update-snapshot

# - name: Commit & push version bumps
# run: |
# git config user.email "[email protected]"
# git config user.name "nf-core-bot"
# git config push.default upstream
# git add .
# git status
# git commit -m "[automated] Bump versions snapshot"
# git push
6 changes: 4 additions & 2 deletions modules/nf-core/bowtie/align/environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,7 @@ channels:
- conda-forge
- bioconda
dependencies:
- bioconda::bowtie=1.3.0
- bioconda::samtools=1.16.1
# renovate: datasource=conda depName=bioconda/bowtie
- bioconda::bowtie=1.3.1
# renovate: datasource=conda depName=bioconda/samtools
- bioconda::samtools=1.20
5 changes: 3 additions & 2 deletions modules/nf-core/bowtie/align/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@ process BOWTIE_ALIGN {
label 'process_high'

conda "${moduleDir}/environment.yml"
container ""
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Accidental?

container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/mulled-v2-ffbf83a6b0ab6ec567a336cf349b80637135bca3:c84c7c55c45af231883d9ff4fe706ac44c479c36-0' :
'biocontainers/mulled-v2-ffbf83a6b0ab6ec567a336cf349b80637135bca3:c84c7c55c45af231883d9ff4fe706ac44c479c36-0' }"
'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/c8/c8c0819a9b1f520c49c933e667ae50de2a0730ece4c8b9efe79ac5e403963a9f/data' :
'community​.wave​.seqera​.io/library/bowtie_samtools:e1a14e1ce4e0170d' }"

input:
tuple val(meta), path(reads)
Expand Down
5 changes: 4 additions & 1 deletion modules/nf-core/bowtie/build/environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,7 @@ channels:
- conda-forge
- bioconda
dependencies:
- bioconda::bowtie=1.3.0
# renovate: datasource=conda depName=bioconda/bowtie
- bioconda::bowtie=1.3.1
# renovate: datasource=conda depName=bioconda/samtools
- bioconda::samtools=1.20
4 changes: 2 additions & 2 deletions modules/nf-core/bowtie/build/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ process BOWTIE_BUILD {

conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/bowtie:1.3.0--py38hed8969a_1' :
'biocontainers/bowtie:1.3.0--py38hed8969a_1' }"
'oras://community.wave.seqera.io/library/bowtie_samtools:16f00b34cfc72399' :
'community.wave.seqera.io/library/bowtie_samtools:772b3bee982574e4' }"

input:
tuple val(meta), path(fasta)
Expand Down
4 changes: 3 additions & 1 deletion modules/nf-core/bowtie/build/tests/main.nf.test
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ nextflow_process {
test("sarscov2 - fasta - stub") {

options "-stub"
tag "stub"

when {
process {
Expand All @@ -48,7 +49,8 @@ nextflow_process {
then {
assertAll(
{ assert process.success },
{ assert snapshot(process.out).match() }
{ assert snapshot(process.out).match() },
{ assert snapshot(path(process.out.versions.get(0)).yaml).match("versions") },
)
}

Expand Down
2 changes: 2 additions & 0 deletions modules/nf-core/samtools/view/environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,7 @@ channels:
- conda-forge
- bioconda
dependencies:
# renovate: datasource=conda depName=bioconda/htslib
- bioconda::htslib=1.21
# renovate: datasource=conda depName=bioconda/samtools
- bioconda::samtools=1.21
4 changes: 2 additions & 2 deletions modules/nf-core/samtools/view/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ process SAMTOOLS_VIEW {

conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/samtools:1.21--h50ea8bc_0' :
'biocontainers/samtools:1.21--h50ea8bc_0' }"
'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/9e/9edc2564215d5cd137a8b25ca8a311600987186d406b092022444adf3c4447f7/data' :
'community​.wave​.seqera​.io/library/htslib_samtools:1​.21--6cb89bfd40cbaabf' }"

input:
tuple val(meta), path(input), path(index)
Expand Down
Loading