From ef23082cc86801a309dcaf8b450fdb3504c45d39 Mon Sep 17 00:00:00 2001 From: "dave@tiredofit.ca" Date: Wed, 22 Nov 2023 15:12:52 -0800 Subject: [PATCH] Release 7.6.16 - See CHANGELOG.md --- .github/workflows/main.yml | 250 +- .github/workflows/manual.yml | 6208 ++++++++++++++++++---------------- CHANGELOG.md | 6 + Dockerfile | 90 + Dockerfile.debian | 3 + README.md | 9 +- install/usr/sbin/php-ext | 3 + 7 files changed, 3584 insertions(+), 2985 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 97e76ad..fa6dc4c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -11,7 +11,131 @@ on: - '**' - '!README.md' jobs: - php82_alpine: + php83_alpine: + env: + DISTRO: "alpine" + DISTRO_VARIANT: "edge" + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_ALPINE }}" ]; 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@v3 + 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.18" @@ -1131,6 +1255,130 @@ jobs: 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 + 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" diff --git a/.github/workflows/manual.yml b/.github/workflows/manual.yml index 8810ea3..15fcf7a 100644 --- a/.github/workflows/manual.yml +++ b/.github/workflows/manual.yml @@ -10,2984 +10,3232 @@ on: description: 'Manual Build' required: false jobs: + php83_alpine: + env: + DISTRO: "alpine" + DISTRO_VARIANT: "edge" + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_ALPINE }}" ]; 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@v3 + 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.18" - 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then - image_latest=",${GITHUB_REPOSITORY}:latest" - fi - if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_ALPINE }}" ]; 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@v3 - 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.18" - 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then - image_latest=",${GITHUB_REPOSITORY}:latest" - fi - if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_ALPINE }}" ]; 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@v3 - 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then - image_latest=",${GITHUB_REPOSITORY}:latest" - fi - if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_ALPINE }}" ]; 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@v3 - 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then - image_latest=",${GITHUB_REPOSITORY}:latest" - fi - if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_ALPINE }}" ]; 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@v3 - 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then - image_latest=",${GITHUB_REPOSITORY}:latest" - fi - if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_ALPINE }}" ]; 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@v3 - 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then - image_latest=",${GITHUB_REPOSITORY}:latest" - fi - if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_ALPINE }}" ]; 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@v3 - 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then - image_latest=",${GITHUB_REPOSITORY}:latest" - fi - if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_ALPINE }}" ]; 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@v3 - 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then - image_latest=",${GITHUB_REPOSITORY}:latest" - fi - if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_ALPINE }}" ]; 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@v3 - 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then - image_latest=",${GITHUB_REPOSITORY}:latest" - fi - if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_ALPINE }}" ]; 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@v3 - 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then - image_latest=",${GITHUB_REPOSITORY}:latest" - fi - if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 - 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then - image_latest=",${GITHUB_REPOSITORY}:latest" - fi - if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 - 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then - image_latest=",${GITHUB_REPOSITORY}:latest" - fi - if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 - 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then - image_latest=",${GITHUB_REPOSITORY}:latest" - fi - if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 - 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then - image_latest=",${GITHUB_REPOSITORY}:latest" - fi - if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 - 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then - image_latest=",${GITHUB_REPOSITORY}:latest" - fi - if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 - 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then - image_latest=",${GITHUB_REPOSITORY}:latest" - fi - if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 - 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then - image_latest=",${GITHUB_REPOSITORY}:latest" - fi - if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 - 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then - image_latest=",${GITHUB_REPOSITORY}:latest" - fi - if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 - 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then - image_latest=",${GITHUB_REPOSITORY}:latest" - fi - if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 - 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then - image_latest=",${GITHUB_REPOSITORY}:latest" - fi - if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 - 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then - image_latest=",${GITHUB_REPOSITORY}:latest" - fi - if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 - 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then - image_latest=",${GITHUB_REPOSITORY}:latest" - fi - if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 - 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then - image_latest=",${GITHUB_REPOSITORY}:latest" - fi - if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 - 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then - image_latest=",${GITHUB_REPOSITORY}:latest" - fi - if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - repository: ${{ env.dockerhub_repo }} - short-description: ${{ github.event.repository.description }} - readme-filepath: ./README.md - ### + env: + DISTRO: "alpine" + DISTRO_VARIANT: "3.18" + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_ALPINE }}" ]; 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@v3 + 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.18" + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_ALPINE }}" ]; 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@v3 + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_ALPINE }}" ]; 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@v3 + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_ALPINE }}" ]; 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@v3 + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_ALPINE }}" ]; 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@v3 + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_ALPINE }}" ]; 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@v3 + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_ALPINE }}" ]; 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@v3 + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_ALPINE }}" ]; 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@v3 + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_ALPINE }}" ]; 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@v3 + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 + 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 [ "${{ env.LATEST }}" = "TRUE" ] || [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST }}" ]; then + image_latest=",${GITHUB_REPOSITORY}:latest" + fi + if [ "${DISTRO_VARIANT}" = "${{ secrets.LATEST_DEBIAN }}" ]; 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@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + repository: ${{ env.dockerhub_repo }} + short-description: ${{ github.event.repository.description }} + readme-filepath: ./README.md + ### diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d2a1b3..9cff4f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 7.6.16 2023-11-22 + + ### Added + - Introduce PHP 8.3 support + + ## 7.6.15 2023-09-13 ### Changed diff --git a/Dockerfile b/Dockerfile index a8f4426..5354273 100644 --- a/Dockerfile +++ b/Dockerfile @@ -42,10 +42,100 @@ ENV PHP_BASE=${PHP_BASE:-"8.2"} \ ### Dependency Installation RUN case "${PHP_BASE}" in \ + 8.3 ) export php_folder="83" export build_gnupg=true ;; \ 8.2 ) export php_folder="82" export build_gnupg=true ;; \ 8.1 ) export php_folder="81" export build_gnupg=true ;; \ *) export php_folder=${PHP_BASE:0:1} ; export build_gnupg=false ;; \ esac ; \ + export PHP_8_3_RUN_DEPS=" \ + gnu-libiconv \ + mariadb-connector-c \ + php83 \ + php83-bcmath \ + php83-brotli \ + php83-bz2 \ + php83-calendar \ + php83-common \ + php83-ctype \ + php83-curl \ + php83-dba \ + php83-dom \ + php83-embed \ + php83-enchant \ + php83-exif \ + php83-ffi \ + php83-fileinfo \ + php83-fpm \ + php83-ftp \ + php83-gd \ + php83-gettext \ + php83-gmp \ + php83-iconv \ + php83-imap \ + php83-intl \ + php83-ldap \ + php83-litespeed \ + php83-mbstring \ + php83-mysqli \ + php83-mysqlnd \ + php83-odbc \ + php83-opcache \ + php83-openssl \ + php83-pcntl \ + php83-pdo \ + php83-pdo_dblib \ + php83-pdo_mysql \ + php83-pdo_odbc \ + php83-pdo_pgsql \ + php83-pdo_sqlite \ + php83-pear \ + php83-pecl-amqp \ + php83-pecl-apcu \ + php83-pecl-ast \ + php83-pecl-couchbase \ + php83-pecl-igbinary \ + php83-pecl-imagick \ + php83-pecl-lzf \ + php83-pecl-maxminddb \ + php83-pecl-memcache \ + php83-pecl-memcached \ + php83-pecl-mongodb \ + php83-pecl-msgpack \ + php83-pecl-protobuf \ + php83-pecl-psr \ + php83-pecl-redis \ + php83-pecl-swoole \ + php83-pecl-uploadprogress \ + php83-pecl-uuid \ + php83-pecl-xdebug \ + php83-pecl-xhprof \ + php83-pecl-xhprof-assets \ + php83-pecl-yaml \ + php83-pecl-zstd \ + php83-pgsql \ + php83-phar \ + php83-posix \ + php83-pspell \ + php83-session \ + php83-shmop \ + php83-simplexml \ + php83-snmp \ + php83-soap \ + php83-sockets \ + php83-sodium \ + php83-sqlite3 \ + php83-sysvmsg \ + php83-sysvsem \ + php83-sysvshm \ + php83-tidy \ + php83-tokenizer \ + php83-xml \ + php83-xmlreader \ + php83-xmlwriter \ + php83-xsl \ + php83-zip \ + " && \ + \ export PHP_8_2_RUN_DEPS=" \ gnu-libiconv \ mariadb-connector-c \ diff --git a/Dockerfile.debian b/Dockerfile.debian index 0326104..8e36248 100644 --- a/Dockerfile.debian +++ b/Dockerfile.debian @@ -70,6 +70,9 @@ RUN export PHP_7_3_RUN_DEPS=" \ export PHP_8_2_RUN_DEPS=" \ " && \ \ + export PHP_8_3_RUN_DEPS=" \ + " && \ + \ export PHP_ADDITIONAL_MODULES=" \ php$PHP_BASE-ast \ php$PHP_BASE-apcu \ diff --git a/README.md b/README.md index b8a6e5a..79ffc29 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ This repository will build a [Nginx](https://www.nginx.org) w/[PHP-FPM](https://php.net) docker image, suitable for serving PHP scripts, or utilizing as a base image for installing additional software. -* Tracking PHP 5.3-8.2 +* Tracking PHP 5.3-8.3 * Easily enable / disable extensions based on your use case * Automatic Log rotation * Composer Included @@ -87,6 +87,7 @@ The following image tags are available along with their tagged release based on | PHP version | Alpine Base | Tag | Debian Base | Tag | | ----------- | ----------- | -------------- | ----------- | ---------------------- | | latest | edge | `:alpine-edge` | | | +| 8.3.x | edge | `:8.3-alpine` | Bookworm | `:8.3-debian-bookworm` | | 8.2.x | 3.18 | `:8.2-alpine` | Bookworm | `:8.2-debian-bookworm` | | 8.1.x | 3.18 | `:8.1-alpine` | Bookworm | `:8.1-debian-bookworm` | | 8.0.x | 3.16 | `:8.0-alpine` | Bookworm | `:8.0-debian-bookworm` | @@ -326,17 +327,17 @@ Welcomed. Please fork the repository and submit a [pull request](../../pulls) fo These images were built to serve a specific need in a production environment and gradually have had more functionality added based on requests from the community. ### Usage - The [Discussions board](../../discussions) is a great place for working with the community on tips and tricks of using this image. -- Consider [sponsoring me](https://github.com/sponsors/tiredofit) for personalized support +- [Sponsor me](https://tiredofit.ca/sponsor) for personalized support ### Bugfixes - Please, submit a [Bug Report](issues/new) if something isn't working as expected. I'll do my best to issue a fix in short order. ### Feature Requests - Feel free to submit a feature request, however there is no guarantee that it will be added, or at what timeline. -- Consider [sponsoring me](https://github.com/sponsors/tiredofit) regarding development of features. +- [Sponsor me](https://tiredofit.ca/sponsor) regarding development of features. ### Updates - Best effort to track upstream changes, More priority if I am actively using the image in a production environment. -- Consider [sponsoring me](https://github.com/sponsors/tiredofit) for up to date releases. +- [Sponsor me](https://tiredofit.ca/sponsor) for up to date releases. ## License MIT. See [LICENSE](LICENSE) for more details. diff --git a/install/usr/sbin/php-ext b/install/usr/sbin/php-ext index 3d4a477..ba0554c 100755 --- a/install/usr/sbin/php-ext +++ b/install/usr/sbin/php-ext @@ -17,6 +17,9 @@ case ${os} in 8.2 ) php_prefix="/etc/php82/" ;; + 8.3 ) + php_prefix="/etc/php83/" + ;; * ) php_prefix="/etc/php$(php -v 2>/dev/null | grep "^PHP " | head -n 1 | awk '{print $2}' | cut -c 1)/" ;;