mirror of
https://github.com/outbackdingo/kamaji.git
synced 2026-01-27 10:19:29 +00:00
100 lines
3.2 KiB
YAML
100 lines
3.2 KiB
YAML
name: docker-ci
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- "v*"
|
|
|
|
jobs:
|
|
docker-ci:
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Generate build-args
|
|
id: build-args
|
|
run: |
|
|
# Declare vars for internal use
|
|
VERSION=$(make get_version)
|
|
GIT_HEAD_COMMIT=$(git rev-parse --short HEAD)
|
|
GIT_TAG_COMMIT=$(git rev-parse --short $VERSION)
|
|
GIT_MODIFIED_1=$(git diff $GIT_HEAD_COMMIT $GIT_TAG_COMMIT --quiet && echo "" || echo ".dev")
|
|
GIT_MODIFIED_2=$(git diff --quiet && echo "" || echo ".dirty")
|
|
# Export to GH_ENV
|
|
echo "GIT_LAST_TAG=$VERSION" >> $GITHUB_ENV
|
|
echo "GIT_HEAD_COMMIT=$GIT_HEAD_COMMIT" >> $GITHUB_ENV
|
|
echo "GIT_TAG_COMMIT=$GIT_TAG_COMMIT" >> $GITHUB_ENV
|
|
echo "GIT_MODIFIED=$(echo "$GIT_MODIFIED_1""$GIT_MODIFIED_2")" >> $GITHUB_ENV
|
|
echo "GIT_REPO=$(git config --get remote.origin.url)" >> $GITHUB_ENV
|
|
echo "BUILD_DATE=$(git log -1 --format="%at" | xargs -I{} date -d @{} +%Y-%m-%dT%H:%M:%S)" >> $GITHUB_ENV
|
|
|
|
- name: Docker meta
|
|
id: meta
|
|
uses: docker/metadata-action@v3
|
|
with:
|
|
images: |
|
|
quay.io/${{ github.repository }}
|
|
docker.io/${{ github.repository }}
|
|
tags: |
|
|
type=semver,pattern={{raw}}
|
|
flavor: |
|
|
latest=false
|
|
|
|
- name: Set up QEMU
|
|
id: qemu
|
|
uses: docker/setup-qemu-action@v1
|
|
with:
|
|
platforms: arm64,arm
|
|
|
|
- name: Set up Docker Buildx
|
|
id: buildx
|
|
uses: docker/setup-buildx-action@v1
|
|
with:
|
|
install: true
|
|
|
|
- name: Inspect builder
|
|
run: |
|
|
echo "Name: ${{ steps.buildx.outputs.name }}"
|
|
echo "Endpoint: ${{ steps.buildx.outputs.endpoint }}"
|
|
echo "Status: ${{ steps.buildx.outputs.status }}"
|
|
echo "Flags: ${{ steps.buildx.outputs.flags }}"
|
|
echo "Platforms: ${{ steps.buildx.outputs.platforms }}"
|
|
|
|
- name: Login to quay.io Container Registry
|
|
uses: docker/login-action@v1
|
|
with:
|
|
registry: quay.io
|
|
username: ${{ secrets.QUAY_IO_USERNAME }}
|
|
password: ${{ secrets.QUAY_IO_TOKEN }}
|
|
|
|
- name: Login to docker.io Container Registry
|
|
uses: docker/login-action@v1
|
|
with:
|
|
registry: docker.io
|
|
username: ${{ secrets.DOCKER_IO_USERNAME }}
|
|
password: ${{ secrets.DOCKER_IO_TOKEN }}
|
|
|
|
- name: Build and push
|
|
id: build-release
|
|
uses: docker/build-push-action@v2
|
|
with:
|
|
file: Dockerfile
|
|
context: .
|
|
platforms: linux/amd64,linux/arm64,linux/arm
|
|
push: true
|
|
tags: ${{ steps.meta.outputs.tags }}
|
|
build-args: |
|
|
GIT_LAST_TAG=${{ env.GIT_LAST_TAG }}
|
|
GIT_HEAD_COMMIT=${{ env.GIT_HEAD_COMMIT }}
|
|
GIT_TAG_COMMIT=${{ env.GIT_TAG_COMMIT }}
|
|
GIT_MODIFIED=${{ env.GIT_MODIFIED }}
|
|
GIT_REPO=${{ env.GIT_REPO }}
|
|
BUILD_DATE=${{ env.BUILD_DATE }}
|
|
|
|
- name: Image digest
|
|
run: echo ${{ steps.build-release.outputs.digest }}
|