|
11 | 11 | - '**'
|
12 | 12 | - '!README.md'
|
13 | 13 | jobs:
|
| 14 | + php84_alpine: |
| 15 | + env: |
| 16 | + DISTRO: "alpine" |
| 17 | + DISTRO_VARIANT: "3.21" |
| 18 | + PHP_BASE: 8.4 |
| 19 | + build_file: Dockerfile |
| 20 | + runs-on: ubuntu-latest |
| 21 | + steps: |
| 22 | + - name: Checkout |
| 23 | + uses: actions/checkout@v4 |
| 24 | + |
| 25 | + - name: Prepare |
| 26 | + id: prep |
| 27 | + run: | |
| 28 | + if [[ "${GITHUB_REF}" == refs/heads/* ]]; then |
| 29 | + if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then |
| 30 | + git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" |
| 31 | + else |
| 32 | + git_branch=${GITHUB_REF#refs/heads/} |
| 33 | + fi |
| 34 | +
|
| 35 | + case "${git_branch}" in |
| 36 | + "main" | "master" ) |
| 37 | + if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then |
| 38 | + image_latest=",${GITHUB_REPOSITORY}:latest" |
| 39 | + fi |
| 40 | + if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then |
| 41 | + image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" |
| 42 | + fi |
| 43 | + branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}${image_latest}" |
| 44 | + ;; |
| 45 | + "develop" ) |
| 46 | + branch_tag="${GITHUB_REPOSITORY}:develop" |
| 47 | + ;; |
| 48 | + esac |
| 49 | + fi |
| 50 | +
|
| 51 | + if [[ "${GITHUB_REF}" == refs/tags/* ]]; then |
| 52 | + git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" |
| 53 | + fi |
| 54 | +
|
| 55 | + if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then |
| 56 | + image_tags=${branch_tag},${git_tag} |
| 57 | + else |
| 58 | + image_tags="${branch_tag}${git_tag}" |
| 59 | + fi |
| 60 | +
|
| 61 | + echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV |
| 62 | + dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") |
| 63 | + ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") |
| 64 | + echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT |
| 65 | + - name: Label |
| 66 | + id: Label |
| 67 | + run: | |
| 68 | + image_name=${GITHUB_REPOSITORY/docker-/} |
| 69 | + if [ -f "${{ env.build_file }}" ] ; then |
| 70 | + sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} |
| 71 | + sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} |
| 72 | + sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} |
| 73 | + sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} |
| 74 | + sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} |
| 75 | +
|
| 76 | + if [ -f "CHANGELOG.md" ] ; then |
| 77 | + sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} |
| 78 | + mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md |
| 79 | + fi |
| 80 | +
|
| 81 | + if [[ $GITHUB_REF == refs/tags/* ]]; then |
| 82 | + sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} |
| 83 | + fi |
| 84 | +
|
| 85 | + if [[ $GITHUB_REF == refs/heads/* ]]; then |
| 86 | + sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} |
| 87 | + fi |
| 88 | + fi |
| 89 | + - name: Set up Docker Buildx |
| 90 | + id: buildx |
| 91 | + uses: docker/setup-buildx-action@v3 |
| 92 | + |
| 93 | + - name: Set up QEMU |
| 94 | + uses: docker/setup-qemu-action@v3 |
| 95 | + with: |
| 96 | + platforms: arm,arm64 |
| 97 | + |
| 98 | + - name: Login to DockerHub |
| 99 | + if: github.event_name != 'pull_request' |
| 100 | + uses: docker/login-action@v3 |
| 101 | + with: |
| 102 | + username: ${{ secrets.DOCKER_USERNAME }} |
| 103 | + password: ${{ secrets.DOCKER_PASSWORD }} |
| 104 | + |
| 105 | + - name: Login to GitHub Container Registry |
| 106 | + if: github.event_name != 'pull_request' |
| 107 | + uses: docker/login-action@v3 |
| 108 | + with: |
| 109 | + registry: ghcr.io |
| 110 | + username: ${{ github.actor }} |
| 111 | + password: ${{ secrets.GITHUB_TOKEN }} |
| 112 | + |
| 113 | + - name: Build |
| 114 | + if: github.event_name != 'pull_request' |
| 115 | + uses: docker/build-push-action@v6 |
| 116 | + with: |
| 117 | + builder: ${{ steps.buildx.outputs.name }} |
| 118 | + context: . |
| 119 | + file: ./${{ env.build_file }} |
| 120 | + platforms: linux/amd64,linux/arm64,linux/arm/v7 |
| 121 | + push: true |
| 122 | + tags: ${{ steps.prep.outputs.container_images }} |
| 123 | + build-args: | |
| 124 | + DISTRO=${{ env.DISTRO }} |
| 125 | + DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} |
| 126 | + PHP_BASE=${{ env.PHP_BASE }} |
| 127 | +
|
| 128 | + - name: Update Docker Hub Information |
| 129 | + if: github.event_name != 'pull_request' |
| 130 | + uses: peter-evans/dockerhub-description@v4 |
| 131 | + with: |
| 132 | + username: ${{ secrets.DOCKER_USERNAME }} |
| 133 | + password: ${{ secrets.DOCKER_PASSWORD }} |
| 134 | + repository: ${{ env.dockerhub_repo }} |
| 135 | + short-description: ${{ github.event.repository.description }} |
| 136 | + readme-filepath: ./README.md |
| 137 | + |
14 | 138 | php83_alpine:
|
15 | 139 | env:
|
16 | 140 | DISTRO: "alpine"
|
17 |
| - DISTRO_VARIANT: "3.20" |
| 141 | + DISTRO_VARIANT: "3.21" |
18 | 142 | PHP_BASE: 8.3
|
19 | 143 | build_file: Dockerfile
|
20 | 144 | runs-on: ubuntu-latest
|
@@ -261,7 +385,7 @@ jobs:
|
261 | 385 | php82_alpine:
|
262 | 386 | env:
|
263 | 387 | DISTRO: "alpine"
|
264 |
| - DISTRO_VARIANT: "3.20" |
| 388 | + DISTRO_VARIANT: "3.21" |
265 | 389 | PHP_BASE: 8.2
|
266 | 390 | build_file: Dockerfile
|
267 | 391 | runs-on: ubuntu-latest
|
@@ -1378,6 +1502,130 @@ jobs:
|
1378 | 1502 | short-description: ${{ github.event.repository.description }}
|
1379 | 1503 | readme-filepath: ./README.md
|
1380 | 1504 | ###
|
| 1505 | + php84_debian_bookworm: |
| 1506 | + env: |
| 1507 | + DISTRO: "debian" |
| 1508 | + DISTRO_VARIANT: "bookworm" |
| 1509 | + PHP_BASE: 8.4 |
| 1510 | + build_file: Dockerfile.debian |
| 1511 | + runs-on: ubuntu-latest |
| 1512 | + steps: |
| 1513 | + - name: Checkout |
| 1514 | + uses: actions/checkout@v4 |
| 1515 | + |
| 1516 | + - name: Prepare |
| 1517 | + id: prep |
| 1518 | + run: | |
| 1519 | + if [[ "${GITHUB_REF}" == refs/heads/* ]]; then |
| 1520 | + if [[ "${GITHUB_REF}" == refs/heads/*/* ]] ; then |
| 1521 | + git_branch="${GITHUB_REPOSITORY/docker-/}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" |
| 1522 | + else |
| 1523 | + git_branch=${GITHUB_REF#refs/heads/} |
| 1524 | + fi |
| 1525 | +
|
| 1526 | + case "${git_branch}" in |
| 1527 | + "main" | "master" ) |
| 1528 | + if [ "${{ vars.LATEST }}" = "TRUE" ] || [ "${{ vars.LATEST }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then |
| 1529 | + image_latest=",${GITHUB_REPOSITORY}:latest" |
| 1530 | + fi |
| 1531 | + if [ "${{ vars.LATEST_ALPINE }}" = "${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}" ]; then |
| 1532 | + image_latest+=",${GITHUB_REPOSITORY}:${DISTRO}" |
| 1533 | + fi |
| 1534 | + branch_tag="${GITHUB_REPOSITORY}:${PHP_BASE},${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}${image_latest}" |
| 1535 | + ;; |
| 1536 | + "develop" ) |
| 1537 | + branch_tag="${GITHUB_REPOSITORY}:develop" |
| 1538 | + ;; |
| 1539 | + esac |
| 1540 | + fi |
| 1541 | +
|
| 1542 | + if [[ "${GITHUB_REF}" == refs/tags/* ]]; then |
| 1543 | + git_tag="${GITHUB_REPOSITORY}:${PHP_BASE}-${DISTRO}-${DISTRO_VARIANT}-$(echo ${GITHUB_REF} | sed 's|refs/tags/||g')" |
| 1544 | + fi |
| 1545 | +
|
| 1546 | + if [ -n "${branch_tag}" ] && [ -n "${git_tag}" ]; then |
| 1547 | + image_tags=${branch_tag},${git_tag} |
| 1548 | + else |
| 1549 | + image_tags="${branch_tag}${git_tag}" |
| 1550 | + fi |
| 1551 | +
|
| 1552 | + echo "dockerhub_repo=${GITHUB_REPOSITORY/docker-/}" >> $GITHUB_ENV |
| 1553 | + dockerhub_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|docker.io/${GITHUB_REPOSITORY/docker-/}|g") |
| 1554 | + ghcr_images=$(echo "${image_tags}" | sed "s|${GITHUB_REPOSITORY}|ghcr.io/${GITHUB_REPOSITORY}|g") |
| 1555 | + echo "container_images=${dockerhub_images},${ghcr_images}" >> $GITHUB_OUTPUT |
| 1556 | + - name: Label |
| 1557 | + id: Label |
| 1558 | + run: | |
| 1559 | + image_name=${GITHUB_REPOSITORY/docker-/} |
| 1560 | + if [ -f "${{ env.build_file }}" ] ; then |
| 1561 | + sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" ${{ env.build_file }} |
| 1562 | + sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_commit=\"${GITHUB_SHA}\"" ${{ env.build_file }} |
| 1563 | + sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_committed_by=\"${GITHUB_ACTOR}\"" ${{ env.build_file }} |
| 1564 | + sed -i "/FROM .*/a LABEL tiredofit.${image_name}.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" ${{ env.build_file }} |
| 1565 | + sed -i "/FROM .*/a LABEL org.opencontainers.image.source https://github.com/${GITHUB_REPOSITORY}" ${{ env.build_file }} |
| 1566 | +
|
| 1567 | + if [ -f "CHANGELOG.md" ] ; then |
| 1568 | + sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" ${{ env.build_file }} |
| 1569 | + mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md |
| 1570 | + fi |
| 1571 | +
|
| 1572 | + if [[ $GITHUB_REF == refs/tags/* ]]; then |
| 1573 | + sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_tag=\"${GITHUB_REF#refs/tags/v}\"" ${{ env.build_file }} |
| 1574 | + fi |
| 1575 | +
|
| 1576 | + if [[ $GITHUB_REF == refs/heads/* ]]; then |
| 1577 | + sed -i "/FROM .*/a LABEL tiredofit.${image_name}.git_branch=\"${GITHUB_REF#refs/heads/}\"" ${{ env.build_file }} |
| 1578 | + fi |
| 1579 | + fi |
| 1580 | + - name: Set up Docker Buildx |
| 1581 | + id: buildx |
| 1582 | + uses: docker/setup-buildx-action@v3 |
| 1583 | + |
| 1584 | + - name: Set up QEMU |
| 1585 | + uses: docker/setup-qemu-action@v3 |
| 1586 | + with: |
| 1587 | + platforms: arm,arm64 |
| 1588 | + |
| 1589 | + - name: Login to DockerHub |
| 1590 | + if: github.event_name != 'pull_request' |
| 1591 | + uses: docker/login-action@v3 |
| 1592 | + with: |
| 1593 | + username: ${{ secrets.DOCKER_USERNAME }} |
| 1594 | + password: ${{ secrets.DOCKER_PASSWORD }} |
| 1595 | + |
| 1596 | + - name: Login to GitHub Container Registry |
| 1597 | + if: github.event_name != 'pull_request' |
| 1598 | + uses: docker/login-action@v3 |
| 1599 | + with: |
| 1600 | + registry: ghcr.io |
| 1601 | + username: ${{ github.actor }} |
| 1602 | + password: ${{ secrets.GITHUB_TOKEN }} |
| 1603 | + |
| 1604 | + - name: Build |
| 1605 | + if: github.event_name != 'pull_request' |
| 1606 | + uses: docker/build-push-action@v6 |
| 1607 | + with: |
| 1608 | + builder: ${{ steps.buildx.outputs.name }} |
| 1609 | + context: . |
| 1610 | + file: ./${{ env.build_file }} |
| 1611 | + platforms: linux/amd64,linux/arm64,linux/arm/v7 |
| 1612 | + push: true |
| 1613 | + tags: ${{ steps.prep.outputs.container_images }} |
| 1614 | + build-args: | |
| 1615 | + DISTRO=${{ env.DISTRO }} |
| 1616 | + DISTRO_VARIANT=${{ env.DISTRO_VARIANT }} |
| 1617 | + PHP_BASE=${{ env.PHP_BASE }} |
| 1618 | +
|
| 1619 | + - name: Update Docker Hub Information |
| 1620 | + if: github.event_name != 'pull_request' |
| 1621 | + uses: peter-evans/dockerhub-description@v4 |
| 1622 | + with: |
| 1623 | + username: ${{ secrets.DOCKER_USERNAME }} |
| 1624 | + password: ${{ secrets.DOCKER_PASSWORD }} |
| 1625 | + repository: ${{ env.dockerhub_repo }} |
| 1626 | + short-description: ${{ github.event.repository.description }} |
| 1627 | + readme-filepath: ./README.md |
| 1628 | +# |
1381 | 1629 | php83_debian_bookworm:
|
1382 | 1630 | env:
|
1383 | 1631 | DISTRO: "debian"
|
|
0 commit comments