Skip to content

Release 2.0

Release 2.0 #29

name: Build and Push Base Docker image (parallel)
on:
pull_request:
paths:
- 'base_image/**'
- '.github/workflows/parallel-base-image.yml'
jobs:
build-stages:
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: true
matrix:
stage: [rscape, tRNAscan-SE, Bio-Easel, traveler, scripts, ribovore-infernal-easel]
platform: [linux/amd64, linux/arm64]
include:
- platform: 'linux/amd64'
runner: 'ubuntu-latest'
shorthand: 'amd64'
- platform: 'linux/arm64'
runner: 'buildjet-2vcpu-ubuntu-2204-arm'
shorthand: 'arm64'
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build ${{ matrix.stage }} stage
uses: docker/build-push-action@v5
with:
platforms: ${{ matrix.platform }}
target: ${{ matrix.stage }}
cache-from: type=registry,ref=rnacentral/r2dt-base:cache-${{ matrix.stage }}-${{ matrix.shorthand }}
cache-to: type=registry,ref=rnacentral/r2dt-base:cache-${{ matrix.stage }}-${{ matrix.shorthand }},mode=max
file: base_image/Dockerfile
context: base_image/
final-build:
needs: build-stages
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Docker Meta
id: docker_meta
uses: docker/metadata-action@v4
with:
images: rnacentral/r2dt-base
flavor: latest=false
tags: |
type=ref,event=pr
- name: Log in to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push final Docker image
uses: docker/build-push-action@v5
with:
platforms: linux/amd64,linux/arm64
push: true
labels: ${{ steps.docker_meta.outputs.labels }}
tags: ${{ steps.docker_meta.outputs.tags }}
cache-from: |
type=registry,ref=rnacentral/r2dt-base:cache-rscape-amd64
type=registry,ref=rnacentral/r2dt-base:cache-tRNAscan-SE-amd64
type=registry,ref=rnacentral/r2dt-base:cache-Bio-Easel-amd64
type=registry,ref=rnacentral/r2dt-base:cache-traveler-amd64
type=registry,ref=rnacentral/r2dt-base:cache-scripts-amd64
type=registry,ref=rnacentral/r2dt-base:cache-ribovore-infernal-easel-amd64
type=registry,ref=rnacentral/r2dt-base:cache-rscape-arm64
type=registry,ref=rnacentral/r2dt-base:cache-tRNAscan-SE-arm64
type=registry,ref=rnacentral/r2dt-base:cache-Bio-Easel-arm64
type=registry,ref=rnacentral/r2dt-base:cache-traveler-arm64
type=registry,ref=rnacentral/r2dt-base:cache-scripts-arm64
type=registry,ref=rnacentral/r2dt-base:cache-ribovore-infernal-easel-arm64
type=registry,ref=rnacentral/r2dt-base:cache-final
cache-to: type=registry,ref=rnacentral/r2dt-base:cache-final,mode=max
file: base_image/Dockerfile
context: base_image/
target: final-build