Skip to content

Docker Image CI

Docker Image CI #443

Workflow file for this run

name: Docker Image CI
on:
push:
paths-ignore:
- 'cibuildwheel/**'
- '.github/workflows/image_cibuildwheel.yml'
branches:
- master
schedule:
- cron: "0 0 14,28 * *"
jobs:
build:
strategy:
matrix:
ubuntu_release: ["22.04", "22.10"]
rpy2_version: ["master", "RELEASE_3_5_6"]
env:
RPY2_VERSION: master
LATEST_UBUNTU: "22.10"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build base image
run: |
docker build base \
--tag rpy2/base-ubuntu:v"${{ matrix.rpy2_version }}"-"${{ matrix.ubuntu_release }}" \
--build-arg RPY2_VERSION="${{ matrix.rpy2_version }}" \
--build-arg UBUNTU_RELEASE="${{ matrix.ubuntu_release }}"
- name: Push base image
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
run: |
echo "${DOCKER_PASSWORD}" | docker login -u "${DOCKER_USERNAME}" --password-stdin
IMAGE_TAG=rpy2/base-ubuntu:"${{ matrix.rpy2_version }}"-"${{ matrix.ubuntu_release }}"
docker tag "${IMAGE_TAG}" "${IMAGE_TAG}"
docker push "${IMAGE_TAG}"
if [ "${{ matrix.ubuntu_release }}" == "${LATEST_UBUNTU}" ]; then
docker tag "${IMAGE_TAG}" rpy2/base-ubuntu:latest
docker push rpy2/base-ubuntu:latest
fi
- name: Build jupyter image
run: |
docker build jupyter \
--tag rpy2/jupyter-ubuntu:v"${{ matrix.rpy2_version }}"-"${{ matrix.ubuntu_release }}" \
--build-arg RPY2_VERSION="${{ matrix.rpy2_version }}" \
--build-arg UBUNTU_RELEASE="${{ matrix.ubuntu_release }}"
- name: Push jupyter image
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
run: |
echo "${DOCKER_PASSWORD}" | docker login -u "${DOCKER_USERNAME}" --password-stdin
IMAGE_TAG=rpy2/jupyter-ubuntu:v"${{ matrix.rpy2_version }}"-"${{ matrix.ubuntu_release }}"
docker tag "${IMAGE_TAG}" "${IMAGE_TAG}"
docker push "${IMAGE_TAG}"
if [ "${{ matrix.ubuntu_release }}" == "${LATEST_UBUNTU}" ]; then
docker tag "${IMAGE_TAG}" rpy2/jupyter-ubuntu:latest
docker push rpy2/jupyter-ubuntu:latest
fi
- name: Build jupyter_ds image
run: |
docker build jupyter_ds \
--tag rpy2/jupyter_ds-ubuntu:v"${{ matrix.rpy2_version }}"-"${{ matrix.ubuntu_release }}" \
--build-arg RPY2_VERSION="${{ matrix.rpy2_version }}" \
--build-arg UBUNTU_RELEASE="${{ matrix.ubuntu_release }}"
- name: Push jupyter_ds image
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
run: |
echo "${DOCKER_PASSWORD}" | docker login -u "${DOCKER_USERNAME}" --password-stdin
IMAGE_TAG=rpy2/jupyter_ds-ubuntu:v"${{ matrix.rpy2_version }}"-"${{ matrix.ubuntu_release }}"
docker tag "${IMAGE_TAG}" "${IMAGE_TAG}"
docker push "${IMAGE_TAG}"
if [ "${{ matrix.ubuntu_release }}" == "${LATEST_UBUNTU}" ]; then
docker tag "${IMAGE_TAG}" rpy2/jupyter_ds-ubuntu:latest
docker push rpy2/jupyter_ds-ubuntu:latest
fi