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: "micro" # os_version: "8.10" # os_label: "true" # os_short_version: "8" # php_version: "7.2" # php_release: "7" # composer_version: "2.8.9" # - os: "micro" # os_version: "8.10" # os_label: "true" # os_short_version: "8" # php_version: "7.3" # php_release: "7" # composer_version: "2.8.9" # - os: "micro" # os_version: "9.5" # os_label: "true" # os_short_version: "9" # php_version: "7.4" # php_release: "7" # composer_version: "2.8.9" # - os: "micro" # os_version: "9.5" # os_label: "true" # os_short_version: "9" # php_version: "8.0" # php_release: "8" # composer_version: "2.8.9" # - os: "micro" # os_version: "9.5" # os_label: "true" # os_short_version: "9" # php_version: "8.1" # php_release: "8" # composer_version: "2.8.9" # - os: "micro" # os_version: "9.5" # os_label: "true" # os_short_version: "9" # php_version: "8.2" # php_release: "8" # composer_version: "2.8.9" # - os: "micro" # os_version: "9.5" # os_label: "true" # os_short_version: "9" # php_version: "8.3" # php_release: "8" # composer_version: "2.8.9" # - os: "micro" # os_version: "9.5" # os_label: "true" # os_short_version: "9" # php_version: "8.4" # 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' - os: "almalinux" os_version: "9.5" os_short_version: "9" php_version: "8.5" php_release: "8" php_major: "true" composer_version: "2.9.2" 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 }}