-
Notifications
You must be signed in to change notification settings - Fork 9
Unified Wrapper #20
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
Unified Wrapper #20
Changes from all commits
e6768bf
b1f48ab
58c3141
13f0270
62c8902
dd72aa2
6b63199
b752b60
da0455f
c05e07e
3a33eab
e6bd6c3
7e7bd8a
74e7cb4
6fa511b
9ceb015
e211604
f368126
63fdf93
aa52d0d
181a2eb
43370c3
cb9a15e
8949779
0fea315
8de1024
c1b4782
6ff4236
fac6b6e
06246e7
f4967da
4661a2b
2a3609e
ad7e559
d23076a
633ce4d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,50 @@ | ||
| name: Build & Push Docker image on tag creation | ||
| on: | ||
| push: | ||
| tags: | ||
| - '*' | ||
|
|
||
| concurrency: | ||
| group: docker-${{ github.ref }} | ||
| cancel-in-progress: true | ||
|
|
||
| jobs: | ||
| docker: | ||
| runs-on: ubuntu-latest | ||
| permissions: | ||
| contents: read | ||
|
|
||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@v4 | ||
|
|
||
| - name: Login to Quay | ||
| uses: docker/login-action@v3 | ||
| with: | ||
| registry: quay.io | ||
| username: ${{ secrets.QUAY_USERNAME }} | ||
| password: ${{ secrets.QUAY_PASSWORD }} | ||
|
|
||
| - name: Docker metadata | ||
| id: meta | ||
| uses: docker/metadata-action@v5 | ||
| with: | ||
| images: quay.io/cellgeni/starsolo | ||
| tags: | | ||
| type=ref,event=tag | ||
| # push "latest" only for tags WITHOUT hyphens (excludes pre-releases like v1.0-beta): | ||
| type=raw,value=latest,enable=${{ !contains(github.ref_name, '-') }} | ||
|
|
||
| - name: Build and push Docker image | ||
| uses: docker/build-push-action@v6 | ||
| with: | ||
| context: . | ||
| file: Dockerfile | ||
| push: true | ||
| tags: ${{ steps.meta.outputs.tags }} | ||
| labels: ${{ steps.meta.outputs.labels }} | ||
| cache-from: | | ||
| type=registry,ref=quay.io/cellgeni/starsolo:cache | ||
| type=gha | ||
| cache-to: type=registry,ref=quay.io/cellgeni/starsolo:cache,mode=max | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,57 @@ | ||
| name: "Test Workflow" | ||
| on: | ||
| push: | ||
| branches: [main, dev] | ||
| paths-ignore: | ||
| - 'data/whitelists.tar.gz' | ||
| - 'README.md' | ||
| - 'LICENSE' | ||
| - 'scripts/**' | ||
| - 'Dockerfile' | ||
| pull_request: | ||
| branches: [main, dev] | ||
|
|
||
| jobs: | ||
| test: | ||
| runs-on: ubuntu-latest | ||
| container: quay.io/cellgeni/starsolo:base | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| include: | ||
| - technology: 10x | ||
| - technology: dropseq | ||
| - technology: indrops | ||
| - technology: smartseq | ||
| - technology: rhapsody | ||
| - technology: strt | ||
| name: "Run tests for ${{ matrix.technology }}" | ||
|
|
||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@v4 | ||
|
|
||
| - name: Unpack test data | ||
| run: tar -xzf data/test.tar.gz | ||
|
|
||
| - name: Run tests | ||
| run: | | ||
| set -e | ||
| technology=${{ matrix.technology }} | ||
| if [ "$technology" = "smartseq" ]; then | ||
| bin/starsolo smartseq \ | ||
| data/test/fastqs/smartseq/smartseq_example.manifest.tsv \ | ||
| --ref data/test/reference/index \ | ||
| --no-bam \ | ||
| --cpus 1 | ||
| else | ||
| bin/starsolo $technology \ | ||
| data/test/fastqs/${technology} \ | ||
| "$technology" \ | ||
| --ref data/test/reference/index \ | ||
| --whitelist-dir data/test/whitelists \ | ||
| --no-bam \ | ||
| --cpus 1 | ||
| fi | ||
|
|
||
|
|
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -3,14 +3,14 @@ FROM ubuntu:20.04 | |||||
| ENV DEBIAN_FRONTEND=noninteractive | ||||||
|
|
||||||
| ARG star_version=2.7.10a_alpha_220818 | ||||||
| ARG samtools_version=1.15.1 | ||||||
| ARG samtools_version=1.21 | ||||||
| ARG bbmap_version=38.97 | ||||||
| ARG rsem_version=1.3.3 | ||||||
| ARG seqtk_version=1.4 | ||||||
|
|
||||||
| #Install OS packages | ||||||
| RUN apt-get update && apt-get -y --no-install-recommends -qq install \ | ||||||
| wget gcc build-essential software-properties-common libz-dev \ | ||||||
| git libncurses5-dev libbz2-dev liblzma-dev default-jre bsdmainutils | ||||||
| git libncurses5-dev libbz2-dev liblzma-dev default-jre bsdmainutils pbzip2 | ||||||
|
|
||||||
| #Install STAR | ||||||
| RUN wget --no-check-certificate https://github.com/alexdobin/STAR/archive/${star_version}.tar.gz && \ | ||||||
|
|
@@ -20,10 +20,11 @@ RUN wget --no-check-certificate https://github.com/alexdobin/STAR/archive/${star | |||||
| cd / && rm ${star_version}.tar.gz | ||||||
|
|
||||||
| #Install seqtk | ||||||
| RUN git clone https://github.com/lh3/seqtk.git && \ | ||||||
| mv seqtk /opt && \ | ||||||
| cd /opt/seqtk && \ | ||||||
| make | ||||||
| RUN wget --no-check-certificate https://github.com/lh3/seqtk/archive/refs/tags/v${seqtk_version}.tar.gz && \ | ||||||
| tar -xzf v${seqtk_version}.tar.gz -C /opt && \ | ||||||
| cd /opt/seqtk-${seqtk_version} && \ | ||||||
| make && \ | ||||||
| cd / && rm v${seqtk_version}.tar.gz | ||||||
|
Comment on lines
16
to
+27
|
||||||
|
|
||||||
| #Install samtools | ||||||
| RUN wget https://github.com/samtools/samtools/releases/download/${samtools_version}/samtools-${samtools_version}.tar.bz2 && \ | ||||||
|
|
@@ -41,19 +42,29 @@ RUN wget https://sourceforge.net/projects/bbmap/files/BBMap_${bbmap_version}.tar | |||||
| ./stats.sh in=resources/phix174_ill.ref.fa.gz && \ | ||||||
| cd / && rm BBMap_${bbmap_version}.tar.gz | ||||||
|
|
||||||
| #Install RSEM | ||||||
| RUN wget https://github.com/deweylab/RSEM/archive/refs/tags/v${rsem_version}.tar.gz && \ | ||||||
| tar -xzf v${rsem_version}.tar.gz -C /opt && \ | ||||||
| cd /opt/RSEM-${rsem_version} && \ | ||||||
| make && \ | ||||||
| cd / && rm v${rsem_version}.tar.gz | ||||||
| # Install this repository | ||||||
| COPY . /opt/STARsolo | ||||||
| RUN cd /opt/STARsolo &&\ | ||||||
| rm data/test.tar.gz &&\ | ||||||
|
||||||
| rm data/test.tar.gz &&\ | |
| rm -f data/test.tar.gz &&\ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The samtools version was upgraded from 1.15.1 to 1.21. While this is a minor version upgrade within the 1.x series, it's worth noting in case there are any behavioral changes. Consider documenting this version change in the PR description or release notes, especially since the README states "Tested version: 1.15.1".