name: Build and push PHP container images on: push: branches: - master jobs: base: name: Build php cli with composer runs-on: ubuntu-latest container: image: ghcr.io/catthehacker/ubuntu:act-latest strategy: matrix: params: - os: "alpine" os_version: "3.9" os_label: "true" php_version: "7.2" php_short_version: "7" php_release: "7" composer_version: "2.8.9" - os: "alpine" os_version: "3.12" os_label: "true" php_version: "7.3" php_short_version: "7" php_release: "7" composer_version: "2.8.9" - os: "alpine" os_version: "3.15" os_label: "true" php_version: "7.4" php_short_version: "7" php_release: "7" php_major: 'true' composer_version: "2.8.9" - os: "alpine" os_version: "3.16" os_label: "true" php_version: "8.0" php_short_version: "8" php_release: "8" composer_version: "2.8.9" - os: "alpine" os_version: "3.19" os_label: "true" php_version: "8.1" php_short_version: "81" php_release: "8" composer_version: "2.8.9" - os: "alpine" os_version: "3.21" os_label: "true" php_version: "8.2" php_short_version: "82" php_release: "8" composer_version: "2.8.9" - os: "alpine" os_version: "3.21" os_label: "true" php_version: "8.3" php_short_version: "83" php_release: "8" composer_version: "2.8.9" - os: "alpine" os_version: "3.21" os_label: "true" php_version: "8.4" php_short_version: "84" php_release: "8" php_major: 'true' composer_version: "2.8.9" latest: 'true' - os: "almalinux" os_version: "8.10" os_short_version: "8" php_version: "7.2" php_release: "7" composer_version: "2.8.9" - os: "almalinux" os_version: "8.10" os_short_version: "8" php_version: "7.3" php_release: "7" composer_version: "2.8.9" - os: "almalinux" os_version: "9.5" os_short_version: "9" php_version: "7.4" php_release: "7" composer_version: "2.8.9" - os: "almalinux" os_version: "9.5" os_short_version: "9" php_version: "8.0" php_release: "8" composer_version: "2.8.9" - os: "almalinux" os_version: "9.5" os_short_version: "9" php_version: "8.1" php_release: "8" composer_version: "2.8.9" - os: "almalinux" os_version: "9.5" os_short_version: "9" php_version: "8.2" php_release: "8" composer_version: "2.8.9" - os: "almalinux" os_version: "9.5" os_short_version: "9" php_version: "8.3" php_release: "8" composer_version: "2.8.9" - os: "almalinux" os_version: "9.5" os_short_version: "9" php_version: "8.4" php_release: "8" php_major: 'true' composer_version: "2.8.9" latest: 'true' steps: - name: Check out repository code uses: actions/checkout@v4 - name: Login to quay.io uses: docker/login-action@v3 with: registry: quay.io username: ${{ vars.QUAY_USERNAME }} password: ${{ secrets.QUAY_SECRET }} - name: Setup Docker buildx uses: docker/setup-buildx-action@v3 - if: ${{ matrix.params.os_label != 'true' }} name: Build and push php release uses: docker/build-push-action@v5 with: push: true context: . file: Dockerfile.${{ matrix.params.os }} build-args: | OS_VERSION=${{ matrix.params.os_version }} OS_SHORT_VERSION=${{ matirx.params.os_short_version }} PHP_VERSION=${{ matrix.params.php_version }} PHP_SHORT_VERSION=${{ matrix.params.php_short_version }} COMPOSER_VERSION=${{ matrix.params.composer_version }} tags: | quay.io/teras/php:${{ matrix.params.php_version }} - if: ${{ matrix.params.os_label == 'true' }} name: Build and push php release uses: docker/build-push-action@v5 with: push: true context: . file: Dockerfile.${{ matrix.params.os }} build-args: | OS_VERSION=${{ matrix.params.os_version }} OS_SHORT_VERSION=${{ matirx.params.os_short_version }} PHP_VERSION=${{ matrix.params.php_version }} PHP_SHORT_VERSION=${{ matrix.params.php_short_version }} COMPOSER_VERSION=${{ matrix.params.composer_version }} tags: | quay.io/teras/php:${{ matrix.params.php_version }}-${{ matrix.params.os }} - if: ${{ matrix.params.php_major == 'true' && matrix.params.os_label != 'true' }} name: Build and push php major release uses: docker/build-push-action@v5 with: push: true context: . file: Dockerfile.${{ matrix.params.os }} build-args: | OS_VERSION=${{ matrix.params.os_version }} OS_SHORT_VERSION=${{ matirx.params.os_short_version }} PHP_VERSION=${{ matrix.params.php_version }} PHP_SHORT_VERSION=${{ matrix.params.php_short_version }} COMPOSER_VERSION=${{ matrix.params.composer_version }} tags: | quay.io/teras/php:${{ matrix.params.php_release }} - if: ${{ matrix.params.php_major == 'true' && matrix.params.os_label == 'true' }} name: Build and push php major release uses: docker/build-push-action@v5 with: push: true context: . file: Dockerfile.${{ matrix.params.os }} build-args: | OS_VERSION=${{ matrix.params.os_version }} OS_SHORT_VERSION=${{ matirx.params.os_short_version }} PHP_VERSION=${{ matrix.params.php_version }} PHP_SHORT_VERSION=${{ matrix.params.php_short_version }} COMPOSER_VERSION=${{ matrix.params.composer_version }} tags: | quay.io/teras/php:${{ matrix.params.php_release }}-${{ matrix.params.os }} - if: ${{ matrix.params.latest == 'true' && matrix.params.os_label != 'true' }} name: Build and push latest release uses: docker/build-push-action@v5 with: push: true context: . file: Dockerfile.${{ matrix.params.os }} build-args: | OS_VERSION=${{ matrix.params.os_version }} OS_SHORT_VERSION=${{ matirx.params.os_short_version }} PHP_VERSION=${{ matrix.params.php_version }} PHP_SHORT_VERSION=${{ matrix.params.php_short_version }} COMPOSER_VERSION=${{ matrix.params.composer_version }} tags: | quay.io/teras/php:latest - if: ${{ matrix.params.latest == 'true' && matrix.params.os_label == 'true' }} name: Build and push latest release uses: docker/build-push-action@v5 with: push: true context: . file: Dockerfile.${{ matrix.params.os }} build-args: | OS_VERSION=${{ matrix.params.os_version }} OS_SHORT_VERSION=${{ matirx.params.os_short_version }} PHP_VERSION=${{ matrix.params.php_version }} PHP_SHORT_VERSION=${{ matrix.params.php_short_version }} COMPOSER_VERSION=${{ matrix.params.composer_version }} tags: | quay.io/teras/php:latest-${{ matrix.params.os }}