Build and push image #127
This file contains hidden or 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 and push image | |
| on: | |
| push: | |
| branches: | |
| - master | |
| pull_request: | |
| types: [synchronize, opened] | |
| schedule: | |
| - cron: '54 07 12 * *' # on 12th day of every month at 07:54 | |
| jobs: | |
| build-push: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # 3.4.5 on Debian 12 | |
| - ruby-version: "3.4.5" | |
| ruby-variant: "jemalloc" | |
| debian-image: "bookworm" | |
| debian-version: "12" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.4-jemalloc | |
| quay.io/evl.ms/fullstaq-ruby:3.4.5-jemalloc | |
| quay.io/evl.ms/fullstaq-ruby:3.4-jemalloc-bookworm | |
| - ruby-version: "3.4.5" | |
| ruby-variant: "jemalloc" | |
| debian-image: "bookworm-slim" | |
| debian-version: "12" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.4-jemalloc-slim | |
| quay.io/evl.ms/fullstaq-ruby:3.4.5-jemalloc-slim | |
| quay.io/evl.ms/fullstaq-ruby:3.4-jemalloc-bookworm-slim | |
| - ruby-version: "3.4.5" | |
| ruby-variant: "malloctrim" | |
| debian-image: "bookworm" | |
| debian-version: "12" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.4-malloctrim | |
| quay.io/evl.ms/fullstaq-ruby:3.4.5-malloctrim | |
| quay.io/evl.ms/fullstaq-ruby:3.4-malloctrim-bookworm | |
| - ruby-version: "3.4.5" | |
| ruby-variant: "malloctrim" | |
| debian-image: "bookworm-slim" | |
| debian-version: "12" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.4-malloctrim-slim | |
| quay.io/evl.ms/fullstaq-ruby:3.4.5-malloctrim-slim | |
| quay.io/evl.ms/fullstaq-ruby:3.4-malloctrim-bookworm-slim | |
| # 3.4.5 on Debian 11 | |
| - ruby-version: "3.4.5" | |
| ruby-variant: "jemalloc" | |
| debian-image: "bullseye" | |
| debian-version: "11" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.4-jemalloc-bullseye | |
| - ruby-version: "3.4.5" | |
| ruby-variant: "jemalloc" | |
| debian-image: "bullseye-slim" | |
| debian-version: "11" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.4-jemalloc-bullseye-slim | |
| - ruby-version: "3.4.5" | |
| ruby-variant: "malloctrim" | |
| debian-image: "bullseye" | |
| debian-version: "11" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.4-malloctrim-bullseye | |
| - ruby-version: "3.4.5" | |
| ruby-variant: "malloctrim" | |
| debian-image: "bullseye-slim" | |
| debian-version: "11" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.4-malloctrim-bullseye-slim | |
| # 3.3.8 on Debian 12 | |
| - ruby-version: "3.3.8" | |
| ruby-variant: "jemalloc" | |
| debian-image: "bookworm" | |
| debian-version: "12" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.3-jemalloc | |
| quay.io/evl.ms/fullstaq-ruby:3.3.8-jemalloc | |
| quay.io/evl.ms/fullstaq-ruby:3.3-jemalloc-bookworm | |
| - ruby-version: "3.3.8" | |
| ruby-variant: "jemalloc" | |
| debian-image: "bookworm-slim" | |
| debian-version: "12" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.3-jemalloc-slim | |
| quay.io/evl.ms/fullstaq-ruby:3.3.8-jemalloc-slim | |
| quay.io/evl.ms/fullstaq-ruby:3.3-jemalloc-bookworm-slim | |
| - ruby-version: "3.3.8" | |
| ruby-variant: "malloctrim" | |
| debian-image: "bookworm" | |
| debian-version: "12" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.3-malloctrim | |
| quay.io/evl.ms/fullstaq-ruby:3.3.8-malloctrim | |
| quay.io/evl.ms/fullstaq-ruby:3.3-malloctrim-bookworm | |
| - ruby-version: "3.3.8" | |
| ruby-variant: "malloctrim" | |
| debian-image: "bookworm-slim" | |
| debian-version: "12" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.3-malloctrim-slim | |
| quay.io/evl.ms/fullstaq-ruby:3.3.8-malloctrim-slim | |
| quay.io/evl.ms/fullstaq-ruby:3.3-malloctrim-bookworm-slim | |
| # 3.3.8 on Debian 11 | |
| - ruby-version: "3.3.8" | |
| ruby-variant: "jemalloc" | |
| debian-image: "bullseye" | |
| debian-version: "11" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.3-jemalloc-bullseye | |
| - ruby-version: "3.3.8" | |
| ruby-variant: "jemalloc" | |
| debian-image: "bullseye-slim" | |
| debian-version: "11" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.3-jemalloc-bullseye-slim | |
| - ruby-version: "3.3.8" | |
| ruby-variant: "malloctrim" | |
| debian-image: "bullseye" | |
| debian-version: "11" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.3-malloctrim-bullseye | |
| - ruby-version: "3.3.8" | |
| ruby-variant: "malloctrim" | |
| debian-image: "bullseye-slim" | |
| debian-version: "11" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.3-malloctrim-bullseye-slim | |
| # 3.2.8 on Debian 12 | |
| - ruby-version: "3.2.8" | |
| ruby-variant: "jemalloc" | |
| debian-image: "bookworm" | |
| debian-version: "12" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.2-jemalloc-bookworm | |
| - ruby-version: "3.2.8" | |
| ruby-variant: "jemalloc" | |
| debian-image: "bookworm-slim" | |
| debian-version: "12" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.2-jemalloc-bookworm-slim | |
| - ruby-version: "3.2.8" | |
| ruby-variant: "malloctrim" | |
| debian-image: "bookworm" | |
| debian-version: "12" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.2-malloctrim-bookworm | |
| - ruby-version: "3.2.8" | |
| ruby-variant: "malloctrim" | |
| debian-image: "bookworm-slim" | |
| debian-version: "12" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.2-malloctrim-bookworm-slim | |
| # 3.2.8 on Debian 11 | |
| - ruby-version: "3.2.8" | |
| ruby-variant: "jemalloc" | |
| debian-image: "bullseye" | |
| debian-version: "11" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.2.8-jemalloc | |
| quay.io/evl.ms/fullstaq-ruby:3.2-jemalloc | |
| - ruby-version: "3.2.8" | |
| ruby-variant: "jemalloc" | |
| debian-image: "bullseye-slim" | |
| debian-version: "11" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.2.8-jemalloc-slim | |
| quay.io/evl.ms/fullstaq-ruby:3.2-jemalloc-slim | |
| - ruby-version: "3.2.8" | |
| ruby-variant: "malloctrim" | |
| debian-image: "bullseye" | |
| debian-version: "11" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.2.8-malloctrim | |
| quay.io/evl.ms/fullstaq-ruby:3.2-malloctrim | |
| - ruby-version: "3.2.8" | |
| ruby-variant: "malloctrim" | |
| debian-image: "bullseye-slim" | |
| debian-version: "11" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.2.8-malloctrim-slim | |
| quay.io/evl.ms/fullstaq-ruby:3.2-malloctrim-slim | |
| # 3.1.7 on Debian 11 | |
| - ruby-version: "3.1.7" | |
| ruby-variant: "jemalloc" | |
| debian-image: "bullseye" | |
| debian-version: "11" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.1.7-jemalloc | |
| quay.io/evl.ms/fullstaq-ruby:3.1-jemalloc | |
| - ruby-version: "3.1.7" | |
| ruby-variant: "jemalloc" | |
| debian-image: "bullseye-slim" | |
| debian-version: "11" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.1.7-jemalloc-slim | |
| quay.io/evl.ms/fullstaq-ruby:3.1-jemalloc-slim | |
| - ruby-version: "3.1.7" | |
| ruby-variant: "malloctrim" | |
| debian-image: "bullseye" | |
| debian-version: "11" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.1.7-malloctrim | |
| quay.io/evl.ms/fullstaq-ruby:3.1-malloctrim | |
| - ruby-version: "3.1.7" | |
| ruby-variant: "malloctrim" | |
| debian-image: "bullseye-slim" | |
| debian-version: "11" | |
| aliases: | | |
| quay.io/evl.ms/fullstaq-ruby:3.1.7-malloctrim-slim | |
| quay.io/evl.ms/fullstaq-ruby:3.1-malloctrim-slim | |
| steps: | |
| - name: Check out the repo | |
| uses: actions/checkout@v4 | |
| - name: Set up Docker Buildx | |
| id: buildx | |
| uses: docker/setup-buildx-action@v3 | |
| with: | |
| install: true | |
| - name: Cache Docker layers | |
| uses: actions/cache@v4 | |
| with: | |
| path: /tmp/.buildx-cache | |
| key: ${{ runner.os }}-buildx-dev-${{ matrix.debian-image }}-${{ matrix.ruby-version }} | |
| restore-keys: | | |
| ${{ runner.os }}-buildx-dev-${{ matrix.debian-image }}-${{ matrix.ruby-version }} | |
| ${{ runner.os }}-buildx-dev-${{ matrix.debian-image }} | |
| ${{ runner.os }}-buildx-dev | |
| - name: Login to Quay.io | |
| if: github.event_name != 'pull_request' | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: quay.io | |
| username: ${{ secrets.QUAY_USERNAME }} | |
| password: ${{ secrets.QUAY_PASSWORD }} # Get it at Settings → CLI Password | |
| - name: Build Docker image | |
| id: docker_build | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: . | |
| file: Dockerfile | |
| pull: true | |
| push: ${{ github.event_name != 'pull_request' }} | |
| provenance: false # Otherwise images can't be pulled from Quay on platforms other than linux/amd64. See https://github.com/evilmartians/fullstaq-ruby-docker/issues/22 and https://github.com/docker/buildx/issues/1533 | |
| tags: | | |
| quay.io/evl.ms/fullstaq-ruby:${{ matrix.ruby-version }}-${{ matrix.ruby-variant }}-${{ matrix.debian-image }} | |
| ${{ matrix.aliases }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache | |
| build-args: | | |
| RUBY_VERSION=${{ matrix.ruby-version }} | |
| RUBY_VARIANT=${{ matrix.ruby-variant }} | |
| DEBIAN_IMAGE=${{ matrix.debian-image }} | |
| DEBIAN_VERSION=${{ matrix.debian-version }} |