Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
1d21ee3
#32 in progress
Cristianetaniguti Apr 23, 2025
0e99c89
in progress
Cristianetaniguti Apr 24, 2025
198913c
avoid if length > 1
Cristianetaniguti Jun 2, 2025
6c44f19
add error
Cristianetaniguti Jun 2, 2025
8a8da90
Merge pull request #138 from Breeding-Insight/noUpdog_fix
alex-sandercock Jun 2, 2025
7100112
Merge pull request #139 from Breeding-Insight/development
Cristianetaniguti Jun 9, 2025
e6a3047
Merge branch 'vcf_sanity_check' of https://github.com/Breeding-Insigh…
Cristianetaniguti Jun 9, 2025
beef565
check FORMAT consistancy + tests
Cristianetaniguti Jun 9, 2025
2d383ae
GS ok #32
Cristianetaniguti Jun 9, 2025
1534267
GWAS ok #32
Cristianetaniguti Jun 9, 2025
c2b39de
Diversity ok #32
Cristianetaniguti Jun 9, 2025
b2f015d
PCA tab ok #32
Cristianetaniguti Jun 10, 2025
4144a97
Dosage tab ok #32
Cristianetaniguti Jun 10, 2025
88db67c
GSAcc tab ok #32
Cristianetaniguti Jun 10, 2025
eb5c568
DAPC tab ok #32
Cristianetaniguti Jun 10, 2025
7d62494
fix check
Cristianetaniguti Jun 11, 2025
f012389
Switch to Gmatrix
alex-sandercock Jun 16, 2025
b86b9e3
#32 adding check for un/compressed files
Cristianetaniguti Jul 15, 2025
de5498f
change to point error
Cristianetaniguti Jul 16, 2025
25ca4b8
removed ref/alt warnings
alex-sandercock Jul 17, 2025
520044a
updated version
alex-sandercock Jul 17, 2025
28315c4
Merge pull request #140 from Breeding-Insight/vcf_sanity_check
alex-sandercock Jul 17, 2025
bf605d5
Merge branch 'development' into Gmatrix
alex-sandercock Jul 17, 2025
48b9246
updated test
alex-sandercock Jul 17, 2025
09dc6d0
Merge pull request #141 from Breeding-Insight/Gmatrix
alex-sandercock Jul 17, 2025
54de06e
issue #32 complete
Cristianetaniguti Jul 18, 2025
8890234
vcf check never breaks + viewpoly output
Cristianetaniguti Aug 11, 2025
d4e41ca
update Dockerfile
Cristianetaniguti Aug 12, 2025
52db70b
version 1.3.1
Cristianetaniguti Aug 12, 2025
8a6cb41
docker fast build
Cristianetaniguti Aug 14, 2025
b721b9b
update version
Cristianetaniguti Aug 14, 2025
04405f0
rm main branch requirement
Cristianetaniguti Aug 14, 2025
060bf7e
up version to docker test
Cristianetaniguti Aug 14, 2025
6859ff9
fix for arm64
Cristianetaniguti Aug 14, 2025
1fa8481
add vcf_sanity_check to filter tab + export PCA tab
Cristianetaniguti Aug 15, 2025
0737930
max markers as warning
Cristianetaniguti Aug 19, 2025
71c5823
error if doesnt have .gz but is compressed
Cristianetaniguti Aug 19, 2025
2ad082f
up version + BIGr from CRAN
Cristianetaniguti Aug 19, 2025
a925296
run arm64 #92
Cristianetaniguti Aug 19, 2025
f91617f
fix format #92
Cristianetaniguti Aug 19, 2025
a303e3d
sintax fix #92
Cristianetaniguti Aug 19, 2025
b3157e4
change schedule for test #92
Cristianetaniguti Aug 19, 2025
3f04519
use a native ARM64 runner #92
Cristianetaniguti Aug 19, 2025
e546fa9
add BIG citation to help files
Cristianetaniguti Aug 19, 2025
9f1a10d
add i
Cristianetaniguti Aug 19, 2025
bb6e208
deps manifest okay
Cristianetaniguti Aug 20, 2025
5abfd30
adjust version on footer
Cristianetaniguti Aug 20, 2025
21b00d9
update manifest decl.
Cristianetaniguti Aug 21, 2025
901b813
up version
Cristianetaniguti Aug 21, 2025
ef0b54d
update images
Cristianetaniguti Aug 21, 2025
0549b03
option to save removed sample list
alex-sandercock Aug 25, 2025
30527fa
Merge branch 'development' into vcf_sanity_check
alex-sandercock Aug 25, 2025
91f9b9a
Merge pull request #143 from Breeding-Insight/vcf_sanity_check
alex-sandercock Aug 25, 2025
1ad81b3
polyrad_bugfix
Cristianetaniguti Sep 5, 2025
a6e0ee4
bugfix pipe search
Cristianetaniguti Sep 8, 2025
3ed5535
retain RefAlt info fix
alex-sandercock Sep 9, 2025
d6a4fce
Merge branch 'main' into development
alex-sandercock Sep 12, 2025
ea5b19e
Merge pull request #147 from Breeding-Insight/polyrad_bugfix
alex-sandercock Sep 12, 2025
46788c9
fix check
Cristianetaniguti Sep 17, 2025
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
139 changes: 139 additions & 0 deletions .github/workflows/dockerhub-on-version.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
name: Build & Push Docker image on package version change

