Skip to content

chore: configure gdb settings #90

chore: configure gdb settings

chore: configure gdb settings #90

Workflow file for this run

name: Docker Image CI
on:
push:
branches: [main, Pr1]
workflow_dispatch:
permissions:
packages: write
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
# ===============================================================
# Building Dev Image
# ===============================================================
build_dev:
strategy:
max-parallel: 6
matrix:
distro:
- name: "alpine-dev"
tag: latest
file: alpine-dev.Dockerfile
- name: "ubuntu-dev"
tag: 20
file: u20.04-dev.Dockerfile
- name: "ubuntu-dev"
tag: 22
file: u22.04-dev.Dockerfile
- name: "fedora"
tag: 30
file: fedora30-dev.Dockerfile
- name: "ubuntu-dev"
tag: 24
file: u24.04-dev.Dockerfile
- name: "fedora"
tag: 41
file: fedora41-dev.Dockerfile
# - container: "benchmark-dev:latest"
# file: benchmark-dev.Dockerfile
image:
- name: ubuntu-24.04
arch: amd64
- name: ubuntu-24.04-arm
arch: arm64
runs-on: ${{ matrix.image.name }}
env:
image_base: ghcr.io/${{ github.repository_owner }}/${{ matrix.distro.name }}
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
- name: GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Collect Docker metadata
id: metadata
uses: docker/metadata-action@v5
with:
images: ${{ env.image_base }}
- name: Build
uses: docker/build-push-action@v6
id: build
with:
context: .
provenance: false
platforms: linux/${{ matrix.image.arch }}
file: ${{ matrix.distro.file }}
labels: ${{ steps.metadata.outputs.labels }}
outputs: type=image,name=${{ env.image_base }},push-by-digest=true,name-canonical=true,push=true
- name: Inspect Docker image
run: |
docker buildx imagetools inspect ${{ env.image_base }}:sha256@${{ steps.build.outputs.digest }}
- name: Test Docker image
run: docker run --rm "${{ env.image_base }}:sha256@${{ steps.build.outputs.digest }}" echo succeeded
- name: Export digest
run: |
mkdir -p /tmp/digests
digest="${{ steps.build.outputs.digest }}"
touch "/tmp/digests/${digest#sha256:}"
- name: Upload digest
uses: actions/upload-artifact@v4
with:
name: digests-${{ matrix.distro.name }}-${{ matrix.distro.tag }}-${{ matrix.image.arch }}
path: /tmp/digests/*
if-no-files-found: error
retention-days: 1
merge_manifest:
needs: [build_dev]
runs-on: ubuntu-latest
strategy:
matrix:
image:
- name: alpine-dev
tag: latest
- name: ubuntu-dev
tag: 20
- name: ubuntu-dev
tag: 22
- name: ubuntu-dev
tag: 24
- name: fedora
tag: 30
- name: fedora
tag: 41
env:
image_base: ghcr.io/${{ github.repository_owner }}/${{ matrix.image.name }}
image: ghcr.io/${{ github.repository_owner }}/${{ matrix.image.name }}:${{matrix.image.tag}}
steps:
- uses: docker/setup-buildx-action@v3
- name: Download digests
uses: actions/download-artifact@v4
with:
path: /tmp/digests
pattern: digests-${{ matrix.image.name }}-${{ matrix.image.tag }}-*
merge-multiple: true
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Collect Docker metadata
id: metadata
uses: docker/metadata-action@v5
with:
images: ${{ env.image_base }}
- name: Create and push merged image
working-directory: /tmp/digests
run: |
tags=$(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON")
images=$(printf '${{ env.image_base }}@sha256:%s ' *)
echo "images: $images"
docker buildx imagetools create -t ${{ env.image }} ${images}
- name: Inspect Docker image
run: |
docker buildx imagetools inspect ${{ env.image }}