Skip to content

Build and push Bento base images #50

Build and push Bento base images

Build and push Bento base images #50

Workflow file for this run

name: Build and push Bento base images
on:
workflow_dispatch:
schedule:
# no matter what, build new base images on the first of every month at 5:30 AM
- cron: '30 5 1 * *'
env:
BENTO_PYTHON_VERSION: "3.11"
BENTO_PYTHON_DEBIAN_VERSION: "slim-bookworm"
BENTO_NODE_VERSION: "20"
BENTO_NODE_DEBIAN_VERSION: "bookworm-slim"
BENTO_PLAIN_DEBIAN_VERSION: "bookworm-slim"
BENTO_GOLANG_VERSION: "1.21"
BENTO_GOLANG_DEBIAN_VERSION: "bookworm"
jobs:
build-push-python-debian:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout
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: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up image metadata for python-debian
id: meta-python-debian
uses: docker/metadata-action@v5
with:
images: |
ghcr.io/bento-platform/bento_base_image
tags: |
type=raw,value=python-debian-latest
type=raw,value=python-debian-{{date 'YYYY.MM.DD'}}
type=raw,value=python-debian-{{date 'YYYY.MM.DD.HHmm'}}
- name: Build and push python-debian image
uses: docker/build-push-action@v6
with:
push: true
file: ./spec/python/debian.Dockerfile
build-args: |
BENTO_PYTHON_VERSION=${{ env.BENTO_PYTHON_VERSION }}
BENTO_PYTHON_DEBIAN_VERSION=${{ env.BENTO_PYTHON_DEBIAN_VERSION }}
tags: ${{ steps.meta-python-debian.outputs.tags }}
labels: ${{ steps.meta-python-debian.outputs.labels }}
platforms: linux/amd64,linux/arm64
build-push-node-debian:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout
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: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up image metadata for node-debian
id: meta-node-debian
uses: docker/metadata-action@v5
with:
images: |
ghcr.io/bento-platform/bento_base_image
tags: |
type=raw,value=node-debian-latest
type=raw,value=node-debian-{{date 'YYYY.MM.DD'}}
type=raw,value=node-debian-{{date 'YYYY.MM.DD.HHmm'}}
- name: Build and push node-debian image
uses: docker/build-push-action@v6
with:
push: true
file: ./spec/node/debian.Dockerfile
build-args: |
BENTO_NODE_VERSION=${{ env.BENTO_NODE_VERSION }}
BENTO_NODE_DEBIAN_VERSION=${{ env.BENTO_NODE_DEBIAN_VERSION }}
tags: ${{ steps.meta-node-debian.outputs.tags }}
labels: ${{ steps.meta-node-debian.outputs.labels }}
platforms: linux/amd64,linux/arm64
build-push-plain-debian:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout
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: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up image metadata for plain-debian
id: meta-plain-debian
uses: docker/metadata-action@v5
with:
images: |
ghcr.io/bento-platform/bento_base_image
tags: |
type=raw,value=plain-debian-latest
type=raw,value=plain-debian-{{date 'YYYY.MM.DD'}}
type=raw,value=plain-debian-{{date 'YYYY.MM.DD.HHmm'}}
- name: Build and push plain-debian image
uses: docker/build-push-action@v6
with:
push: true
file: ./spec/plain/debian.Dockerfile
build-args: |
BENTO_PLAIN_DEBIAN_VERSION=${{ env.BENTO_PLAIN_DEBIAN_VERSION }}
tags: ${{ steps.meta-plain-debian.outputs.tags }}
labels: ${{ steps.meta-plain-debian.outputs.labels }}
platforms: linux/amd64,linux/arm64
build-push-golang-debian:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout
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: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up image metadata for golang-debian
id: meta-golang-debian
uses: docker/metadata-action@v5
with:
images: |
ghcr.io/bento-platform/bento_base_image
tags: |
type=raw,value=golang-debian-latest
type=raw,value=golang-debian-{{date 'YYYY.MM.DD'}}
type=raw,value=golang-debian-{{date 'YYYY.MM.DD.HHmm'}}
- name: Build and push golang-debian image
uses: docker/build-push-action@v6
with:
push: true
file: ./spec/golang/debian.Dockerfile
build-args: |
BENTO_GOLANG_VERSION=${{ env.BENTO_GOLANG_VERSION }}
BENTO_GOLANG_DEBIAN_VERSION=${{ env.BENTO_GOLANG_DEBIAN_VERSION }}
tags: ${{ steps.meta-golang-debian.outputs.tags }}
labels: ${{ steps.meta-golang-debian.outputs.labels }}
platforms: linux/amd64,linux/arm64