diff --git a/.github/workflows/params-httpd.yml b/.github/workflows/params-httpd.yml new file mode 100644 index 00000000..56c7c3d0 --- /dev/null +++ b/.github/workflows/params-httpd.yml @@ -0,0 +1,59 @@ +--- + +# ------------------------------------------------------------------------------------------------- +# Job Name +# ------------------------------------------------------------------------------------------------- +name: params + + +# ------------------------------------------------------------------------------------------------- +# Custom Variables +# ------------------------------------------------------------------------------------------------- +env: + # Note: Older PHP versions use an older version of phpPgMyAdmin, which does not work with later + # PgSQL server versions. That's why we need to tell those combinations to use an old PgSQL server + MATRIX: >- + [ + {"HTTPD_SERVER": "apache-2.2", "HTTPD_FLAVOUR": "alpine"}, + {"HTTPD_SERVER": "apache-2.2", "HTTPD_FLAVOUR": "debian"}, + + {"HTTPD_SERVER": "apache-2.4", "HTTPD_FLAVOUR": "alpine"}, + {"HTTPD_SERVER": "apache-2.4", "HTTPD_FLAVOUR": "debian"}, + + {"HTTPD_SERVER": "nginx-stable", "HTTPD_FLAVOUR": "alpine"}, + {"HTTPD_SERVER": "nginx-stable", "HTTPD_FLAVOUR": "debian"}, + + {"HTTPD_SERVER": "nginx-mainline", "HTTPD_FLAVOUR": "alpine"}, + {"HTTPD_SERVER": "nginx-mainline", "HTTPD_FLAVOUR": "debian"} + ] + + +# ------------------------------------------------------------------------------------------------- +# When to run +# ------------------------------------------------------------------------------------------------- +on: + workflow_call: + outputs: + matrix: + description: "The determined version matrix" + value: ${{ jobs.params.outputs.matrix }} + +jobs: + params: + runs-on: ubuntu-latest + + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + + steps: + - name: "[Set-Output] Matrix" + id: set-matrix + run: | + echo "::set-output name=matrix::$( echo '${{ env.MATRIX }}' | jq -M -c )" + + - name: "[DEBUG] Show settings'" + run: | + echo 'Matrix' + echo '--------------------' + echo '${{ steps.set-matrix.outputs.matrix }}' + echo diff --git a/.github/workflows/params-version-memcd.yml b/.github/workflows/params-memcd.yml similarity index 100% rename from .github/workflows/params-version-memcd.yml rename to .github/workflows/params-memcd.yml diff --git a/.github/workflows/params-version-mongo.yml b/.github/workflows/params-mongo.yml similarity index 100% rename from .github/workflows/params-version-mongo.yml rename to .github/workflows/params-mongo.yml diff --git a/.github/workflows/params-version-mysql.yml b/.github/workflows/params-mysql.yml similarity index 100% rename from .github/workflows/params-version-mysql.yml rename to .github/workflows/params-mysql.yml diff --git a/.github/workflows/params-version-pgsql.yml b/.github/workflows/params-pgsql.yml similarity index 100% rename from .github/workflows/params-version-pgsql.yml rename to .github/workflows/params-pgsql.yml diff --git a/.github/workflows/params-version-redis.yml b/.github/workflows/params-redis.yml similarity index 100% rename from .github/workflows/params-version-redis.yml rename to .github/workflows/params-redis.yml diff --git a/.github/workflows/test-httpd.yml b/.github/workflows/test-httpd.yml new file mode 100644 index 00000000..c0dbfef6 --- /dev/null +++ b/.github/workflows/test-httpd.yml @@ -0,0 +1,53 @@ +--- + +# ------------------------------------------------------------------------------------------------- +# Job Name +# ------------------------------------------------------------------------------------------------- +name: Httpd + + +# ------------------------------------------------------------------------------------------------- +# When to run +# ------------------------------------------------------------------------------------------------- +on: + # Runs on Pull Requests + pull_request: + + # Runs on master Branch and Tags + push: + branches: + - master + tags: + - '[0-9]+.[0-9]+*' + + +jobs: + # ----------------------------------------------------------------------------------------------- + # (1/3) Determine parameter settings + # ----------------------------------------------------------------------------------------------- + params: + uses: ./.github/workflows/params-httpd.yml + + + # ----------------------------------------------------------------------------------------------- + # (2/3) Test with default settings + # ----------------------------------------------------------------------------------------------- + default: + needs: [params] + uses: ./.github/workflows/zzz-reuse-tests.yml + with: + matrix: ${{ needs.params.outputs.matrix }} + custom_config: false + operating_system: ubuntu-latest + + + # ----------------------------------------------------------------------------------------------- + # (3/3) Test with customizedt settings + # ----------------------------------------------------------------------------------------------- + custom: + needs: [params] + uses: ./.github/workflows/zzz-reuse-tests.yml + with: + matrix: ${{ needs.params.outputs.matrix }} + custom_config: true + operating_system: ubuntu-latest diff --git a/.github/workflows/test-version-memcd.yml b/.github/workflows/test-memcd.yml similarity index 96% rename from .github/workflows/test-version-memcd.yml rename to .github/workflows/test-memcd.yml index 5832ab52..5d073957 100644 --- a/.github/workflows/test-version-memcd.yml +++ b/.github/workflows/test-memcd.yml @@ -26,7 +26,7 @@ jobs: # (1/3) Determine parameter settings # ----------------------------------------------------------------------------------------------- params: - uses: ./.github/workflows/params-version-memcd.yml + uses: ./.github/workflows/params-memcd.yml # ----------------------------------------------------------------------------------------------- diff --git a/.github/workflows/test-version-mongo.yml b/.github/workflows/test-mongo.yml similarity index 96% rename from .github/workflows/test-version-mongo.yml rename to .github/workflows/test-mongo.yml index 96369aa5..cb44752e 100644 --- a/.github/workflows/test-version-mongo.yml +++ b/.github/workflows/test-mongo.yml @@ -26,7 +26,7 @@ jobs: # (1/3) Determine parameter settings # ----------------------------------------------------------------------------------------------- params: - uses: ./.github/workflows/params-version-mongo.yml + uses: ./.github/workflows/params-mongo.yml # ----------------------------------------------------------------------------------------------- diff --git a/.github/workflows/test-version-mysql.yml b/.github/workflows/test-mysql.yml similarity index 96% rename from .github/workflows/test-version-mysql.yml rename to .github/workflows/test-mysql.yml index 79b805ea..4c12e10e 100644 --- a/.github/workflows/test-version-mysql.yml +++ b/.github/workflows/test-mysql.yml @@ -26,7 +26,7 @@ jobs: # (1/3) Determine parameter settings # ----------------------------------------------------------------------------------------------- params: - uses: ./.github/workflows/params-version-mysql.yml + uses: ./.github/workflows/params-mysql.yml # ----------------------------------------------------------------------------------------------- diff --git a/.github/workflows/test-version-pgsql.yml b/.github/workflows/test-pgsql.yml similarity index 96% rename from .github/workflows/test-version-pgsql.yml rename to .github/workflows/test-pgsql.yml index e0726820..1f4cc9eb 100644 --- a/.github/workflows/test-version-pgsql.yml +++ b/.github/workflows/test-pgsql.yml @@ -26,7 +26,7 @@ jobs: # (1/3) Determine parameter settings # ----------------------------------------------------------------------------------------------- params: - uses: ./.github/workflows/params-version-pgsql.yml + uses: ./.github/workflows/params-pgsql.yml # ----------------------------------------------------------------------------------------------- diff --git a/.github/workflows/test-php.yml b/.github/workflows/test-php.yml index 105fc661..59558f37 100644 --- a/.github/workflows/test-php.yml +++ b/.github/workflows/test-php.yml @@ -40,6 +40,7 @@ jobs: custom_config: false operating_system: ubuntu-latest + # ----------------------------------------------------------------------------------------------- # (3/3) Test with customizedt settings # ----------------------------------------------------------------------------------------------- diff --git a/.github/workflows/test-version-redis.yml b/.github/workflows/test-redis.yml similarity index 96% rename from .github/workflows/test-version-redis.yml rename to .github/workflows/test-redis.yml index 76f1488d..d6a63bfb 100644 --- a/.github/workflows/test-version-redis.yml +++ b/.github/workflows/test-redis.yml @@ -26,7 +26,7 @@ jobs: # (1/3) Determine parameter settings # ----------------------------------------------------------------------------------------------- params: - uses: ./.github/workflows/params-version-redis.yml + uses: ./.github/workflows/params-redis.yml # ----------------------------------------------------------------------------------------------- diff --git a/CHANGELOG.md b/CHANGELOG.md index a049c284..11c21540 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,12 +14,14 @@ The goal of this release is to reduce the overall size of Docker images and brin #### Added - Added CakePHP integration tests for PHP 8+ +- Added `.env` variable `HTTPD_FLAVOUR` to decide between `Debian` or `Alpine` for HTTP server #### Changed - Changed default PostgreSQL server from `12.4` to `14-alpine` (breaking change) - Changed default Redis server from `6.0` to `6.2-alpine` - Changed default Memcached server from `1.6` to `1.6-alpine` - Changed default MongoDB server from `4.4` to `5.0` +- Changed default HTTPD server flavour from `Debian` to `Alpine` - Use tiny Alpine version of Bind container #### Removed diff --git a/README.md b/README.md index d04e2860..59589582 100644 --- a/README.md +++ b/README.md @@ -27,11 +27,12 @@ [![Build Status](https://github.com/cytopia/devilbox/workflows/Docs/badge.svg)](https://github.com/cytopia/devilbox/actions?workflow=Docs) [![PHP](https://github.com/cytopia/devilbox/actions/workflows/test-php.yml/badge.svg)](https://github.com/cytopia/devilbox/actions/workflows/test-php.yml) -[![MySQL](https://github.com/cytopia/devilbox/actions/workflows/test-version-mysql.yml/badge.svg)](https://github.com/cytopia/devilbox/actions/workflows/test-version-mysql.yml) -[![Memcd](https://github.com/cytopia/devilbox/actions/workflows/test-version-memcd.yml/badge.svg)](https://github.com/cytopia/devilbox/actions/workflows/test-version-memcd.yml) -[![Mongo](https://github.com/cytopia/devilbox/actions/workflows/test-version-mongo.yml/badge.svg)](https://github.com/cytopia/devilbox/actions/workflows/test-version-mongo.yml) -[![PgSQL](https://github.com/cytopia/devilbox/actions/workflows/test-version-pgsql.yml/badge.svg)](https://github.com/cytopia/devilbox/actions/workflows/test-version-pgsql.yml) -[![Redis](https://github.com/cytopia/devilbox/actions/workflows/test-version-redis.yml/badge.svg)](https://github.com/cytopia/devilbox/actions/workflows/test-version-redis.yml) +[![Httpd](https://github.com/cytopia/devilbox/actions/workflows/test-httpd.yml/badge.svg)](https://github.com/cytopia/devilbox/actions/workflows/test-httpd.yml) +[![MySQL](https://github.com/cytopia/devilbox/actions/workflows/test-mysql.yml/badge.svg)](https://github.com/cytopia/devilbox/actions/workflows/test-mysql.yml) +[![Memcd](https://github.com/cytopia/devilbox/actions/workflows/test-memcd.yml/badge.svg)](https://github.com/cytopia/devilbox/actions/workflows/test-memcd.yml) +[![Mongo](https://github.com/cytopia/devilbox/actions/workflows/test-mongo.yml/badge.svg)](https://github.com/cytopia/devilbox/actions/workflows/test-mongo.yml) +[![PgSQL](https://github.com/cytopia/devilbox/actions/workflows/test-pgsql.yml/badge.svg)](https://github.com/cytopia/devilbox/actions/workflows/test-pgsql.yml) +[![Redis](https://github.com/cytopia/devilbox/actions/workflows/test-redis.yml/badge.svg)](https://github.com/cytopia/devilbox/actions/workflows/test-redis.yml)
diff --git a/docker-compose.yml b/docker-compose.yml index dc96837b..511a544d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -220,7 +220,7 @@ services: # Web Server # ------------------------------------------------------------ httpd: - image: devilbox/${HTTPD_SERVER}:0.43 + image: devilbox/${HTTPD_SERVER}:${HTTPD_FLAVOUR:-alpine}-0.47 hostname: httpd environment: diff --git a/env-example b/env-example index 86cd2128..6d2b420a 100644 --- a/env-example +++ b/env-example @@ -273,6 +273,12 @@ PHP_SERVER=8.1 ### ### 1.2 Choose HTTPD Server Image ### +### Choose between 'debian' or 'alpine' flavour and then select the version +### +### Note: apache-2.2 has no arm64 support on 'alpine' flavour +### +HTTPD_FLAVOUR=alpine + #HTTPD_SERVER=apache-2.2 #HTTPD_SERVER=apache-2.4 HTTPD_SERVER=nginx-stable