on:
push:
branches: [ main, vcf_sanity_check ]
paths:
- .github/workflows/dockerhub-on-version.yml
- Dockerfile
- DESCRIPTION
workflow_dispatch:

concurrency:
group: docker-${{ github.ref }}
cancel-in-progress: true

env:
IMAGE: docker.io/breedinginsight/bigapp
IMAGE_DEPS: docker.io/breedinginsight/bigapp-deps
DEPS_TAG: r4.5-bioc3.21-2025-08

jobs:
check-version:
runs-on: ubuntu-latest
outputs:
changed: ${{ steps.ver.outputs.changed }}
version: ${{ steps.ver.outputs.version }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- id: ver
shell: bash
run: |
set -euo pipefail
cur_ver=$(sed -n 's/^Version:[[:space:]]*//p' DESCRIPTION | tr -d '[:space:]')
prev_sha="${{ github.event.before }}"
if git show "${prev_sha}:DESCRIPTION" >/dev/null 2>&1; then
prev_ver=$(git show "${prev_sha}:DESCRIPTION" | sed -n 's/^Version:[[:space:]]*//p' | tr -d '[:space:]')
else
prev_ver=""
fi
changed=false
if [[ -z "${prev_ver}" || "${cur_ver}" != "${prev_ver}" ]]; then changed=true; fi
echo "version=${cur_ver}" >> "$GITHUB_OUTPUT"
echo "changed=${changed}" >> "$GITHUB_OUTPUT"

build-amd64:
needs: check-version
if: needs['check-version'].outputs.changed == 'true'
runs-on: ubuntu-latest
timeout-minutes: 120
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
- uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.IMAGE }}
tags: |
type=raw,value=v${{ needs['check-version'].outputs.version }}-amd64
type=raw,value=sha-${{ github.sha }}-amd64
- name: Build & push app (amd64)
uses: docker/build-push-action@v6
with:
context: .
file: Dockerfile
platforms: linux/amd64
push: true
build-args: |
BASE_IMAGE=${{ env.IMAGE_DEPS }}:${{ env.DEPS_TAG }}
tags: ${{ steps.meta.outputs.tags }}
cache-from: |
type=registry,ref=${{ env.IMAGE }}:buildcache-amd64
cache-to: type=registry,ref=${{ env.IMAGE }}:buildcache-amd64,mode=max,compression=zstd

