Skip to content

Commit

Permalink
Add release/devel cycle and Bioc version in tag (#126)
Browse files Browse the repository at this point in the history
* Add release/devel cycle and Bioc version in tag
* Renaming cycle to branch
* Change cycle to patch
* Change devel tarball
  • Loading branch information
almahmoud authored Nov 9, 2023
1 parent d719851 commit 22287cb
Show file tree
Hide file tree
Showing 6 changed files with 82 additions and 10 deletions.
17 changes: 12 additions & 5 deletions .github/workflows/build_ghcr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ jobs:
matrix:
ubuntu: [jammy]
platform: [linux/amd64]
branch: [devel, release]

name: Build container images for GHCR
runs-on: ubuntu-latest
Expand Down Expand Up @@ -62,6 +63,7 @@ jobs:
id: build
uses: docker/build-push-action@v4
with:
build-args: CYCLE=${{matrix.branch}}
labels: ${{ steps.meta.outputs.labels }}
outputs: type=image,name=${{ steps.vars.outputs.container }},push-by-digest=true,name-canonical=true,push=true
platforms: ${{matrix.platform}}
Expand All @@ -73,7 +75,7 @@ jobs:
cat << "EOF" > ${{matrix.ubuntu}}-${{matrix.platform}}-r.Dockerfile
FROM ${{ steps.vars.outputs.container }}@${{ steps.build.outputs.digest }} as extract
USER root
RUN mkdir /bioctmp && /bbs_r_start --version > /bioctmp/rver && cat /etc/os-release > /bioctmp/os-release
RUN mkdir /bioctmp && /bbs_r_start -e 'BiocManager::version()' | grep '\[1\]' | awk -F"'" '{print $2}' > /bioctmp/biocver && /bbs_r_start --version > /bioctmp/rver && cat /etc/os-release > /bioctmp/os-release
FROM scratch as export
COPY --from=extract /bioctmp/* /
EOF
Expand All @@ -96,19 +98,24 @@ jobs:
cd ${{matrix.ubuntu}}-${{matrix.platform}}
tar -xvf r.tar
echo rver=$(cat rver | awk 'NR==1{print $3}') >> $GITHUB_OUTPUT
echo biocver=$(cat biocver) >> $GITHUB_OUTPUT
echo osver=$(awk -F= '/VERSION_ID/ {gsub("\"", "", $2); print $2}' os-release) >> $GITHUB_OUTPUT
- name: Export digest by ubuntu and r versions
run: |
digest="${{ steps.build.outputs.digest }}"
mkdir -p /tmp/digests/${{matrix.ubuntu}}
touch "/tmp/digests/${{matrix.ubuntu}}/${digest#sha256:}"
mkdir -p /tmp/digests/${{matrix.ubuntu}}-r-${{steps.versions.outputs.rver}}
touch "/tmp/digests/${{matrix.ubuntu}}-r-${{steps.versions.outputs.rver}}/${digest#sha256:}"
mkdir -p /tmp/digests/${{matrix.ubuntu}}-bioc-${{steps.versions.outputs.biocver}}
touch "/tmp/digests/${{matrix.ubuntu}}-bioc-${{steps.versions.outputs.biocver}}/${digest#sha256:}"
mkdir -p /tmp/digests/${{matrix.ubuntu}}-bioc-${{steps.versions.outputs.biocver}}-r-${{steps.versions.outputs.rver}}
touch "/tmp/digests/${{matrix.ubuntu}}-bioc-${{steps.versions.outputs.biocver}}-r-${{steps.versions.outputs.rver}}/${digest#sha256:}"
mkdir -p /tmp/digests/${{steps.versions.outputs.osver}}
touch "/tmp/digests/${{steps.versions.outputs.osver}}/${digest#sha256:}"
mkdir -p /tmp/digests/${{steps.versions.outputs.osver}}-r-${{steps.versions.outputs.rver}}
touch "/tmp/digests/${{steps.versions.outputs.osver}}-r-${{steps.versions.outputs.rver}}/${digest#sha256:}"
mkdir -p /tmp/digests/${{steps.versions.outputs.osver}}-bioc-${{steps.versions.outputs.biocver}}
touch "/tmp/digests/${{steps.versions.outputs.osver}}-bioc-${{steps.versions.outputs.biocver}}/${digest#sha256:}"
mkdir -p /tmp/digests/${{steps.versions.outputs.osver}}-bioc-${{steps.versions.outputs.biocver}}-r-${{steps.versions.outputs.rver}}
touch "/tmp/digests/${{steps.versions.outputs.osver}}-bioc-${{steps.versions.outputs.biocver}}-r-${{steps.versions.outputs.rver}}/${digest#sha256:}"
- name: Upload digests
uses: actions/upload-artifact@v3
Expand Down
3 changes: 2 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
FROM ubuntu:jammy
ARG CYCLE=release
RUN useradd -ms /bin/bash biocbuild && apt update -qq && apt install sudo systemd -y && usermod -aG sudo biocbuild && echo "biocbuild ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
USER biocbuild
COPY . /home/biocbuild/bioconductor_salt
WORKDIR /home/biocbuild
RUN bash bioconductor_salt/simple_start_linux.sh
RUN bash bioconductor_salt/startup_bbs_standalone_${CYCLE}.sh
ENTRYPOINT ["/bbs_r_start"]

13 changes: 13 additions & 0 deletions saltstack/pillar/custom/devel_standalone.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{# Custom Settings #}

{% set branch = 'devel' %} {# Use 'release' or 'devel' #}
{% set version = '3.19' %}
{% set environment = 'dev' %} {# Use 'dev' or 'prod' #}
{% set r_download = 'https://stat.ethz.ch/R/daily/R-devel.tar.gz' %}
{% set r_version = 'R-4.4' %}
{% set r_previous_version = 'R-4.3' %}
{% set cycle = 'patch' %} {# Use 'devel' for Spring to Fall, 'patch' for Fall to Spring #}
{% set name = 'bbs-machine' %}
{% set immunespace_pwd = '' %}
{% set create_users = False %}
{% set machine_type = 'standalone' %}
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
{# Custom Settings #}

{% set branch = 'devel' %} {# Use 'release' or 'devel' #}
{% set branch = 'release' %} {# Use 'release' or 'devel' #}
{% set version = '3.18' %}
{% set environment = 'dev' %} {# Use 'dev' or 'prod' #}
{% set r_download = 'https://cran.r-project.org/src/base/R-4/R-4.3.1.tar.gz' %}
{% set r_download = 'https://cran.r-project.org/src/base/R-4/R-4.3.2.tar.gz' %}
{% set r_version = 'R-4.3' %}
{% set r_previous_version = 'R-4.2' %}
{% set cycle = 'devel' %} {# Use 'devel' for Spring to Fall, 'patch' for Fall to Spring #}
{% set cycle = 'patch' %} {# Use 'devel' for Spring to Fall, 'patch' for Fall to Spring #}
{% set name = 'bbs-machine' %}
{% set immunespace_pwd = '' %}
{% set create_users = False %}
Expand Down
2 changes: 1 addition & 1 deletion simple_start_linux.sh → startup_bbs_standalone_devel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ sudo cp -r bioconductor_salt/saltstack/salt /srv
sudo cp -r bioconductor_salt/saltstack/pillar /srv
sudo cp bioconductor_salt/saltstack/minion.d/minion.conf /etc/salt/minion

sudo mv /srv/pillar/custom/standalone.sls /srv/pillar/custom/init.sls
sudo mv /srv/pillar/custom/devel_standalone.sls /srv/pillar/custom/init.sls

sudo salt-call --local state.highstate -l debug || true

Expand Down
51 changes: 51 additions & 0 deletions startup_bbs_standalone_release.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
#!/usr/bin/env bash

# Basic deps
sudo apt update -qq
sudo apt -y install curl git build-essential python3 python3-pip locales wget

# Set up saltstack

# https://docs.saltproject.io/salt/install-guide/en/latest/topics/install-by-operating-system/ubuntu.html

sudo curl -fsSL -o /etc/apt/keyrings/salt-archive-keyring-2023.gpg https://repo.saltproject.io/salt/py3/ubuntu/22.04/amd64/SALT-PROJECT-GPG-PUBKEY-2023.gpg
echo "deb [signed-by=/etc/apt/keyrings/salt-archive-keyring-2023.gpg arch=amd64] https://repo.saltproject.io/salt/py3/ubuntu/22.04/amd64/latest jammy main" | sudo tee /etc/apt/sources.list.d/salt.list

sudo apt-get -y update
sudo apt-get -y install salt-minion
sudo service salt-minion stop
sudo systemctl disable salt-minion

# Assumes the repository has already been cloned to the working directory
# cd ~
# git clone -b standalone https://github.com/Bioconductor/bioconductor_salt

# Set up bioconductor's saltstack
sudo cp -r bioconductor_salt/saltstack/salt /srv
sudo cp -r bioconductor_salt/saltstack/pillar /srv
sudo cp bioconductor_salt/saltstack/minion.d/minion.conf /etc/salt/minion

sudo mv /srv/pillar/custom/release_standalone.sls /srv/pillar/custom/init.sls

sudo salt-call --local state.highstate -l debug || true

# Find R path and check that it works
/home/biocbuild/bbs-*/R/bin/R --version > /tmp/rver
if ! grep -q 'R version' /tmp/rver; then exit 1; fi

RPATH="$(echo /home/biocbuild/bbs-*/R/bin)"

echo "export PATH='$PATH:$RPATH'" | sudo tee -a /etc/profile
echo "export PATH='$PATH:$RPATH'" | sudo tee -a /etc/bash.bashrc

echo "#!/bin/bash" | sudo tee /bbs_r_start
echo "$RPATH/R \"\$@\"" | sudo tee -a /bbs_r_start

sudo chown biocbuild /bbs_r_start
sudo chmod +x /bbs_r_start

# Cleanup
# rm -rf /srv /etc/salt
# sudo apt-get -y purge salt-minion


0 comments on commit 22287cb

Please sign in to comment.