Build Images #789
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build Images | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
workflow_dispatch: | |
schedule: | |
- cron: "0 4 * * *" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build-publish-image: | |
runs-on: ubuntu-latest | |
name: "Build Images (${{ matrix.context}})" | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
# region node-rbenv | |
# +===================+ | |
# | Image: node-rbenv | | |
# +===================+ | |
# region Node.JS 16 | |
# +------------+ | |
# | Node.JS 16 | | |
# +------------+ | |
- image: node-rbenv | |
context: node-rbenv/node-16 | |
tags: | | |
kula/node-rbenv:16 | |
kula/node-rbenv:16.20 | |
kula/node-rbenv:16.20.2 | |
# -- Ruby 3 -- | |
- image: node-rbenv | |
context: node-rbenv/node-16/ruby-3 | |
tags: | | |
kula/node-rbenv:16-ruby3 | |
kula/node-rbenv:16-ruby3.3 | |
kula/node-rbenv:16-ruby3.3.4 | |
kula/node-rbenv:16.20-ruby3 | |
kula/node-rbenv:16.20-ruby3.3 | |
kula/node-rbenv:16.20-ruby3.3.4 | |
kula/node-rbenv:16.20.2-ruby3 | |
kula/node-rbenv:16.20.2-ruby3.3 | |
kula/node-rbenv:16.20.2-ruby3.3.4 | |
#endregion | |
# region Node.JS 16-slim | |
# +-----------------+ | |
# | Node.JS 16-slim | | |
# +-----------------+ | |
- image: node-rbenv | |
context: node-rbenv/node-16-slim | |
tags: | | |
kula/node-rbenv:16-slim | |
kula/node-rbenv:16.20-slim | |
kula/node-rbenv:16.20.2-slim | |
# -- Ruby 3 -- | |
- image: node-rbenv | |
context: node-rbenv/node-16-slim/ruby-3 | |
tags: | | |
kula/node-rbenv:16-slim-ruby3 | |
kula/node-rbenv:16-slim-ruby3.3 | |
kula/node-rbenv:16-slim-ruby3.3.4 | |
kula/node-rbenv:16.20-slim-ruby3 | |
kula/node-rbenv:16.20-slim-ruby3.3 | |
kula/node-rbenv:16.20-slim-ruby3.3.4 | |
kula/node-rbenv:16.20.2-slim-ruby3 | |
kula/node-rbenv:16.20.2-slim-ruby3.3 | |
kula/node-rbenv:16.20.2-slim-ruby3.3.4 | |
# endregion | |
# region Node.JS 18 | |
# +------------+ | |
# | Node.JS 18 | | |
# +------------+ | |
- image: node-rbenv | |
context: node-rbenv/node-18 | |
tags: | | |
kula/node-rbenv:18 | |
kula/node-rbenv:18.19 | |
kula/node-rbenv:18.19.1 | |
# -- Ruby 3 -- | |
- image: node-rbenv | |
context: node-rbenv/node-18/ruby-3 | |
tags: | | |
kula/node-rbenv:18-ruby3 | |
kula/node-rbenv:18.19-ruby3 | |
kula/node-rbenv:18.19.1-ruby3 | |
kula/node-rbenv:18-ruby3.3 | |
kula/node-rbenv:18.19-ruby3.3 | |
kula/node-rbenv:18.19.1-ruby3.3 | |
kula/node-rbenv:18-ruby3.3.4 | |
kula/node-rbenv:18.19-ruby3.3.4 | |
kula/node-rbenv:18.19.1-ruby3.3.4 | |
# endregion | |
# region Node.JS 18-slim | |
# +-----------------+ | |
# | Node.JS 18-slim | | |
# +-----------------+ | |
- image: node-rbenv | |
context: node-rbenv/node-18-slim | |
tags: | | |
kula/node-rbenv:18-slim | |
kula/node-rbenv:18.19-slim | |
kula/node-rbenv:18.19.1-slim | |
# -- Ruby 3 -- | |
- image: node-rbenv | |
context: node-rbenv/node-18-slim/ruby-3 | |
tags: | | |
kula/node-rbenv:18-slim-ruby3 | |
kula/node-rbenv:18.19-slim-ruby3 | |
kula/node-rbenv:18.19.1-slim-ruby3 | |
kula/node-rbenv:18-slim-ruby3.3 | |
kula/node-rbenv:18.19-slim-ruby3.3 | |
kula/node-rbenv:18.19.1-slim-ruby3.3 | |
kula/node-rbenv:18-slim-ruby3.3.4 | |
kula/node-rbenv:18.19-slim-ruby3.3.4 | |
kula/node-rbenv:18.19.1-slim-ruby3.3.4 | |
# endregion | |
# region Node.JS 20 | |
# +------------+ | |
# | Node.JS 20 | | |
# +------------+ | |
- image: node-rbenv | |
context: node-rbenv/node-20 | |
tags: | | |
kula/node-rbenv:20 | |
kula/node-rbenv:20.11 | |
kula/node-rbenv:20.11.1 | |
# -- Ruby 3 -- | |
- image: node-rbenv | |
context: node-rbenv/node-20/ruby-3 | |
tags: | | |
kula/node-rbenv:20-ruby3 | |
kula/node-rbenv:20.11-ruby3 | |
kula/node-rbenv:20.11.1-ruby3 | |
kula/node-rbenv:20-ruby3.3 | |
kula/node-rbenv:20.11-ruby3.3 | |
kula/node-rbenv:20.11.1-ruby3.3 | |
kula/node-rbenv:20-ruby3.3.4 | |
kula/node-rbenv:20.11-ruby3.3.4 | |
kula/node-rbenv:20.11.1-ruby3.3.4 | |
# endregion | |
# region Node.JS 20-slim | |
# +-----------------+ | |
# | Node.JS 20-slim | | |
# +-----------------+ | |
- image: node-rbenv | |
context: node-rbenv/node-20-slim | |
tags: | | |
kula/node-rbenv:20-slim | |
kula/node-rbenv:20.11-slim | |
kula/node-rbenv:20.11.1-slim | |
# -- Ruby 3 -- | |
- image: node-rbenv | |
context: node-rbenv/node-20-slim/ruby-3 | |
tags: | | |
kula/node-rbenv:20-slim-ruby3 | |
kula/node-rbenv:20.11-slim-ruby3 | |
kula/node-rbenv:20.11.1-slim-ruby3 | |
kula/node-rbenv:20-slim-ruby3.3 | |
kula/node-rbenv:20.11-slim-ruby3.3 | |
kula/node-rbenv:20.11.1-slim-ruby3.3 | |
kula/node-rbenv:20-slim-ruby3.3.4 | |
kula/node-rbenv:20.11-slim-ruby3.3.4 | |
kula/node-rbenv:20.11.1-slim-ruby3.3.4 | |
# endregion | |
# region Node.JS Latest | |
# +------------------+ | |
# | Node.JS - Latest | | |
# +------------------+ | |
- image: node-rbenv | |
context: node-rbenv/node-latest | |
tags: | | |
kula/node-rbenv:latest | |
# endregion | |
# endregion | |
# region node-ruby | |
# +==================+ | |
# | Image: node-ruby | | |
# +==================+ | |
# +------------+ | |
# | Node.JS 18 | | |
# +------------+ | |
# -- Ruby 3 -- | |
- image: node-ruby | |
context: node-ruby/node-18/ruby-3/alpine | |
tags: | | |
kula/node-ruby:18-ruby3-alpine | |
kula/node-ruby:18.19-ruby3-alpine | |
kula/node-ruby:18.19.1-ruby3-alpine | |
kula/node-ruby:18-ruby3.3-alpine | |
kula/node-ruby:18.19-ruby3.3-alpine | |
kula/node-ruby:18.19.1-ruby3.3-alpine | |
kula/node-ruby:18-ruby3.3.4-alpine | |
kula/node-ruby:18.19-ruby3.3.4-alpine | |
kula/node-ruby:18.19.1-ruby3.3.4-alpine | |
- image: node-ruby | |
context: node-ruby/node-18/ruby-3/bullseye | |
tags: | | |
kula/node-ruby:18-ruby3-bullseye | |
kula/node-ruby:18.19-ruby3-bullseye | |
kula/node-ruby:18.19.1-ruby3-bullseye | |
kula/node-ruby:18-ruby3.3-bullseye | |
kula/node-ruby:18.19-ruby3.3-bullseye | |
kula/node-ruby:18.19.1-ruby3.3-bullseye | |
kula/node-ruby:18-ruby3.3.4-bullseye | |
kula/node-ruby:18.19-ruby3.3.4-bullseye | |
kula/node-ruby:18.19.1-ruby3.3.4-bullseye | |
# endregion | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
- name: Setup Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: kula | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build Image | |
uses: docker/build-push-action@v5 | |
if: always() | |
with: | |
cache-from: type=registry,ref=ghcr.io/kula-app/containers/${{ matrix.image }}:buildcache | |
cache-to: type=registry,ref=ghcr.io/kula-app/containers/${{ matrix.image }}:buildcache,mode=max | |
context: images/${{ matrix.context }} | |
platforms: linux/amd64,linux/arm64 | |
push: ${{ github.event_name != 'pull_request' }} | |
tags: ${{ matrix.tags }} |