build-arm64:
needs: check-version
if: needs['check-version'].outputs.changed == 'true'
continue-on-error: true
runs-on: ubuntu-latest
timeout-minutes: 350
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
- uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.IMAGE }}
tags: |
type=raw,value=v${{ needs['check-version'].outputs.version }}-arm64
type=raw,value=sha-${{ github.sha }}-arm64
- name: Build & push app (arm64)
uses: docker/build-push-action@v6
with:
context: .
file: Dockerfile
platforms: linux/arm64
push: true
build-args: |
BASE_IMAGE=${{ env.IMAGE_DEPS }}:${{ env.DEPS_TAG }}
tags: ${{ steps.meta.outputs.tags }}
cache-from: |
type=registry,ref=${{ env.IMAGE }}:buildcache-arm64
cache-to: type=registry,ref=${{ env.IMAGE }}:buildcache-arm64,mode=max,compression=zstd

manifest:
needs: [check-version, build-amd64, build-arm64]
if: >
needs['check-version'].outputs.changed == 'true' &&
needs['build-amd64'].result == 'success' &&
needs['build-arm64'].result == 'success'
runs-on: ubuntu-latest
steps:
- uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}

- name: Create multi-arch manifest
env:
IMAGE: ${{ env.IMAGE }}
PKG_VERSION: ${{ needs['check-version'].outputs.version }}
run: |
set -euo pipefail
docker buildx imagetools create \
-t "$IMAGE:v${PKG_VERSION}" \
-t "$IMAGE:latest" \
"$IMAGE:v${PKG_VERSION}-amd64" \
"$IMAGE:v${PKG_VERSION}-arm64"
4 changes: 2 additions & 2 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Package: BIGapp
Title: Breeding Insight Genomics Shiny Application
Version: 1.3.0
Version: 1.5.1
Authors@R:
c(
person(c("Alexander", "M."), "Sandercock",
Expand Down Expand Up @@ -73,6 +73,6 @@ Imports:
methods
Remotes:
github::jendelman/GWASpoly,
github::Breeding-Insight/BIGr,
bioc::Rsamtools
Suggests:
testthat
68 changes: 23 additions & 45 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,47 +1,25 @@
FROM rocker/r-ver:4.4.2
RUN apt-get update && apt-get install -y cmake libz-dev libcurl4-openssl-dev libssl-dev
RUN R -e 'install.packages("remotes")'
RUN Rscript -e 'remotes::install_version("adegenet",upgrade="never", version = "2.1.10")'
RUN Rscript -e 'remotes::install_version("curl",upgrade="never", version = "6.0.1")'
RUN Rscript -e 'remotes::install_version("DT",upgrade="never", version = "0.33")'
RUN Rscript -e 'remotes::install_version("dplyr",upgrade="never", version = "1.1.4")'
RUN Rscript -e 'remotes::install_version("vcfR",upgrade="never", version = "1.15.0")'
RUN Rscript -e 'remotes::install_version("ggplot2",upgrade="never", version = "3.5.1")'
RUN Rscript -e 'remotes::install_version("tidyr",upgrade="never", version = "1.3.1")'
RUN Rscript -e 'remotes::install_version("curl",upgrade="never", version = "6.0.1")'
RUN Rscript -e 'remotes::install_version("shiny",upgrade="never", version = "1.9.1")'
RUN Rscript -e 'remotes::install_version("config",upgrade="never", version = "0.3.2")'
RUN Rscript -e 'remotes::install_version("bs4Dash",upgrade="never", version = "2.3.4")'
RUN Rscript -e 'remotes::install_version("golem",upgrade="never", version = "0.5.1")'
RUN Rscript -e 'remotes::install_version("purrr",upgrade="never", version = "1.0.2")'
RUN Rscript -e 'remotes::install_version("markdown",upgrade="never", version = "1.13")'
RUN Rscript -e 'remotes::install_version("scales",upgrade="never", version = "1.3.0")'
RUN Rscript -e 'remotes::install_version("plotly",upgrade="never", version = "4.10.4")'
RUN Rscript -e 'remotes::install_version("shinyWidgets",upgrade="never", version = "0.8.7")'
RUN Rscript -e 'remotes::install_version("shinyjs",upgrade="never", version = "2.1.0")'
RUN Rscript -e 'remotes::install_version("shinydisconnect",upgrade="never", version = "0.1.1")'
RUN Rscript -e 'remotes::install_version("shinyalert",upgrade="never", version = "3.1.0")'
RUN Rscript -e 'remotes::install_version("stringr",upgrade="never", version = "1.5.1")'
RUN Rscript -e 'remotes::install_version("updog",upgrade="never", version = "2.1.5")'
RUN Rscript -e 'remotes::install_version("AGHmatrix",upgrade="never", version = "2.1.4")'
RUN Rscript -e 'remotes::install_version("factoextra",upgrade="never", version = "1.0.7")'
RUN Rscript -e 'remotes::install_version("httr",upgrade="never", version = "1.4.7")'
RUN Rscript -e 'remotes::install_version("future",upgrade="never", version = "1.34.0")'
RUN Rscript -e 'remotes::install_version("shinycssloaders",upgrade="never", version = "1.1.0")'
RUN Rscript -e 'remotes::install_version("RColorBrewer",upgrade="never", version = "1.1.3")'
RUN Rscript -e 'remotes::install_version("tibble",upgrade="never", version = "3.2.1")'
RUN Rscript -e 'remotes::install_version("rrBLUP",upgrade="never", version = "4.6.3")'
RUN Rscript -e 'remotes::install_version("MASS",upgrade="never", version = "7.3.60.2")'
RUN Rscript -e 'remotes::install_version("Matrix",upgrade="never", version = "1.7.0")'
RUN Rscript -e 'remotes::install_version("matrixcalc",upgrade="never", version = "1.0.6")'
RUN Rscript -e 'remotes::install_github("Breeding-Insight/BIGr",upgrade="never")'
RUN Rscript -e 'remotes::install_github("jendelman/GWASpoly",upgrade="never")'
# syntax=docker/dockerfile:1.7
# Buildx/Actions will pass BASE_IMAGE as a manifest tag that covers both arches
ARG BASE_IMAGE=docker.io/breedinginsight/bigapp-deps:r4.5-bioc3.21-2025-08
FROM ${BASE_IMAGE}

RUN mkdir /build_zone
ADD . /build_zone
WORKDIR /build_zone
RUN R -e 'remotes::install_local(upgrade="never")'
RUN rm -rf /build_zone
EXPOSE 80
CMD R -e "options('shiny.port'=80,shiny.host='0.0.0.0');BIGapp::run_app()"
SHELL ["/bin/bash","-eo","pipefail","-c"]
ENV DEBIAN_FRONTEND=noninteractive TZ=UTC
ENV MAKEFLAGS="-j2" R_PKG_INSTALL_ARGS="--no-build-vignettes --no-manual"

# App install (only your code changes should rebuild this layer)
WORKDIR /app
COPY DESCRIPTION /app/
# COPY NAMESPACE /app/ # if present, include for better cache hits
COPY . /app
RUN R -q -e "remotes::install_local('.', upgrade='never', dependencies=TRUE, \
INSTALL_opts=c('--no-build-vignettes','--no-manual'))"

# Runtime
RUN useradd -m appuser
USER appuser
WORKDIR /app
EXPOSE 80
HEALTHCHECK --interval=30s --timeout=5s --retries=5 \
CMD wget -qO- http://localhost:${PORT:-80}/ || exit 1
CMD ["R","-q","-e","options(shiny.port=as.integer(Sys.getenv('PORT','80')), shiny.host='0.0.0.0'); BIGapp::run_app()"]
3 changes: 3 additions & 0 deletions NAMESPACE
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# Generated by roxygen2: do not edit by hand

S3method(print,vcf_sanity_check)
export(run_app)
export(vcf_sanity_check)
export(vcf_sanity_messages)
import(BIGr)
import(GWASpoly)
import(dplyr)
Expand Down
Loading
Loading