Files
podman-in-docker/.github/workflows/build.yml

108 lines
3.9 KiB
YAML

name: Build podman-dind-like
on:
push:
branches:
- 'release/**'
- 'feature/**'
- develop
tags:
- '*'
pull_request:
branches:
- main
- 'release/**'
- develop
env:
GITHUB_DOCKER_USER: ${{ github.actor }}
NEXUS_DOCKER_USER: ${{ secrets.HOME_NEXUS_DOCKER_USER }}
NEXUS_PROXY_REGISTRY: nexus.jamesjonesconsulting.com:5444
jobs:
build-and-push:
runs-on: jamesjonesconsulting-arch-gha-set
# runs-on: [ self-hosted, medium, build ]
timeout-minutes: 720
container:
image: nexus.jamesjonesconsulting.com:5444/podman/stable:latest
# image: quay.io/podman/stable:latest
# options: '--user root'
options: >-
--group-add keep-groups
--privileged
--user root
# --userns=keep-id
# credentials:
# username: ${{ secrets.HOME_NEXUS_DOCKER_USER }}
# password: ${{ secrets.HOME_NEXUS_DOCKER_PASSWORD }}
strategy:
fail-fast: false
max-parallel: 2
matrix:
# registry: [ 'ghcr.io', 'nexus.jamesjonesconsulting.com:5443' ]
registry: [ 'ghcr.io' ]
include:
- registry: ghcr.io
user: GITHUB_DOCKER_USER
password: GITHUB_TOKEN
registry_proxy: $NEXUS_PROXY_REGISTRY
proxy_user: NEXUS_DOCKER_USER
proxy_password: HOME_NEXUS_DOCKER_PASSWORD
# - registry: nexus.jamesjonesconsulting.com:5443
# user: NEXUS_DOCKER_USER
# password: HOME_NEXUS_DOCKER_PASSWORD
# registry_proxy: $NEXUS_PROXY_REGISTRY
# proxy_user: NEXUS_DOCKER_USER
# proxy_password: HOME_NEXUS_DOCKER_PASSWORD
steps:
# Downloads a copy of the code in your repository before running CI tests
- name: Check out repository code
uses: actions/checkout@v3
- name: Add on podman-docker for step compatibility
run: |
dnf install -y podman-docker
- name: Docker Login
uses: azure/docker-login@v1
with:
login-server: ${{ matrix.registry }}
username: ${{ env[matrix.user] }}
password: ${{ secrets[matrix.password] }}
# - name: Docker Login
# uses: azure/docker-login@v1
# with:
# login-server: ${{ matrix.registry_proxy }}
# username: ${{ env[matrix.proxy_user] }}
# password: ${{ secrets[matrix.proxy_password] }}
# This requires docker buildx which podman doesn't support
# - name: Extract metadata (tags, labels) for Docker
# id: meta
# uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
# with:
# images: ${{ matrix.registry }}/${{ env.IMAGE_NAME }}
# - name: Build and push Docker images
# uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
# with:
# context: .
# push: true
# tags: ${{ steps.meta.outputs.tags }}
# labels: ${{ steps.meta.outputs.labels }}
- name: Build the Docker image
run: |
IMAGE_NAME=$(echo "${{ github.repository }}" | tr '[:upper:]' '[:lower:]')
if [[ "$GITHUB_REF" =~ ^refs/tags.* ]]; then
VERSION=$GITHUB_REF_NAME
else
VERSION=$(echo "${GITHUB_REF_NAME}" | sed 's|/|-|g')
fi
podman build . --file Dockerfile --tag "${{ matrix.registry }}/$IMAGE_NAME:$VERSION" --build-arg ARTIFACTORY=${{ matrix.registry_proxy }}
if [[ "$GITHUB_REF" =~ ^refs/pull.* ]]; then
echo "Pull requests do not get published. Only for testing"
else
podman push "${{ matrix.registry }}/$IMAGE_NAME:$VERSION"
if [[ "$GITHUB_REF" =~ ^refs/tags.* ]]; then
podman tag "${{ matrix.registry }}/$IMAGE_NAME:$VERSION" "${{ matrix.registry }}/$IMAGE_NAME:latest"
podman push "${{ matrix.registry }}/$IMAGE_NAME:latest"
fi
fi