build #508
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
### Application Level Image CI | |
### Dave Conroy <dave at tiredofit dot ca> | |
name: 'build' | |
on: | |
schedule: | |
- cron: 1 9 * * 6 | |
push: | |
paths: | |
- '**' | |
- '!README.md' | |
jobs: | |
php83_alpine: | |
env: | |
DISTRO: "alpine" | |
DISTRO_VARIANT: "3.19" | |
PHP_BASE: 8.3 | |
build_file: Dockerfile | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ "${GITHUB_REF}" == refs/heads/* ]]; then | |
if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then | |
git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" | |
else | |
git_branch=${GITHUB_REF#refs/heads/} | |
fi | |
case "${git_branch}" in | |
"main" | "master" ) | |
if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest=",${GITHUB_REPOSITORY}:latest" | |
fi | |
if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" | |
fi | |
branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}${image_latest}" | |
;; | |
"develop" ) | |
branch_tag="${GITHUB_REPOSITORY}:develop" | |
;; | |
esac | |
fi | |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" | |
fi | |
if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then | |
image_tags=${branch_tag},${git_tag} | |
else | |
image_tags="${branch_tag}${git_tag}" | |
fi | |
echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV | |
dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") | |
ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") | |
echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT | |
- name: Label | |
id: Label | |
run: | | |
image_name=${GITHUB_REPOSITORY/docker-/} | |
if [ -f "${{ env.build_file }}" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} | |
if [ -f "CHANGELOG.md" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} | |
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md | |
fi | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} | |
fi | |
if [[ $GITHUB_REF == refs/heads/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} | |
fi | |
fi | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm,arm64 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./${{ env.build_file }} | |
platforms: linux/amd64,linux/arm64,linux/arm/v7 | |
push: true | |
tags: ${{ steps.prep.outputs.container_images }} | |
build-args: | | |
DISTRO=${{ env.DISTRO }} | |
DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} | |
PHP_BASE=${{ env.PHP_BASE }} | |
- name: Update Docker Hub Information | |
if: github.event_name != 'pull_request' | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
repository: ${{ env.dockerhub_repo }} | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: ./README.md | |
### | |
php82_alpine: | |
env: | |
DISTRO: "alpine" | |
DISTRO_VARIANT: "3.19" | |
PHP_BASE: 8.2 | |
build_file: Dockerfile | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ "${GITHUB_REF}" == refs/heads/* ]]; then | |
if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then | |
git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" | |
else | |
git_branch=${GITHUB_REF#refs/heads/} | |
fi | |
case "${git_branch}" in | |
"main" | "master" ) | |
if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest=",${GITHUB_REPOSITORY}:latest" | |
fi | |
if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" | |
fi | |
branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}${image_latest}" | |
;; | |
"develop" ) | |
branch_tag="${GITHUB_REPOSITORY}:develop" | |
;; | |
esac | |
fi | |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" | |
fi | |
if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then | |
image_tags=${branch_tag},${git_tag} | |
else | |
image_tags="${branch_tag}${git_tag}" | |
fi | |
echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV | |
dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") | |
ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") | |
echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT | |
- name: Label | |
id: Label | |
run: | | |
image_name=${GITHUB_REPOSITORY/docker-/} | |
if [ -f "${{ env.build_file }}" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} | |
if [ -f "CHANGELOG.md" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} | |
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md | |
fi | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} | |
fi | |
if [[ $GITHUB_REF == refs/heads/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} | |
fi | |
fi | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm,arm64 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./${{ env.build_file }} | |
platforms: linux/amd64,linux/arm64,linux/arm/v7 | |
push: true | |
tags: ${{ steps.prep.outputs.container_images }} | |
build-args: | | |
DISTRO=${{ env.DISTRO }} | |
DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} | |
PHP_BASE=${{ env.PHP_BASE }} | |
- name: Update Docker Hub Information | |
if: github.event_name != 'pull_request' | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
repository: ${{ env.dockerhub_repo }} | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: ./README.md | |
### | |
php81_alpine: | |
env: | |
DISTRO: "alpine" | |
DISTRO_VARIANT: "3.19" | |
PHP_BASE: 8.1 | |
build_file: Dockerfile | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ "${GITHUB_REF}" == refs/heads/* ]]; then | |
if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then | |
git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" | |
else | |
git_branch=${GITHUB_REF#refs/heads/} | |
fi | |
case "${git_branch}" in | |
"main" | "master" ) | |
if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest=",${GITHUB_REPOSITORY}:latest" | |
fi | |
if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" | |
fi | |
branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}${image_latest}" | |
;; | |
"develop" ) | |
branch_tag="${GITHUB_REPOSITORY}:develop" | |
;; | |
esac | |
fi | |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" | |
fi | |
if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then | |
image_tags=${branch_tag},${git_tag} | |
else | |
image_tags="${branch_tag}${git_tag}" | |
fi | |
echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV | |
dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") | |
ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") | |
echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT | |
- name: Label | |
id: Label | |
run: | | |
image_name=${GITHUB_REPOSITORY/docker-/} | |
if [ -f "${{ env.build_file }}" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} | |
if [ -f "CHANGELOG.md" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} | |
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md | |
fi | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} | |
fi | |
if [[ $GITHUB_REF == refs/heads/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} | |
fi | |
fi | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm,arm64 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./${{ env.build_file }} | |
platforms: linux/amd64,linux/arm64,linux/arm/v7 | |
push: true | |
tags: ${{ steps.prep.outputs.container_images }} | |
build-args: | | |
DISTRO=${{ env.DISTRO }} | |
DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} | |
PHP_BASE=${{ env.PHP_BASE }} | |
- name: Update Docker Hub Information | |
if: github.event_name != 'pull_request' | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
repository: ${{ env.dockerhub_repo }} | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: ./README.md | |
### | |
php80_alpine: | |
env: | |
DISTRO: "alpine" | |
DISTRO_VARIANT: "3.16" | |
PHP_BASE: 8.0 | |
build_file: Dockerfile | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ "${GITHUB_REF}" == refs/heads/* ]]; then | |
if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then | |
git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" | |
else | |
git_branch=${GITHUB_REF#refs/heads/} | |
fi | |
case "${git_branch}" in | |
"main" | "master" ) | |
if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest=",${GITHUB_REPOSITORY}:latest" | |
fi | |
if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" | |
fi | |
branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}${image_latest}" | |
;; | |
"develop" ) | |
branch_tag="${GITHUB_REPOSITORY}:develop" | |
;; | |
esac | |
fi | |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" | |
fi | |
if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then | |
image_tags=${branch_tag},${git_tag} | |
else | |
image_tags="${branch_tag}${git_tag}" | |
fi | |
echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV | |
dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") | |
ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") | |
echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT | |
- name: Label | |
id: Label | |
run: | | |
image_name=${GITHUB_REPOSITORY/docker-/} | |
if [ -f "${{ env.build_file }}" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} | |
if [ -f "CHANGELOG.md" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} | |
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md | |
fi | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} | |
fi | |
if [[ $GITHUB_REF == refs/heads/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} | |
fi | |
fi | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm,arm64 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./${{ env.build_file }} | |
platforms: linux/amd64,linux/arm64,linux/arm/v7 | |
push: true | |
tags: ${{ steps.prep.outputs.container_images }} | |
build-args: | | |
DISTRO=${{ env.DISTRO }} | |
DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} | |
PHP_BASE=${{ env.PHP_BASE }} | |
- name: Update Docker Hub Information | |
if: github.event_name != 'pull_request' | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
repository: ${{ env.dockerhub_repo }} | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: ./README.md | |
### | |
php74_alpine: | |
env: | |
DISTRO: "alpine" | |
DISTRO_VARIANT: "3.15" | |
PHP_BASE: 7.4 | |
build_file: Dockerfile | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ "${GITHUB_REF}" == refs/heads/* ]]; then | |
if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then | |
git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" | |
else | |
git_branch=${GITHUB_REF#refs/heads/} | |
fi | |
case "${git_branch}" in | |
"main" | "master" ) | |
if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest=",${GITHUB_REPOSITORY}:latest" | |
fi | |
if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" | |
fi | |
branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}${image_latest}" | |
;; | |
"develop" ) | |
branch_tag="${GITHUB_REPOSITORY}:develop" | |
;; | |
esac | |
fi | |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" | |
fi | |
if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then | |
image_tags=${branch_tag},${git_tag} | |
else | |
image_tags="${branch_tag}${git_tag}" | |
fi | |
echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV | |
dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") | |
ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") | |
echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT | |
- name: Label | |
id: Label | |
run: | | |
image_name=${GITHUB_REPOSITORY/docker-/} | |
if [ -f "${{ env.build_file }}" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} | |
if [ -f "CHANGELOG.md" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} | |
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md | |
fi | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} | |
fi | |
if [[ $GITHUB_REF == refs/heads/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} | |
fi | |
fi | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm,arm64 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./${{ env.build_file }} | |
platforms: linux/amd64,linux/arm64,linux/arm/v7 | |
push: true | |
tags: ${{ steps.prep.outputs.container_images }} | |
build-args: | | |
DISTRO=${{ env.DISTRO }} | |
DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} | |
PHP_BASE=${{ env.PHP_BASE }} | |
- name: Update Docker Hub Information | |
if: github.event_name != 'pull_request' | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
repository: ${{ env.dockerhub_repo }} | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: ./README.md | |
### | |
php73_alpine: | |
env: | |
DISTRO: "alpine" | |
DISTRO_VARIANT: "3.12" | |
PHP_BASE: 7.3 | |
build_file: Dockerfile | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ "${GITHUB_REF}" == refs/heads/* ]]; then | |
if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then | |
git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" | |
else | |
git_branch=${GITHUB_REF#refs/heads/} | |
fi | |
case "${git_branch}" in | |
"main" | "master" ) | |
if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest=",${GITHUB_REPOSITORY}:latest" | |
fi | |
if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" | |
fi | |
branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}${image_latest}" | |
;; | |
"develop" ) | |
branch_tag="${GITHUB_REPOSITORY}:develop" | |
;; | |
esac | |
fi | |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" | |
fi | |
if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then | |
image_tags=${branch_tag},${git_tag} | |
else | |
image_tags="${branch_tag}${git_tag}" | |
fi | |
echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV | |
dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") | |
ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") | |
echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT | |
- name: Label | |
id: Label | |
run: | | |
image_name=${GITHUB_REPOSITORY/docker-/} | |
if [ -f "${{ env.build_file }}" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} | |
if [ -f "CHANGELOG.md" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} | |
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md | |
fi | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} | |
fi | |
if [[ $GITHUB_REF == refs/heads/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} | |
fi | |
fi | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm,arm64 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./${{ env.build_file }} | |
platforms: linux/amd64,linux/arm64,linux/arm/v7 | |
push: true | |
tags: ${{ steps.prep.outputs.container_images }} | |
build-args: | | |
DISTRO=${{ env.DISTRO }} | |
DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} | |
PHP_BASE=${{ env.PHP_BASE }} | |
- name: Update Docker Hub Information | |
if: github.event_name != 'pull_request' | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
repository: ${{ env.dockerhub_repo }} | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: ./README.md | |
### | |
php72_alpine: | |
env: | |
DISTRO: "alpine" | |
DISTRO_VARIANT: "3.9" | |
PHP_BASE: 7.2 | |
build_file: Dockerfile | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ "${GITHUB_REF}" == refs/heads/* ]]; then | |
if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then | |
git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" | |
else | |
git_branch=${GITHUB_REF#refs/heads/} | |
fi | |
case "${git_branch}" in | |
"main" | "master" ) | |
if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest=",${GITHUB_REPOSITORY}:latest" | |
fi | |
if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" | |
fi | |
branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}${image_latest}" | |
;; | |
"develop" ) | |
branch_tag="${GITHUB_REPOSITORY}:develop" | |
;; | |
esac | |
fi | |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" | |
fi | |
if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then | |
image_tags=${branch_tag},${git_tag} | |
else | |
image_tags="${branch_tag}${git_tag}" | |
fi | |
echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV | |
dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") | |
ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") | |
echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT | |
- name: Label | |
id: Label | |
run: | | |
image_name=${GITHUB_REPOSITORY/docker-/} | |
if [ -f "${{ env.build_file }}" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} | |
if [ -f "CHANGELOG.md" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} | |
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md | |
fi | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} | |
fi | |
if [[ $GITHUB_REF == refs/heads/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} | |
fi | |
fi | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm,arm64 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./${{ env.build_file }} | |
platforms: linux/amd64 | |
push: true | |
tags: ${{ steps.prep.outputs.container_images }} | |
build-args: | | |
DISTRO=${{ env.DISTRO }} | |
DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} | |
PHP_BASE=${{ env.PHP_BASE }} | |
- name: Update Docker Hub Information | |
if: github.event_name != 'pull_request' | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
repository: ${{ env.dockerhub_repo }} | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: ./README.md | |
### | |
php71_alpine: | |
env: | |
DISTRO: "alpine" | |
DISTRO_VARIANT: "3.7" | |
PHP_BASE: 7.1 | |
build_file: Dockerfile | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ "${GITHUB_REF}" == refs/heads/* ]]; then | |
if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then | |
git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" | |
else | |
git_branch=${GITHUB_REF#refs/heads/} | |
fi | |
case "${git_branch}" in | |
"main" | "master" ) | |
if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest=",${GITHUB_REPOSITORY}:latest" | |
fi | |
if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" | |
fi | |
branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}${image_latest}" | |
;; | |
"develop" ) | |
branch_tag="${GITHUB_REPOSITORY}:develop" | |
;; | |
esac | |
fi | |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" | |
fi | |
if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then | |
image_tags=${branch_tag},${git_tag} | |
else | |
image_tags="${branch_tag}${git_tag}" | |
fi | |
echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV | |
dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") | |
ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") | |
echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT | |
- name: Label | |
id: Label | |
run: | | |
image_name=${GITHUB_REPOSITORY/docker-/} | |
if [ -f "${{ env.build_file }}" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} | |
if [ -f "CHANGELOG.md" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} | |
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md | |
fi | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} | |
fi | |
if [[ $GITHUB_REF == refs/heads/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} | |
fi | |
fi | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm,arm64 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./${{ env.build_file }} | |
platforms: linux/amd64 | |
push: true | |
tags: ${{ steps.prep.outputs.container_images }} | |
build-args: | | |
DISTRO=${{ env.DISTRO }} | |
DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} | |
PHP_BASE=${{ env.PHP_BASE }} | |
- name: Update Docker Hub Information | |
if: github.event_name != 'pull_request' | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
repository: ${{ env.dockerhub_repo }} | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: ./README.md | |
### | |
php70_alpine: | |
env: | |
DISTRO: "alpine" | |
DISTRO_VARIANT: "3.5" | |
PHP_BASE: 7.0 | |
build_file: Dockerfile | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ "${GITHUB_REF}" == refs/heads/* ]]; then | |
if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then | |
git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" | |
else | |
git_branch=${GITHUB_REF#refs/heads/} | |
fi | |
case "${git_branch}" in | |
"main" | "master" ) | |
if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest=",${GITHUB_REPOSITORY}:latest" | |
fi | |
if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" | |
fi | |
branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}${image_latest}" | |
;; | |
"develop" ) | |
branch_tag="${GITHUB_REPOSITORY}:develop" | |
;; | |
esac | |
fi | |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" | |
fi | |
if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then | |
image_tags=${branch_tag},${git_tag} | |
else | |
image_tags="${branch_tag}${git_tag}" | |
fi | |
echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV | |
dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") | |
ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") | |
echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT | |
- name: Label | |
id: Label | |
run: | | |
image_name=${GITHUB_REPOSITORY/docker-/} | |
if [ -f "${{ env.build_file }}" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} | |
if [ -f "CHANGELOG.md" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} | |
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md | |
fi | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} | |
fi | |
if [[ $GITHUB_REF == refs/heads/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} | |
fi | |
fi | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm,arm64 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./${{ env.build_file }} | |
platforms: linux/amd64 | |
push: true | |
tags: ${{ steps.prep.outputs.container_images }} | |
build-args: | | |
DISTRO=${{ env.DISTRO }} | |
DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} | |
PHP_BASE=${{ env.PHP_BASE }} | |
- name: Update Docker Hub Information | |
if: github.event_name != 'pull_request' | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
repository: ${{ env.dockerhub_repo }} | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: ./README.md | |
### | |
php56_alpine: | |
env: | |
DISTRO: "alpine" | |
DISTRO_VARIANT: "3.5" | |
PHP_BASE: 5.6 | |
build_file: Dockerfile | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ "${GITHUB_REF}" == refs/heads/* ]]; then | |
if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then | |
git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" | |
else | |
git_branch=${GITHUB_REF#refs/heads/} | |
fi | |
case "${git_branch}" in | |
"main" | "master" ) | |
if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest=",${GITHUB_REPOSITORY}:latest" | |
fi | |
if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" | |
fi | |
branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}${image_latest}" | |
;; | |
"develop" ) | |
branch_tag="${GITHUB_REPOSITORY}:develop" | |
;; | |
esac | |
fi | |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" | |
fi | |
if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then | |
image_tags=${branch_tag},${git_tag} | |
else | |
image_tags="${branch_tag}${git_tag}" | |
fi | |
echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV | |
dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") | |
ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") | |
echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT | |
- name: Label | |
id: Label | |
run: | | |
image_name=${GITHUB_REPOSITORY/docker-/} | |
if [ -f "${{ env.build_file }}" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} | |
if [ -f "CHANGELOG.md" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} | |
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md | |
fi | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} | |
fi | |
if [[ $GITHUB_REF == refs/heads/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} | |
fi | |
fi | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm,arm64 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./${{ env.build_file }} | |
platforms: linux/amd64 | |
push: true | |
tags: ${{ steps.prep.outputs.container_images }} | |
build-args: | | |
DISTRO=${{ env.DISTRO }} | |
DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} | |
PHP_BASE=${{ env.PHP_BASE }} | |
- name: Update Docker Hub Information | |
if: github.event_name != 'pull_request' | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
repository: ${{ env.dockerhub_repo }} | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: ./README.md | |
### | |
php83_debian_bookworm: | |
env: | |
DISTRO: "debian" | |
DISTRO_VARIANT: "bookworm" | |
PHP_BASE: 8.3 | |
build_file: Dockerfile.debian | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ "${GITHUB_REF}" == refs/heads/* ]]; then | |
if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then | |
git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" | |
else | |
git_branch=${GITHUB_REF#refs/heads/} | |
fi | |
case "${git_branch}" in | |
"main" | "master" ) | |
if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest=",${GITHUB_REPOSITORY}:latest" | |
fi | |
if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" | |
fi | |
branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}${image_latest}" | |
;; | |
"develop" ) | |
branch_tag="${GITHUB_REPOSITORY}:develop" | |
;; | |
esac | |
fi | |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" | |
fi | |
if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then | |
image_tags=${branch_tag},${git_tag} | |
else | |
image_tags="${branch_tag}${git_tag}" | |
fi | |
echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV | |
dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") | |
ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") | |
echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT | |
- name: Label | |
id: Label | |
run: | | |
image_name=${GITHUB_REPOSITORY/docker-/} | |
if [ -f "${{ env.build_file }}" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} | |
if [ -f "CHANGELOG.md" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} | |
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md | |
fi | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} | |
fi | |
if [[ $GITHUB_REF == refs/heads/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} | |
fi | |
fi | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm,arm64 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./${{ env.build_file }} | |
platforms: linux/amd64,linux/arm64,linux/arm/v7 | |
push: true | |
tags: ${{ steps.prep.outputs.container_images }} | |
build-args: | | |
DISTRO=${{ env.DISTRO }} | |
DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} | |
PHP_BASE=${{ env.PHP_BASE }} | |
- name: Update Docker Hub Information | |
if: github.event_name != 'pull_request' | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
repository: ${{ env.dockerhub_repo }} | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: ./README.md | |
### | |
php82_debian_bookworm: | |
env: | |
DISTRO: "debian" | |
DISTRO_VARIANT: "bookworm" | |
PHP_BASE: 8.2 | |
build_file: Dockerfile.debian | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ "${GITHUB_REF}" == refs/heads/* ]]; then | |
if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then | |
git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" | |
else | |
git_branch=${GITHUB_REF#refs/heads/} | |
fi | |
case "${git_branch}" in | |
"main" | "master" ) | |
if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest=",${GITHUB_REPOSITORY}:latest" | |
fi | |
if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" | |
fi | |
branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}${image_latest}" | |
;; | |
"develop" ) | |
branch_tag="${GITHUB_REPOSITORY}:develop" | |
;; | |
esac | |
fi | |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" | |
fi | |
if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then | |
image_tags=${branch_tag},${git_tag} | |
else | |
image_tags="${branch_tag}${git_tag}" | |
fi | |
echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV | |
dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") | |
ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") | |
echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT | |
- name: Label | |
id: Label | |
run: | | |
image_name=${GITHUB_REPOSITORY/docker-/} | |
if [ -f "${{ env.build_file }}" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} | |
if [ -f "CHANGELOG.md" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} | |
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md | |
fi | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} | |
fi | |
if [[ $GITHUB_REF == refs/heads/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} | |
fi | |
fi | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm,arm64 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./${{ env.build_file }} | |
platforms: linux/amd64,linux/arm64,linux/arm/v7 | |
push: true | |
tags: ${{ steps.prep.outputs.container_images }} | |
build-args: | | |
DISTRO=${{ env.DISTRO }} | |
DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} | |
PHP_BASE=${{ env.PHP_BASE }} | |
- name: Update Docker Hub Information | |
if: github.event_name != 'pull_request' | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
repository: ${{ env.dockerhub_repo }} | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: ./README.md | |
php82_debian_bullseye: | |
env: | |
DISTRO: "debian" | |
DISTRO_VARIANT: "bullseye" | |
PHP_BASE: 8.2 | |
build_file: Dockerfile.debian | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ "${GITHUB_REF}" == refs/heads/* ]]; then | |
if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then | |
git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" | |
else | |
git_branch=${GITHUB_REF#refs/heads/} | |
fi | |
case "${git_branch}" in | |
"main" | "master" ) | |
if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest=",${GITHUB_REPOSITORY}:latest" | |
fi | |
if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" | |
fi | |
branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}${image_latest}" | |
;; | |
"develop" ) | |
branch_tag="${GITHUB_REPOSITORY}:develop" | |
;; | |
esac | |
fi | |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" | |
fi | |
if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then | |
image_tags=${branch_tag},${git_tag} | |
else | |
image_tags="${branch_tag}${git_tag}" | |
fi | |
echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV | |
dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") | |
ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") | |
echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT | |
- name: Label | |
id: Label | |
run: | | |
image_name=${GITHUB_REPOSITORY/docker-/} | |
if [ -f "${{ env.build_file }}" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} | |
if [ -f "CHANGELOG.md" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} | |
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md | |
fi | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} | |
fi | |
if [[ $GITHUB_REF == refs/heads/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} | |
fi | |
fi | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm,arm64 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./${{ env.build_file }} | |
platforms: linux/amd64,linux/arm64,linux/arm/v7 | |
push: true | |
tags: ${{ steps.prep.outputs.container_images }} | |
build-args: | | |
DISTRO=${{ env.DISTRO }} | |
DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} | |
PHP_BASE=${{ env.PHP_BASE }} | |
- name: Update Docker Hub Information | |
if: github.event_name != 'pull_request' | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
repository: ${{ env.dockerhub_repo }} | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: ./README.md | |
### | |
php82_debian_buster: | |
env: | |
DISTRO: "debian" | |
DISTRO_VARIANT: "buster" | |
PHP_BASE: 8.2 | |
build_file: Dockerfile.debian | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ "${GITHUB_REF}" == refs/heads/* ]]; then | |
if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then | |
git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" | |
else | |
git_branch=${GITHUB_REF#refs/heads/} | |
fi | |
case "${git_branch}" in | |
"main" | "master" ) | |
if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest=",${GITHUB_REPOSITORY}:latest" | |
fi | |
if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" | |
fi | |
branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}${image_latest}" | |
;; | |
"develop" ) | |
branch_tag="${GITHUB_REPOSITORY}:develop" | |
;; | |
esac | |
fi | |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" | |
fi | |
if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then | |
image_tags=${branch_tag},${git_tag} | |
else | |
image_tags="${branch_tag}${git_tag}" | |
fi | |
echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV | |
dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") | |
ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") | |
echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT | |
- name: Label | |
id: Label | |
run: | | |
image_name=${GITHUB_REPOSITORY/docker-/} | |
if [ -f "${{ env.build_file }}" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} | |
if [ -f "CHANGELOG.md" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} | |
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md | |
fi | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} | |
fi | |
if [[ $GITHUB_REF == refs/heads/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} | |
fi | |
fi | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm,arm64 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./${{ env.build_file }} | |
platforms: linux/amd64,linux/arm64,linux/arm/v7 | |
push: true | |
tags: ${{ steps.prep.outputs.container_images }} | |
build-args: | | |
DISTRO=${{ env.DISTRO }} | |
DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} | |
PHP_BASE=${{ env.PHP_BASE }} | |
- name: Update Docker Hub Information | |
if: github.event_name != 'pull_request' | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
repository: ${{ env.dockerhub_repo }} | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: ./README.md | |
### | |
php81_debian_bookworm: | |
env: | |
DISTRO: "debian" | |
DISTRO_VARIANT: "bookworm" | |
PHP_BASE: 8.1 | |
build_file: Dockerfile.debian | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ "${GITHUB_REF}" == refs/heads/* ]]; then | |
if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then | |
git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" | |
else | |
git_branch=${GITHUB_REF#refs/heads/} | |
fi | |
case "${git_branch}" in | |
"main" | "master" ) | |
if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest=",${GITHUB_REPOSITORY}:latest" | |
fi | |
if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" | |
fi | |
branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}${image_latest}" | |
;; | |
"develop" ) | |
branch_tag="${GITHUB_REPOSITORY}:develop" | |
;; | |
esac | |
fi | |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" | |
fi | |
if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then | |
image_tags=${branch_tag},${git_tag} | |
else | |
image_tags="${branch_tag}${git_tag}" | |
fi | |
echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV | |
dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") | |
ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") | |
echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT | |
- name: Label | |
id: Label | |
run: | | |
image_name=${GITHUB_REPOSITORY/docker-/} | |
if [ -f "${{ env.build_file }}" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} | |
if [ -f "CHANGELOG.md" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} | |
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md | |
fi | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} | |
fi | |
if [[ $GITHUB_REF == refs/heads/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} | |
fi | |
fi | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm,arm64 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./${{ env.build_file }} | |
platforms: linux/amd64,linux/arm64,linux/arm/v7 | |
push: true | |
tags: ${{ steps.prep.outputs.container_images }} | |
build-args: | | |
DISTRO=${{ env.DISTRO }} | |
DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} | |
PHP_BASE=${{ env.PHP_BASE }} | |
- name: Update Docker Hub Information | |
if: github.event_name != 'pull_request' | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
repository: ${{ env.dockerhub_repo }} | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: ./README.md | |
### | |
php81_debian_bullseye: | |
env: | |
DISTRO: "debian" | |
DISTRO_VARIANT: "bullseye" | |
PHP_BASE: 8.1 | |
build_file: Dockerfile.debian | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ "${GITHUB_REF}" == refs/heads/* ]]; then | |
if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then | |
git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" | |
else | |
git_branch=${GITHUB_REF#refs/heads/} | |
fi | |
case "${git_branch}" in | |
"main" | "master" ) | |
if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest=",${GITHUB_REPOSITORY}:latest" | |
fi | |
if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" | |
fi | |
branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}${image_latest}" | |
;; | |
"develop" ) | |
branch_tag="${GITHUB_REPOSITORY}:develop" | |
;; | |
esac | |
fi | |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" | |
fi | |
if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then | |
image_tags=${branch_tag},${git_tag} | |
else | |
image_tags="${branch_tag}${git_tag}" | |
fi | |
echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV | |
dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") | |
ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") | |
echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT | |
- name: Label | |
id: Label | |
run: | | |
image_name=${GITHUB_REPOSITORY/docker-/} | |
if [ -f "${{ env.build_file }}" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} | |
if [ -f "CHANGELOG.md" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} | |
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md | |
fi | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} | |
fi | |
if [[ $GITHUB_REF == refs/heads/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} | |
fi | |
fi | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm,arm64 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./${{ env.build_file }} | |
platforms: linux/amd64,linux/arm64,linux/arm/v7 | |
push: true | |
tags: ${{ steps.prep.outputs.container_images }} | |
build-args: | | |
DISTRO=${{ env.DISTRO }} | |
DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} | |
PHP_BASE=${{ env.PHP_BASE }} | |
- name: Update Docker Hub Information | |
if: github.event_name != 'pull_request' | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
repository: ${{ env.dockerhub_repo }} | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: ./README.md | |
### | |
php81_debian_buster: | |
env: | |
DISTRO: "debian" | |
DISTRO_VARIANT: "buster" | |
PHP_BASE: 8.1 | |
build_file: Dockerfile.debian | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ "${GITHUB_REF}" == refs/heads/* ]]; then | |
if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then | |
git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" | |
else | |
git_branch=${GITHUB_REF#refs/heads/} | |
fi | |
case "${git_branch}" in | |
"main" | "master" ) | |
if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest=",${GITHUB_REPOSITORY}:latest" | |
fi | |
if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" | |
fi | |
branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}${image_latest}" | |
;; | |
"develop" ) | |
branch_tag="${GITHUB_REPOSITORY}:develop" | |
;; | |
esac | |
fi | |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" | |
fi | |
if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then | |
image_tags=${branch_tag},${git_tag} | |
else | |
image_tags="${branch_tag}${git_tag}" | |
fi | |
echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV | |
dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") | |
ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") | |
echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT | |
- name: Label | |
id: Label | |
run: | | |
image_name=${GITHUB_REPOSITORY/docker-/} | |
if [ -f "${{ env.build_file }}" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} | |
if [ -f "CHANGELOG.md" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} | |
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md | |
fi | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} | |
fi | |
if [[ $GITHUB_REF == refs/heads/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} | |
fi | |
fi | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm,arm64 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./${{ env.build_file }} | |
platforms: linux/amd64,linux/arm64,linux/arm/v7 | |
push: true | |
tags: ${{ steps.prep.outputs.container_images }} | |
build-args: | | |
DISTRO=${{ env.DISTRO }} | |
DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} | |
PHP_BASE=${{ env.PHP_BASE }} | |
- name: Update Docker Hub Information | |
if: github.event_name != 'pull_request' | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
repository: ${{ env.dockerhub_repo }} | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: ./README.md | |
### | |
php80_debian_bookworm: | |
env: | |
DISTRO: "debian" | |
DISTRO_VARIANT: "bookworm" | |
PHP_BASE: "8.0" | |
build_file: Dockerfile.debian | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ "${GITHUB_REF}" == refs/heads/* ]]; then | |
if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then | |
git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" | |
else | |
git_branch=${GITHUB_REF#refs/heads/} | |
fi | |
case "${git_branch}" in | |
"main" | "master" ) | |
if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest=",${GITHUB_REPOSITORY}:latest" | |
fi | |
if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" | |
fi | |
branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}${image_latest}" | |
;; | |
"develop" ) | |
branch_tag="${GITHUB_REPOSITORY}:develop" | |
;; | |
esac | |
fi | |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" | |
fi | |
if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then | |
image_tags=${branch_tag},${git_tag} | |
else | |
image_tags="${branch_tag}${git_tag}" | |
fi | |
echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV | |
dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") | |
ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") | |
echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT | |
- name: Label | |
id: Label | |
run: | | |
image_name=${GITHUB_REPOSITORY/docker-/} | |
if [ -f "${{ env.build_file }}" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} | |
if [ -f "CHANGELOG.md" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} | |
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md | |
fi | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} | |
fi | |
if [[ $GITHUB_REF == refs/heads/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} | |
fi | |
fi | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm,arm64 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./${{ env.build_file }} | |
platforms: linux/amd64 | |
push: true | |
tags: ${{ steps.prep.outputs.container_images }} | |
build-args: | | |
DISTRO=${{ env.DISTRO }} | |
DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} | |
PHP_BASE=${{ env.PHP_BASE }} | |
- name: Update Docker Hub Information | |
if: github.event_name != 'pull_request' | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
repository: ${{ env.dockerhub_repo }} | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: ./README.md | |
### | |
php80_debian_bullseye: | |
env: | |
DISTRO: "debian" | |
DISTRO_VARIANT: "bullseye" | |
PHP_BASE: "8.0" | |
build_file: Dockerfile.debian | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ "${GITHUB_REF}" == refs/heads/* ]]; then | |
if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then | |
git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" | |
else | |
git_branch=${GITHUB_REF#refs/heads/} | |
fi | |
case "${git_branch}" in | |
"main" | "master" ) | |
if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest=",${GITHUB_REPOSITORY}:latest" | |
fi | |
if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" | |
fi | |
branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}${image_latest}" | |
;; | |
"develop" ) | |
branch_tag="${GITHUB_REPOSITORY}:develop" | |
;; | |
esac | |
fi | |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" | |
fi | |
if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then | |
image_tags=${branch_tag},${git_tag} | |
else | |
image_tags="${branch_tag}${git_tag}" | |
fi | |
echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV | |
dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") | |
ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") | |
echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT | |
- name: Label | |
id: Label | |
run: | | |
image_name=${GITHUB_REPOSITORY/docker-/} | |
if [ -f "${{ env.build_file }}" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} | |
if [ -f "CHANGELOG.md" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} | |
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md | |
fi | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} | |
fi | |
if [[ $GITHUB_REF == refs/heads/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} | |
fi | |
fi | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm,arm64 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./${{ env.build_file }} | |
platforms: linux/amd64,linux/arm64,linux/arm/v7 | |
push: true | |
tags: ${{ steps.prep.outputs.container_images }} | |
build-args: | | |
DISTRO=${{ env.DISTRO }} | |
DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} | |
PHP_BASE=${{ env.PHP_BASE }} | |
- name: Update Docker Hub Information | |
if: github.event_name != 'pull_request' | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
repository: ${{ env.dockerhub_repo }} | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: ./README.md | |
### | |
php80_debian_buster: | |
env: | |
DISTRO: "debian" | |
DISTRO_VARIANT: "buster" | |
PHP_BASE: "8.0" | |
build_file: Dockerfile.debian | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ "${GITHUB_REF}" == refs/heads/* ]]; then | |
if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then | |
git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" | |
else | |
git_branch=${GITHUB_REF#refs/heads/} | |
fi | |
case "${git_branch}" in | |
"main" | "master" ) | |
if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest=",${GITHUB_REPOSITORY}:latest" | |
fi | |
if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" | |
fi | |
branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}${image_latest}" | |
;; | |
"develop" ) | |
branch_tag="${GITHUB_REPOSITORY}:develop" | |
;; | |
esac | |
fi | |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" | |
fi | |
if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then | |
image_tags=${branch_tag},${git_tag} | |
else | |
image_tags="${branch_tag}${git_tag}" | |
fi | |
echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV | |
dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") | |
ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") | |
echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT | |
- name: Label | |
id: Label | |
run: | | |
image_name=${GITHUB_REPOSITORY/docker-/} | |
if [ -f "${{ env.build_file }}" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} | |
if [ -f "CHANGELOG.md" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} | |
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md | |
fi | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} | |
fi | |
if [[ $GITHUB_REF == refs/heads/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} | |
fi | |
fi | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm,arm64 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./${{ env.build_file }} | |
platforms: linux/amd64,linux/arm64,linux/arm/v7 | |
push: true | |
tags: ${{ steps.prep.outputs.container_images }} | |
build-args: | | |
DISTRO=${{ env.DISTRO }} | |
DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} | |
PHP_BASE=${{ env.PHP_BASE }} | |
- name: Update Docker Hub Information | |
if: github.event_name != 'pull_request' | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
repository: ${{ env.dockerhub_repo }} | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: ./README.md | |
### | |
php74_debian_bookworm: | |
env: | |
DISTRO: "debian" | |
DISTRO_VARIANT: "bookworm" | |
PHP_BASE: 7.4 | |
build_file: Dockerfile.debian | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ "${GITHUB_REF}" == refs/heads/* ]]; then | |
if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then | |
git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" | |
else | |
git_branch=${GITHUB_REF#refs/heads/} | |
fi | |
case "${git_branch}" in | |
"main" | "master" ) | |
if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest=",${GITHUB_REPOSITORY}:latest" | |
fi | |
if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" | |
fi | |
branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}${image_latest}" | |
;; | |
"develop" ) | |
branch_tag="${GITHUB_REPOSITORY}:develop" | |
;; | |
esac | |
fi | |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" | |
fi | |
if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then | |
image_tags=${branch_tag},${git_tag} | |
else | |
image_tags="${branch_tag}${git_tag}" | |
fi | |
echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV | |
dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") | |
ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") | |
echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT | |
- name: Label | |
id: Label | |
run: | | |
image_name=${GITHUB_REPOSITORY/docker-/} | |
if [ -f "${{ env.build_file }}" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} | |
if [ -f "CHANGELOG.md" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} | |
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md | |
fi | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} | |
fi | |
if [[ $GITHUB_REF == refs/heads/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} | |
fi | |
fi | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm,arm64 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./${{ env.build_file }} | |
platforms: linux/amd64 | |
push: true | |
tags: ${{ steps.prep.outputs.container_images }} | |
build-args: | | |
DISTRO=${{ env.DISTRO }} | |
DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} | |
PHP_BASE=${{ env.PHP_BASE }} | |
- name: Update Docker Hub Information | |
if: github.event_name != 'pull_request' | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
repository: ${{ env.dockerhub_repo }} | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: ./README.md | |
### | |
php74_debian_bullseye: | |
env: | |
DISTRO: "debian" | |
DISTRO_VARIANT: "bullseye" | |
PHP_BASE: 7.4 | |
build_file: Dockerfile.debian | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ "${GITHUB_REF}" == refs/heads/* ]]; then | |
if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then | |
git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" | |
else | |
git_branch=${GITHUB_REF#refs/heads/} | |
fi | |
case "${git_branch}" in | |
"main" | "master" ) | |
if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest=",${GITHUB_REPOSITORY}:latest" | |
fi | |
if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" | |
fi | |
branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}${image_latest}" | |
;; | |
"develop" ) | |
branch_tag="${GITHUB_REPOSITORY}:develop" | |
;; | |
esac | |
fi | |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" | |
fi | |
if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then | |
image_tags=${branch_tag},${git_tag} | |
else | |
image_tags="${branch_tag}${git_tag}" | |
fi | |
echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV | |
dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") | |
ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") | |
echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT | |
- name: Label | |
id: Label | |
run: | | |
image_name=${GITHUB_REPOSITORY/docker-/} | |
if [ -f "${{ env.build_file }}" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} | |
if [ -f "CHANGELOG.md" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} | |
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md | |
fi | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} | |
fi | |
if [[ $GITHUB_REF == refs/heads/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} | |
fi | |
fi | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm,arm64 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./${{ env.build_file }} | |
platforms: linux/amd64,linux/arm64,linux/arm/v7 | |
push: true | |
tags: ${{ steps.prep.outputs.container_images }} | |
build-args: | | |
DISTRO=${{ env.DISTRO }} | |
DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} | |
PHP_BASE=${{ env.PHP_BASE }} | |
- name: Update Docker Hub Information | |
if: github.event_name != 'pull_request' | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
repository: ${{ env.dockerhub_repo }} | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: ./README.md | |
### | |
php74_debian_buster: | |
env: | |
DISTRO: "debian" | |
DISTRO_VARIANT: "buster" | |
PHP_BASE: 7.4 | |
build_file: Dockerfile.debian | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ "${GITHUB_REF}" == refs/heads/* ]]; then | |
if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then | |
git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" | |
else | |
git_branch=${GITHUB_REF#refs/heads/} | |
fi | |
case "${git_branch}" in | |
"main" | "master" ) | |
if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest=",${GITHUB_REPOSITORY}:latest" | |
fi | |
if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" | |
fi | |
branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}${image_latest}" | |
;; | |
"develop" ) | |
branch_tag="${GITHUB_REPOSITORY}:develop" | |
;; | |
esac | |
fi | |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" | |
fi | |
if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then | |
image_tags=${branch_tag},${git_tag} | |
else | |
image_tags="${branch_tag}${git_tag}" | |
fi | |
echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV | |
dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") | |
ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") | |
echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT | |
- name: Label | |
id: Label | |
run: | | |
image_name=${GITHUB_REPOSITORY/docker-/} | |
if [ -f "${{ env.build_file }}" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} | |
if [ -f "CHANGELOG.md" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} | |
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md | |
fi | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} | |
fi | |
if [[ $GITHUB_REF == refs/heads/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} | |
fi | |
fi | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm,arm64 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./${{ env.build_file }} | |
platforms: linux/amd64,linux/arm64,linux/arm/v7 | |
push: true | |
tags: ${{ steps.prep.outputs.container_images }} | |
build-args: | | |
DISTRO=${{ env.DISTRO }} | |
DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} | |
PHP_BASE=${{ env.PHP_BASE }} | |
- name: Update Docker Hub Information | |
if: github.event_name != 'pull_request' | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
repository: ${{ env.dockerhub_repo }} | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: ./README.md | |
### | |
php73_debian_bookworm: | |
env: | |
DISTRO: "debian" | |
DISTRO_VARIANT: "bookworm" | |
PHP_BASE: 7.3 | |
build_file: Dockerfile.debian | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ "${GITHUB_REF}" == refs/heads/* ]]; then | |
if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then | |
git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" | |
else | |
git_branch=${GITHUB_REF#refs/heads/} | |
fi | |
case "${git_branch}" in | |
"main" | "master" ) | |
if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest=",${GITHUB_REPOSITORY}:latest" | |
fi | |
if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" | |
fi | |
branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}${image_latest}" | |
;; | |
"develop" ) | |
branch_tag="${GITHUB_REPOSITORY}:develop" | |
;; | |
esac | |
fi | |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" | |
fi | |
if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then | |
image_tags=${branch_tag},${git_tag} | |
else | |
image_tags="${branch_tag}${git_tag}" | |
fi | |
echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV | |
dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") | |
ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") | |
echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT | |
- name: Label | |
id: Label | |
run: | | |
image_name=${GITHUB_REPOSITORY/docker-/} | |
if [ -f "${{ env.build_file }}" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} | |
if [ -f "CHANGELOG.md" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} | |
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md | |
fi | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} | |
fi | |
if [[ $GITHUB_REF == refs/heads/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} | |
fi | |
fi | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm,arm64 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./${{ env.build_file }} | |
platforms: linux/amd64,linux/arm64,linux/arm/v7 | |
push: true | |
tags: ${{ steps.prep.outputs.container_images }} | |
build-args: | | |
DISTRO=${{ env.DISTRO }} | |
DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} | |
PHP_BASE=${{ env.PHP_BASE }} | |
- name: Update Docker Hub Information | |
if: github.event_name != 'pull_request' | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
repository: ${{ env.dockerhub_repo }} | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: ./README.md | |
### | |
php73_debian_bullseye: | |
env: | |
DISTRO: "debian" | |
DISTRO_VARIANT: "bullseye" | |
PHP_BASE: 7.3 | |
build_file: Dockerfile.debian | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ "${GITHUB_REF}" == refs/heads/* ]]; then | |
if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then | |
git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" | |
else | |
git_branch=${GITHUB_REF#refs/heads/} | |
fi | |
case "${git_branch}" in | |
"main" | "master" ) | |
if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest=",${GITHUB_REPOSITORY}:latest" | |
fi | |
if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" | |
fi | |
branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}${image_latest}" | |
;; | |
"develop" ) | |
branch_tag="${GITHUB_REPOSITORY}:develop" | |
;; | |
esac | |
fi | |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" | |
fi | |
if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then | |
image_tags=${branch_tag},${git_tag} | |
else | |
image_tags="${branch_tag}${git_tag}" | |
fi | |
echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV | |
dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") | |
ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") | |
echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT | |
- name: Label | |
id: Label | |
run: | | |
image_name=${GITHUB_REPOSITORY/docker-/} | |
if [ -f "${{ env.build_file }}" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} | |
if [ -f "CHANGELOG.md" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} | |
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md | |
fi | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} | |
fi | |
if [[ $GITHUB_REF == refs/heads/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} | |
fi | |
fi | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm,arm64 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./${{ env.build_file }} | |
platforms: linux/amd64,linux/arm64,linux/arm/v7 | |
push: true | |
tags: ${{ steps.prep.outputs.container_images }} | |
build-args: | | |
DISTRO=${{ env.DISTRO }} | |
DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} | |
PHP_BASE=${{ env.PHP_BASE }} | |
- name: Update Docker Hub Information | |
if: github.event_name != 'pull_request' | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
repository: ${{ env.dockerhub_repo }} | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: ./README.md | |
### | |
php73_debian_buster: | |
env: | |
DISTRO: "debian" | |
DISTRO_VARIANT: "buster" | |
PHP_BASE: 7.3 | |
build_file: Dockerfile.debian | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ "${GITHUB_REF}" == refs/heads/* ]]; then | |
if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then | |
git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" | |
else | |
git_branch=${GITHUB_REF#refs/heads/} | |
fi | |
case "${git_branch}" in | |
"main" | "master" ) | |
if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest=",${GITHUB_REPOSITORY}:latest" | |
fi | |
if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then | |
image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" | |
fi | |
branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}${image_latest}" | |
;; | |
"develop" ) | |
branch_tag="${GITHUB_REPOSITORY}:develop" | |
;; | |
esac | |
fi | |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" | |
fi | |
if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then | |
image_tags=${branch_tag},${git_tag} | |
else | |
image_tags="${branch_tag}${git_tag}" | |
fi | |
echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV | |
dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") | |
ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") | |
echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT | |
- name: Label | |
id: Label | |
run: | | |
image_name=${GITHUB_REPOSITORY/docker-/} | |
if [ -f "${{ env.build_file }}" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} | |
sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} | |
if [ -f "CHANGELOG.md" ] ; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} | |
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md | |
fi | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} | |
fi | |
if [[ $GITHUB_REF == refs/heads/* ]]; then | |
sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} | |
fi | |
fi | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm,arm64 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./${{ env.build_file }} | |
platforms: linux/amd64,linux/arm64,linux/arm/v7 | |
push: true | |
tags: ${{ steps.prep.outputs.container_images }} | |
build-args: | | |
DISTRO=${{ env.DISTRO }} | |
DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} | |
PHP_BASE=${{ env.PHP_BASE }} | |
- name: Update Docker Hub Information | |
if: github.event_name != 'pull_request' | |
uses: peter-evans/dockerhub-description@v4 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
repository: ${{ env.dockerhub_repo }} | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: ./README.md | |
### |