diff --git a/.github/workflows/old/documentation.yml b/.github/workflows/documentation.yml similarity index 69% rename from .github/workflows/old/documentation.yml rename to .github/workflows/documentation.yml index 6d686336..b8183a53 100644 --- a/.github/workflows/old/documentation.yml +++ b/.github/workflows/documentation.yml @@ -17,7 +17,6 @@ on: push: branches: - master - tags: # ------------------------------------------------------------------------------------------------- @@ -25,9 +24,7 @@ on: # ------------------------------------------------------------------------------------------------- jobs: docs: - runs-on: ubuntu-latest - strategy: fail-fast: false matrix: @@ -46,24 +43,9 @@ jobs: uses: actions/checkout@v1 - name: Check documentation - shell: bash - run: | - retry() { - for n in $(seq ${RETRIES}); do - echo "[${n}/${RETRIES}] ${*}"; - if eval "${*}"; then - echo "[SUCC] ${n}/${RETRIES}"; - return 0; - fi; - sleep ${PAUSE}; - echo "[FAIL] ${n}/${RETRIES}"; - done; - return 1; - } - - cd docs - retry make ${TARGET} - env: - TARGET: ${{ matrix.target }} - RETRIES: 20 - PAUSE: 10 + uses: cytopia/shell-command-retry-action@v0.1.3 + with: + retries: 5 + workdir: "${{ github.workspace }}/docs/" + command: | + make ${{ matrix.target }} diff --git a/.github/workflows/old/lint.yml b/.github/workflows/lint.yml similarity index 99% rename from .github/workflows/old/lint.yml rename to .github/workflows/lint.yml index 4296262e..c33c5b09 100644 --- a/.github/workflows/old/lint.yml +++ b/.github/workflows/lint.yml @@ -17,7 +17,6 @@ on: push: branches: - master - tags: # ------------------------------------------------------------------------------------------------- diff --git a/.github/workflows/old/ci-smoke-linux.yml b/.github/workflows/old/ci-smoke-linux.yml deleted file mode 100644 index fb6411bd..00000000 --- a/.github/workflows/old/ci-smoke-linux.yml +++ /dev/null @@ -1,228 +0,0 @@ ---- - -# ------------------------------------------------------------------------------------------------- -# Job Name -# ------------------------------------------------------------------------------------------------- -name: Linux - - -# ------------------------------------------------------------------------------------------------- -# When to run -# ------------------------------------------------------------------------------------------------- -on: - # Runs on Pull Requests - pull_request: - - # Runs on master Branch and Tags - push: - branches: - - master - tags: - - '[0-9]+.[0-9]+*' - - -# ------------------------------------------------------------------------------------------------- -# What to run -# ------------------------------------------------------------------------------------------------- -jobs: - smoke_linux: - - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - php: - - "5.3" - - "5.4" - - "5.5" - - "5.6" - - "7.0" - - "7.1" - - "7.2" - - "7.3" - - "7.4" - - "8.0" - - "8.1" - - "8.2" - httpd: - - "apache-2.2" - - "apache-2.4" - - "nginx-stable" - - "nginx-mainline" - - name: "[PHP ${{ matrix.php }}] vs [${{ matrix.httpd }}]" - steps: - - # ------------------------------------------------------------ - # Checkout repository - # ------------------------------------------------------------ - - name: Checkout repository - uses: actions/checkout@v1 - - - name: Show environment - shell: bash - run: | - env - - - name: Show network - shell: bash - run: | - netstat -an || true - ss -tlun || true - - - name: Show Docker version - shell: bash - run: | - docker version - - # ------------------------------------------------------------ - # Setup - # ------------------------------------------------------------ - - name: Configure - shell: bash - run: | - cd .tests/ - # Set the two candidates to test against - make configure KEY=PHP_SERVER VAL=${PHP} - make configure KEY=HTTPD_SERVER VAL=${HTTPD} - # 3306 is taken, so chose another one - make configure KEY=HOST_PORT_MYSQL VAL=3307 - env: - PHP: ${{ matrix.php }} - HTTPD: ${{ matrix.httpd }} - - - name: Pull images - shell: bash - run: | - cd .tests/ - make pull - - - name: Startup - shell: bash - run: | - cd .tests/ - make start - - - name: Docker logs - shell: bash - run: | - cd .tests/ - make logs - - # ------------------------------------------------------------ - # Run tests - # ------------------------------------------------------------ - - name: Test Modules - shell: bash - run: | - cd .tests/ - make test-smoke-modules - if: success() || failure() - - - name: Test Config - shell: bash - run: | - cd .tests/ - make test-smoke-config - if: success() || failure() - - - name: Test Intranet - shell: bash - run: | - cd .tests/ - make test-smoke-intranet - if: success() || failure() - - - name: Test Vendors - shell: bash - run: | - cd .tests/ - make test-smoke-vendors - if: success() || failure() - - - name: Test Vhosts - shell: bash - run: | - cd .tests/ - make test-smoke-vhosts - if: success() || failure() - - - name: Test Reverse Proxy - shell: bash - run: | - cd .tests/ - make test-smoke-rproxies - if: success() || failure() - - - name: Test SSL - shell: bash - run: | - cd .tests/ - make test-smoke-ssl - if: success() || failure() - - - name: Test Bind - shell: bash - run: | - cd .tests/ - make test-smoke-bind - if: success() || failure() - - - name: Test Autostart - shell: bash - run: | - cd .tests/ - make test-smoke-autostart - if: success() || failure() - - - name: "Test Framework: CakePHP" - shell: bash - run: | - cd .tests/ - make test-smoke-framework-cakephp - if: success() || failure() - - - name: "Test Framework: Drupal" - shell: bash - run: | - cd .tests/ - make test-smoke-framework-drupal - if: success() || failure() - - - name: "Test Framework: Wordpress" - shell: bash - run: | - cd .tests/ - make test-smoke-framework-wordpress - if: success() || failure() - - - name: "Test Container" - shell: bash - run: | - retry() { - for n in $(seq 5); do - echo "[${n}/5] ${*}"; - if eval "${*}"; then - echo "[SUCC] ${n}/5"; - return 0; - fi; - sleep 5; - echo "[FAIL] ${n}/5"; - done; - return 1; - } - cd .tests/ - retry make test-smoke-container - if: success() || failure() - - # ------------------------------------------------------------ - # Finish - # ------------------------------------------------------------ - - - name: "Finish: Docker logs" - shell: bash - run: | - cd .tests/ - make logs - if: success() || failure() diff --git a/.github/workflows/old/ci-smoke-macos.yml.off b/.github/workflows/old/ci-smoke-macos.yml.off deleted file mode 100644 index ce84531f..00000000 --- a/.github/workflows/old/ci-smoke-macos.yml.off +++ /dev/null @@ -1,262 +0,0 @@ ---- - -# ------------------------------------------------------------------------------------------------- -# Job Name -# ------------------------------------------------------------------------------------------------- -name: MacOS - - -# ------------------------------------------------------------------------------------------------- -# When to run -# ------------------------------------------------------------------------------------------------- -on: - # Runs on Pull Requests - pull_request: - - # Runs on master Branch and Tags - push: - branches: - - master - tags: - - '[0-9]+.[0-9]+*' - - -# ------------------------------------------------------------------------------------------------- -# What to run -# ------------------------------------------------------------------------------------------------- -jobs: - smoke_macos: - - runs-on: macos-latest - - strategy: - fail-fast: false - matrix: - php: - - "7.2" - httpd: - - "nginx-stable" - - name: "[PHP ${{ matrix.php }}] vs [${{ matrix.httpd }}]" - steps: - - # ------------------------------------------------------------ - # Checkout repository - # ------------------------------------------------------------ - - name: Checkout repository - uses: actions/checkout@v1 - - - name: "[Pre] Install Requirements" - shell: bash - run: | - brew install coreutils - brew install bash - brew install socat - - - name: "[Pre] Install Docker" - shell: bash - run: | - brew install docker docker-machine-driver-xhyve - sudo chown root:wheel $(brew --prefix)/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve - sudo chmod u+s $(brew --prefix)/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve - while ! docker-machine create --driver xhyve default; do - docker-machine rm -f default - sleep 1; - done - # Export variable (this target) - eval "$(docker-machine env default)" - DOCKER_TLS_VERIFY="$( docker-machine env default | grep DOCKER_TLS_VERIFY | sed -e 's/.*="//g' -e 's/"$//g' )" - DOCKER_HOST="$( docker-machine env default | grep DOCKER_HOST | sed -e 's/.*="//g' -e 's/"$//g' )" - DOCKER_CERT_PATH="$( docker-machine env default | grep DOCKER_CERT_PATH | sed -e 's/.*="//g' -e 's/"$//g' )" - DOCKER_MACHINE_NAME="$( docker-machine env default | grep DOCKER_MACHINE_NAME | sed -e 's/.*="//g' -e 's/"$//g' )" - # Export variable (this other targets) - # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#set-an-environment-variable-set-env - echo ::set-env name=DOCKER_TLS_VERIFY::${DOCKER_TLS_VERIFY} - echo ::set-env name=DOCKER_HOST::${DOCKER_HOST} - echo ::set-env name=DOCKER_CERT_PATH::${DOCKER_CERT_PATH} - echo ::set-env name=DOCKER_MACHINE_NAME::${DOCKER_MACHINE_NAME} - # Show info - docker-machine ls - docker-machine env default - docker version - - - name: "[Pre] Install Docker Compose" - shell: bash - run: | - sudo curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose - sudo chmod +x /usr/local/bin/docker-compose - docker-compose version - - - name: "[Pre] Setup Docker machine" - shell: bash - run: | - # Setup DNS records - echo "127.0.0.1 localhost" | sudo tee -a /etc/hosts - - # Portforwarding from DOCKER_HOST to local - HOST="$( echo "${DOCKER_HOST}" | sed -e 's|^tcp://||g' -e 's|:.*||g' )" - echo "${HOST}" - sudo socat -s -d -d tcp-listen:80,reuseaddr,fork tcp:${HOST}:80 & - sleep 2 - sudo socat -s -d -d tcp-listen:443,reuseaddr,fork tcp:${HOST}:443 & - sleep 2 - if ! netstat -an | grep -i LISTEN | grep -E '(:80)|(\.80)\s'; then - netstat -an | grep -i LISTEN; - false; - fi - if ! netstat -an | grep -i LISTEN | grep -E '(:443)|(\.443)\s'; then - netstat -an | grep -i LISTEN; - false; - fi - host localhost - curl -sS -I 'http://localhost:80' || true - curl -sS -I 'https://localhost:443' || true - - - name: "[Info] Show environment" - shell: bash - run: | - env - if: success() || failure() - - - name: "[Info] Show network" - shell: bash - run: | - netstat -an || true - ss -tlun || true - if: success() || failure() - - # ------------------------------------------------------------ - # Setup - # ------------------------------------------------------------ - - name: Configure - shell: bash - run: | - cd .tests/ - # Set the two candidates to test against - make configure KEY=PHP_SERVER VAL=${PHP} - make configure KEY=HTTPD_SERVER VAL=${HTTPD} - # 3306 is taken, so chose another one - make configure KEY=HOST_PORT_MYSQL VAL=3307 - env: - PHP: ${{ matrix.php }} - HTTPD: ${{ matrix.httpd }} - if: success() || failure() - - - name: Pull images - shell: bash - run: | - cd .tests/ - make pull - if: success() || failure() - - - name: Startup - shell: bash - run: | - cd .tests/ - make start - if: success() || failure() - - - name: Docker logs - shell: bash - run: | - cd .tests/ - make logs - if: success() || failure() - - # ------------------------------------------------------------ - # Run tests - # ------------------------------------------------------------ - - name: Test Modules - shell: bash - run: | - cd .tests/ - make test-smoke-modules - if: success() || failure() - - - name: Test Config - shell: bash - run: | - cd .tests/ - make test-smoke-config - if: success() || failure() - - - name: Test Intranet - shell: bash - run: | - cd .tests/ - make test-smoke-intranet - if: success() || failure() - - - name: Test Vendors - shell: bash - run: | - cd .tests/ - make test-smoke-vendors - if: success() || failure() - - - name: Test Vhosts - shell: bash - run: | - cd .tests/ - make test-smoke-vhosts - if: success() || failure() - - - name: Test Reverse Proxy - shell: bash - run: | - cd .tests/ - make test-smoke-rproxies - if: success() || failure() - - - name: Test SSL - shell: bash - run: | - cd .tests/ - make test-smoke-ssl - if: success() || failure() - - - name: Test Bind - shell: bash - run: | - cd .tests/ - make test-smoke-bind - if: success() || failure() - - - name: Test Autostart - shell: bash - run: | - cd .tests/ - make test-smoke-autostart - if: success() || failure() - - - name: "Test Framework: CakePHP" - shell: bash - run: | - cd .tests/ - make test-smoke-framework-cakephp - if: success() || failure() - - - name: "Test Framework: Drupal" - shell: bash - run: | - cd .tests/ - make test-smoke-framework-drupal - if: success() || failure() - - - name: "Test Framework: Wordpress" - shell: bash - run: | - cd .tests/ - make test-smoke-framework-wordpress - if: success() || failure() - - # ------------------------------------------------------------ - # Finish - # ------------------------------------------------------------ - - - name: "[Post] Docker logs" - shell: bash - run: | - cd .tests/ - make logs - if: success() || failure() diff --git a/.github/workflows/old/test-config.yml b/.github/workflows/old/test-config.yml deleted file mode 100644 index d5798bb5..00000000 --- a/.github/workflows/old/test-config.yml +++ /dev/null @@ -1,242 +0,0 @@ ---- - -# ------------------------------------------------------------------------------------------------- -# Job Name -# ------------------------------------------------------------------------------------------------- -name: Config - - -# ------------------------------------------------------------------------------------------------- -# When to run -# ------------------------------------------------------------------------------------------------- -on: - # Runs on Pull Requests - pull_request: - - # Runs on master Branch and Tags - push: - branches: - - master - tags: - - '[0-9]+.[0-9]+*' - - -# ------------------------------------------------------------------------------------------------- -# What to run -# ------------------------------------------------------------------------------------------------- -jobs: - test_config: - - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - php: - - "5.3" - - "5.4" - - "5.5" - - "5.6" - - "7.0" - - "7.1" - - "7.2" - - "7.3" - - "7.4" - - "8.0" - - "8.1" - - "8.2" - httpd: - - "apache-2.2" - - "apache-2.4" - - "nginx-stable" - - "nginx-mainline" - - name: "[PHP ${{ matrix.php }}] vs [${{ matrix.httpd }}]" - steps: - - # ------------------------------------------------------------ - # Checkout repository - # ------------------------------------------------------------ - - name: Checkout repository - uses: actions/checkout@v1 - - - name: Show environment - shell: bash - run: | - env - - - name: Show network - shell: bash - run: | - netstat -an || true - ss -tlun || true - - - name: Show Docker version - shell: bash - run: | - docker version - - # ------------------------------------------------------------ - # Setup - # ------------------------------------------------------------ - - name: Configure - shell: bash - run: | - cd .tests/ - # Set the two candidates to test against - make configure KEY=PHP_SERVER VAL=${PHP} - make configure KEY=HTTPD_SERVER VAL=${HTTPD} - # 3306 is taken, so chose another one - make configure KEY=HOST_PORT_MYSQL VAL=3307 - - # Test full customization - make configure KEY=DEBUG_COMPOSE_ENTRYPOINT VAL="$(( RANDOM % 3 ))" - make configure KEY=DOCKER_LOGS VAL="$(( RANDOM % 1 ))" - make configure KEY=TLD_SUFFIX VAL=loc2 - make configure KEY=TIMEZONE VAL='Europe/Berlin' - make configure KEY=PHP_MODULES_DISABLE VAL= - make configure KEY=HTTPD_TEMPLATE_DIR VAL=.config - make configure KEY=HOST_PORT_HTTPD VAL=8080 - make configure KEY=HOST_PORT_HTTPD_SSL VAL=8443 - make configure KEY=MYSQL_ROOT_PASSWORD VAL=mysqlpass - make configure KEY=PGSQL_ROOT_USER VAL=pgroot - make configure KEY=PGSQL_ROOT_PASSWORD VAL=pgsqlpass - make configure KEY=DEVILBOX_VENDOR_PHPMYADMIN_AUTOLOGIN VAL=0 - env: - PHP: ${{ matrix.php }} - HTTPD: ${{ matrix.httpd }} - - - name: Pull images - shell: bash - run: | - cd .tests/ - make pull - - - name: Startup - shell: bash - run: | - cd .tests/ - make start - - - name: Docker logs - shell: bash - run: | - cd .tests/ - make logs - - # ------------------------------------------------------------ - # Run tests - # ------------------------------------------------------------ - - name: Test Modules - shell: bash - run: | - cd .tests/ - make test-smoke-modules - if: success() || failure() - - - name: Test Config - shell: bash - run: | - cd .tests/ - make test-smoke-config - if: success() || failure() - - - name: Test Intranet - shell: bash - run: | - cd .tests/ - make test-smoke-intranet - if: success() || failure() - - - name: Test Vendors - shell: bash - run: | - cd .tests/ - make test-smoke-vendors - if: success() || failure() - - - name: Test Vhosts - shell: bash - run: | - cd .tests/ - make test-smoke-vhosts - if: success() || failure() - - - name: Test Reverse Proxy - shell: bash - run: | - cd .tests/ - make test-smoke-rproxies - if: success() || failure() - - - name: Test SSL - shell: bash - run: | - cd .tests/ - make test-smoke-ssl - if: success() || failure() - - - name: Test Bind - shell: bash - run: | - cd .tests/ - make test-smoke-bind - if: success() || failure() - - - name: Test Autostart - shell: bash - run: | - cd .tests/ - make test-smoke-autostart - if: success() || failure() - - - name: "Test Framework: CakePHP" - shell: bash - run: | - cd .tests/ - make test-smoke-framework-cakephp - if: success() || failure() - - - name: "Test Framework: Drupal" - shell: bash - run: | - cd .tests/ - make test-smoke-framework-drupal - if: success() || failure() - - - name: "Test Framework: Wordpress" - shell: bash - run: | - cd .tests/ - make test-smoke-framework-wordpress - if: success() || failure() - - - name: "Test Container" - shell: bash - run: | - retry() { - for n in $(seq 5); do - echo "[${n}/5] ${*}"; - if eval "${*}"; then - echo "[SUCC] ${n}/t"; - return 0; - fi; - sleep 5; - echo "[FAIL] ${n}/5"; - done; - return 1; - } - cd .tests/ - retry make test-smoke-container - if: success() || failure() - - # ------------------------------------------------------------ - # Finish - # ------------------------------------------------------------ - - - name: "Finish: Docker logs" - shell: bash - run: | - cd .tests/ - make logs - if: success() || failure() diff --git a/.github/workflows/old/test-versions.yml b/.github/workflows/old/test-versions.yml deleted file mode 100644 index f3a69bd6..00000000 --- a/.github/workflows/old/test-versions.yml +++ /dev/null @@ -1,287 +0,0 @@ ---- - -# ------------------------------------------------------------------------------------------------- -# Job Name -# ------------------------------------------------------------------------------------------------- -name: Versions - - -# ------------------------------------------------------------------------------------------------- -# When to run -# ------------------------------------------------------------------------------------------------- -on: - # Runs on Pull Requests - pull_request: - - # Runs on master Branch and Tags - push: - branches: - - master - tags: - - '[0-9]+.[0-9]+*' - - -# ------------------------------------------------------------------------------------------------- -# What to run -# ------------------------------------------------------------------------------------------------- -jobs: - smoke_version: - - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - version: - - "MYSQL_SERVER=mysql-5.5" - - "MYSQL_SERVER=mysql-5.6" - - "MYSQL_SERVER=mysql-5.7" - - "MYSQL_SERVER=mysql-8.0" - - "MYSQL_SERVER=mariadb-5.5" - - "MYSQL_SERVER=mariadb-10.0" - - "MYSQL_SERVER=mariadb-10.1" - - "MYSQL_SERVER=mariadb-10.2" - - "MYSQL_SERVER=mariadb-10.3" - - "MYSQL_SERVER=mariadb-10.4" - - "MYSQL_SERVER=mariadb-10.5" - - "MYSQL_SERVER=mariadb-10.6" - - "MYSQL_SERVER=mariadb-10.7" - - "MYSQL_SERVER=mariadb-10.8" - - "MYSQL_SERVER=percona-5.5" - - "MYSQL_SERVER=percona-5.6" - - "MYSQL_SERVER=percona-5.7" - - "MYSQL_SERVER=percona-8.0" - - - "PGSQL_SERVER=9.0" - - "PGSQL_SERVER=9.1" - - "PGSQL_SERVER=9.2" - - "PGSQL_SERVER=9.2-alpine" - - "PGSQL_SERVER=9.3" - - "PGSQL_SERVER=9.3-alpine" - - "PGSQL_SERVER=9.4" - - "PGSQL_SERVER=9.4-alpine" - - "PGSQL_SERVER=9.5" - - "PGSQL_SERVER=9.5-alpine" - - "PGSQL_SERVER=9.6" - - "PGSQL_SERVER=9.6-alpine" - - "PGSQL_SERVER=10" - - "PGSQL_SERVER=10-alpine" - - "PGSQL_SERVER=11" - - "PGSQL_SERVER=11-alpine" - - "PGSQL_SERVER=12" - - "PGSQL_SERVER=12-alpine" - - "PGSQL_SERVER=13" - - "PGSQL_SERVER=13-alpine" - - "PGSQL_SERVER=14" - - "PGSQL_SERVER=14-alpine" - - "PGSQL_SERVER=latest" - - "PGSQL_SERVER=alpine" - - - "REDIS_SERVER=2.8" - - "REDIS_SERVER=3.0" - - "REDIS_SERVER=3.0-alpine" - - "REDIS_SERVER=3.2" - - "REDIS_SERVER=3.2-alpine" - - "REDIS_SERVER=4.0" - - "REDIS_SERVER=4.0-alpine" - - "REDIS_SERVER=5.0" - - "REDIS_SERVER=5.0-alpine" - - "REDIS_SERVER=6.0" - - "REDIS_SERVER=6.0-alpine" - - "REDIS_SERVER=6.2" - - "REDIS_SERVER=6.2-alpine" - - "REDIS_SERVER=latest" - - "REDIS_SERVER=alpine" - - - "MEMCD_SERVER=1.4" - - "MEMCD_SERVER=1.4-alpine" - - "MEMCD_SERVER=1.5" - - "MEMCD_SERVER=1.5-alpine" - - "MEMCD_SERVER=1.6" - - "MEMCD_SERVER=1.6-alpine" - - "MEMCD_SERVER=latest" - - "MEMCD_SERVER=alpine" - - - "MONGO_SERVER=2.8" - - "MONGO_SERVER=3.0" - - "MONGO_SERVER=3.2" - - "MONGO_SERVER=3.4" - - "MONGO_SERVER=3.6" - - "MONGO_SERVER=4.0" - - "MONGO_SERVER=4.2" - - "MONGO_SERVER=4.4" - - "MONGO_SERVER=5.0" - - "MONGO_SERVER=latest" - name: "[${{ matrix.version }}]" - steps: - - # ------------------------------------------------------------ - # Checkout repository - # ------------------------------------------------------------ - - name: Checkout repository - uses: actions/checkout@v1 - - - name: Show environment - shell: bash - run: | - env - - - name: Show network - shell: bash - run: | - netstat -an || true - ss -tlun || true - - - name: Show Docker version - shell: bash - run: | - docker version - - # ------------------------------------------------------------ - # Setup - # ------------------------------------------------------------ - - name: Configure - shell: bash - run: | - cd .tests/ - # Set the matrix version - make configure KEY="${VERSION//=*/}" VAL="${VERSION//*=}" - # 3306 is taken, so chose another one - make configure KEY=HOST_PORT_MYSQL VAL=3307 - env: - VERSION: ${{ matrix.version }} - - - name: Pull images - shell: bash - run: | - cd .tests/ - make pull - - - name: Startup - shell: bash - run: | - cd .tests/ - make start - - - name: Docker logs - shell: bash - run: | - cd .tests/ - make logs - - # ------------------------------------------------------------ - # Run tests - # ------------------------------------------------------------ - - name: Test Modules - shell: bash - run: | - cd .tests/ - make test-smoke-modules - if: success() || failure() - - - name: Test Config - shell: bash - run: | - cd .tests/ - make test-smoke-config - if: success() || failure() - - - name: Test Intranet - shell: bash - run: | - cd .tests/ - make test-smoke-intranet - if: success() || failure() - - - name: Test Vendors - shell: bash - run: | - cd .tests/ - make test-smoke-vendors - if: success() || failure() - - - name: Test Vhosts - shell: bash - run: | - cd .tests/ - make test-smoke-vhosts - if: success() || failure() - - - name: Test Reverse Proxy - shell: bash - run: | - cd .tests/ - make test-smoke-rproxies - if: success() || failure() - - - name: Test SSL - shell: bash - run: | - cd .tests/ - make test-smoke-ssl - if: success() || failure() - - - name: Test Bind - shell: bash - run: | - cd .tests/ - make test-smoke-bind - if: success() || failure() - - - name: Test Autostart - shell: bash - run: | - cd .tests/ - make test-smoke-autostart - if: success() || failure() - - - name: "Test Framework: CakePHP" - shell: bash - run: | - cd .tests/ - make test-smoke-framework-cakephp - if: success() || failure() - - - name: "Test Framework: Drupal" - shell: bash - run: | - cd .tests/ - make test-smoke-framework-drupal - if: success() || failure() - - - name: "Test Framework: Wordpress" - shell: bash - run: | - cd .tests/ - make test-smoke-framework-wordpress - if: success() || failure() - - - name: "Test Container" - shell: bash - run: | - retry() { - for n in $(seq 5); do - echo "[${n}/5] ${*}"; - if eval "${*}"; then - echo "[SUCC] ${n}/t"; - return 0; - fi; - sleep 5; - echo "[FAIL] ${n}/5"; - done; - return 1; - } - cd .tests/ - retry make test-smoke-container - if: success() || failure() - - # ------------------------------------------------------------ - # Finish - # ------------------------------------------------------------ - - - name: "Finish: Docker logs" - shell: bash - run: | - cd .tests/ - make logs - if: success() || failure() diff --git a/.github/workflows/params-config.yml b/.github/workflows/params-config.yml new file mode 100644 index 00000000..4f28e4cf --- /dev/null +++ b/.github/workflows/params-config.yml @@ -0,0 +1,97 @@ +--- + +# ------------------------------------------------------------------------------------------------- +# Job Name +# ------------------------------------------------------------------------------------------------- +name: params + + +# ------------------------------------------------------------------------------------------------- +# Custom Variables +# ------------------------------------------------------------------------------------------------- +env: + MATRIX: >- + [ + {"PHP_SERVER": "PHP 5.3", "HTTPD_SERVER": "apache-2.2"}, + {"PHP_SERVER": "PHP 5.4", "HTTPD_SERVER": "apache-2.2"}, + {"PHP_SERVER": "PHP 5.5", "HTTPD_SERVER": "apache-2.2"}, + {"PHP_SERVER": "PHP 5.6", "HTTPD_SERVER": "apache-2.2"}, + {"PHP_SERVER": "PHP 7.0", "HTTPD_SERVER": "apache-2.2"}, + {"PHP_SERVER": "PHP 7.1", "HTTPD_SERVER": "apache-2.2"}, + {"PHP_SERVER": "PHP 7.2", "HTTPD_SERVER": "apache-2.2"}, + {"PHP_SERVER": "PHP 7.3", "HTTPD_SERVER": "apache-2.2"}, + {"PHP_SERVER": "PHP 7.4", "HTTPD_SERVER": "apache-2.2"}, + {"PHP_SERVER": "PHP 8.0", "HTTPD_SERVER": "apache-2.2"}, + {"PHP_SERVER": "PHP 8.1", "HTTPD_SERVER": "apache-2.2"}, + {"PHP_SERVER": "PHP 8.2", "HTTPD_SERVER": "apache-2.2"}, + + {"PHP_SERVER": "PHP 5.3", "HTTPD_SERVER": "apache-2.4"}, + {"PHP_SERVER": "PHP 5.4", "HTTPD_SERVER": "apache-2.4"}, + {"PHP_SERVER": "PHP 5.5", "HTTPD_SERVER": "apache-2.4"}, + {"PHP_SERVER": "PHP 5.6", "HTTPD_SERVER": "apache-2.4"}, + {"PHP_SERVER": "PHP 7.0", "HTTPD_SERVER": "apache-2.4"}, + {"PHP_SERVER": "PHP 7.1", "HTTPD_SERVER": "apache-2.4"}, + {"PHP_SERVER": "PHP 7.2", "HTTPD_SERVER": "apache-2.4"}, + {"PHP_SERVER": "PHP 7.3", "HTTPD_SERVER": "apache-2.4"}, + {"PHP_SERVER": "PHP 7.4", "HTTPD_SERVER": "apache-2.4"}, + {"PHP_SERVER": "PHP 8.0", "HTTPD_SERVER": "apache-2.4"}, + {"PHP_SERVER": "PHP 8.1", "HTTPD_SERVER": "apache-2.4"}, + {"PHP_SERVER": "PHP 8.2", "HTTPD_SERVER": "apache-2.4"}, + + {"PHP_SERVER": "PHP 5.3", "HTTPD_SERVER": "nginx-stable"}, + {"PHP_SERVER": "PHP 5.4", "HTTPD_SERVER": "nginx-stable"}, + {"PHP_SERVER": "PHP 5.5", "HTTPD_SERVER": "nginx-stable"}, + {"PHP_SERVER": "PHP 5.6", "HTTPD_SERVER": "nginx-stable"}, + {"PHP_SERVER": "PHP 7.0", "HTTPD_SERVER": "nginx-stable"}, + {"PHP_SERVER": "PHP 7.1", "HTTPD_SERVER": "nginx-stable"}, + {"PHP_SERVER": "PHP 7.2", "HTTPD_SERVER": "nginx-stable"}, + {"PHP_SERVER": "PHP 7.3", "HTTPD_SERVER": "nginx-stable"}, + {"PHP_SERVER": "PHP 7.4", "HTTPD_SERVER": "nginx-stable"}, + {"PHP_SERVER": "PHP 8.0", "HTTPD_SERVER": "nginx-stable"}, + {"PHP_SERVER": "PHP 8.1", "HTTPD_SERVER": "nginx-stable"}, + {"PHP_SERVER": "PHP 8.2", "HTTPD_SERVER": "nginx-stable"}, + + {"PHP_SERVER": "PHP 5.3", "HTTPD_SERVER": "nginx-mainline"}, + {"PHP_SERVER": "PHP 5.4", "HTTPD_SERVER": "nginx-mainline"}, + {"PHP_SERVER": "PHP 5.5", "HTTPD_SERVER": "nginx-mainline"}, + {"PHP_SERVER": "PHP 5.6", "HTTPD_SERVER": "nginx-mainline"}, + {"PHP_SERVER": "PHP 7.0", "HTTPD_SERVER": "nginx-mainline"}, + {"PHP_SERVER": "PHP 7.1", "HTTPD_SERVER": "nginx-mainline"}, + {"PHP_SERVER": "PHP 7.2", "HTTPD_SERVER": "nginx-mainline"}, + {"PHP_SERVER": "PHP 7.3", "HTTPD_SERVER": "nginx-mainline"}, + {"PHP_SERVER": "PHP 7.4", "HTTPD_SERVER": "nginx-mainline"}, + {"PHP_SERVER": "PHP 8.0", "HTTPD_SERVER": "nginx-mainline"}, + {"PHP_SERVER": "PHP 8.1", "HTTPD_SERVER": "nginx-mainline"}, + {"PHP_SERVER": "PHP 8.2", "HTTPD_SERVER": "nginx-mainline"} + ] + + +# ------------------------------------------------------------------------------------------------- +# 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-version-memcd.yml new file mode 100644 index 00000000..82ffdef1 --- /dev/null +++ b/.github/workflows/params-version-memcd.yml @@ -0,0 +1,54 @@ +--- + +# ------------------------------------------------------------------------------------------------- +# Job Name +# ------------------------------------------------------------------------------------------------- +name: params + + +# ------------------------------------------------------------------------------------------------- +# Custom Variables +# ------------------------------------------------------------------------------------------------- +env: + MATRIX: >- + [ + {"MEMCD_SERVER": "Memcd 1.4"}, + {"MEMCD_SERVER": "Memcd 1.4-alpine"}, + {"MEMCD_SERVER": "Memcd 1.5"}, + {"MEMCD_SERVER": "Memcd 1.5-alpine"}, + {"MEMCD_SERVER": "Memcd 1.6"}, + {"MEMCD_SERVER": "Memcd 1.6-alpine"}, + {"MEMCD_SERVER": "Memcd latest"}, + {"MEMCD_SERVER": "Memcd alpine"} + ] + + +# ------------------------------------------------------------------------------------------------- +# 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-mongo.yml b/.github/workflows/params-version-mongo.yml new file mode 100644 index 00000000..11caa1a5 --- /dev/null +++ b/.github/workflows/params-version-mongo.yml @@ -0,0 +1,56 @@ +--- + +# ------------------------------------------------------------------------------------------------- +# Job Name +# ------------------------------------------------------------------------------------------------- +name: params + + +# ------------------------------------------------------------------------------------------------- +# Custom Variables +# ------------------------------------------------------------------------------------------------- +env: + MATRIX: >- + [ + {"MONGO_SERVER": "Mongo 2.8"}, + {"MONGO_SERVER": "Mongo 3.0"}, + {"MONGO_SERVER": "Mongo 3.2"}, + {"MONGO_SERVER": "Mongo 3.4"}, + {"MONGO_SERVER": "Mongo 3.6"}, + {"MONGO_SERVER": "Mongo 4.0"}, + {"MONGO_SERVER": "Mongo 4.2"}, + {"MONGO_SERVER": "Mongo 4.4"}, + {"MONGO_SERVER": "Mongo 5.0"}, + {"MONGO_SERVER": "Mongo latest"} + ] + + +# ------------------------------------------------------------------------------------------------- +# 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-mysql.yml b/.github/workflows/params-version-mysql.yml new file mode 100644 index 00000000..c255618d --- /dev/null +++ b/.github/workflows/params-version-mysql.yml @@ -0,0 +1,64 @@ +--- + +# ------------------------------------------------------------------------------------------------- +# Job Name +# ------------------------------------------------------------------------------------------------- +name: params + + +# ------------------------------------------------------------------------------------------------- +# Custom Variables +# ------------------------------------------------------------------------------------------------- +env: + MATRIX: >- + [ + {"MYSQL_SERVER": "mysql-5.5"}, + {"MYSQL_SERVER": "mysql-5.6"}, + {"MYSQL_SERVER": "mysql-5.7"}, + {"MYSQL_SERVER": "mysql-8.0"}, + {"MYSQL_SERVER": "percona-5.5"}, + {"MYSQL_SERVER": "percona-5.6"}, + {"MYSQL_SERVER": "percona-5.7"}, + {"MYSQL_SERVER": "percona-8.0"}, + {"MYSQL_SERVER": "mariadb-5.5"}, + {"MYSQL_SERVER": "mariadb-10.0"}, + {"MYSQL_SERVER": "mariadb-10.1"}, + {"MYSQL_SERVER": "mariadb-10.2"}, + {"MYSQL_SERVER": "mariadb-10.3"}, + {"MYSQL_SERVER": "mariadb-10.4"}, + {"MYSQL_SERVER": "mariadb-10.5"}, + {"MYSQL_SERVER": "mariadb-10.6"}, + {"MYSQL_SERVER": "mariadb-10.7"}, + {"MYSQL_SERVER": "mariadb-10.8"} + ] + + +# ------------------------------------------------------------------------------------------------- +# 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-versions.yml b/.github/workflows/params-version-pgsql.yml similarity index 52% rename from .github/workflows/params-versions.yml rename to .github/workflows/params-version-pgsql.yml index cf806189..1d9a8630 100644 --- a/.github/workflows/params-versions.yml +++ b/.github/workflows/params-version-pgsql.yml @@ -12,25 +12,6 @@ name: params env: MATRIX: >- [ - {"MYSQL_SERVER": "mysql-5.5"}, - {"MYSQL_SERVER": "mysql-5.6"}, - {"MYSQL_SERVER": "mysql-5.7"}, - {"MYSQL_SERVER": "mysql-8.0"}, - {"MYSQL_SERVER": "percona-5.5"}, - {"MYSQL_SERVER": "percona-5.6"}, - {"MYSQL_SERVER": "percona-5.7"}, - {"MYSQL_SERVER": "percona-8.0"}, - {"MYSQL_SERVER": "mariadb-5.5"}, - {"MYSQL_SERVER": "mariadb-10.0"}, - {"MYSQL_SERVER": "mariadb-10.1"}, - {"MYSQL_SERVER": "mariadb-10.2"}, - {"MYSQL_SERVER": "mariadb-10.3"}, - {"MYSQL_SERVER": "mariadb-10.4"}, - {"MYSQL_SERVER": "mariadb-10.5"}, - {"MYSQL_SERVER": "mariadb-10.6"}, - {"MYSQL_SERVER": "mariadb-10.7"}, - {"MYSQL_SERVER": "mariadb-10.8"}, - {"PGSQL_SERVER": "PgSQL 9.0"}, {"PGSQL_SERVER": "PgSQL 9.1"}, {"PGSQL_SERVER": "PgSQL 9.2"}, @@ -54,43 +35,7 @@ env: {"PGSQL_SERVER": "PgSQL 14"}, {"PGSQL_SERVER": "PgSQL 14-alpine"}, {"PGSQL_SERVER": "PgSQL latest"}, - {"PGSQL_SERVER": "PgSQL alpine"}, - - {"REDIS_SERVER": "Redis 2.8"}, - {"REDIS_SERVER": "Redis 3.0"}, - {"REDIS_SERVER": "Redis 3.0-alpine"}, - {"REDIS_SERVER": "Redis 3.2"}, - {"REDIS_SERVER": "Redis 3.2-alpine"}, - {"REDIS_SERVER": "Redis 4.0"}, - {"REDIS_SERVER": "Redis 4.0-alpine"}, - {"REDIS_SERVER": "Redis 5.0"}, - {"REDIS_SERVER": "Redis 5.0-alpine"}, - {"REDIS_SERVER": "Redis 6.0"}, - {"REDIS_SERVER": "Redis 6.0-alpine"}, - {"REDIS_SERVER": "Redis 6.2"}, - {"REDIS_SERVER": "Redis 6.2-alpine"}, - {"REDIS_SERVER": "Redis latest"}, - {"REDIS_SERVER": "Redis alpine"}, - - {"MEMCD_SERVER": "Memcd 1.4"}, - {"MEMCD_SERVER": "Memcd 1.4-alpine"}, - {"MEMCD_SERVER": "Memcd 1.5"}, - {"MEMCD_SERVER": "Memcd 1.5-alpine"}, - {"MEMCD_SERVER": "Memcd 1.6"}, - {"MEMCD_SERVER": "Memcd 1.6-alpine"}, - {"MEMCD_SERVER": "Memcd latest"}, - {"MEMCD_SERVER": "Memcd alpine"}, - - {"MONGO_SERVER": "Mongo 2.8"}, - {"MONGO_SERVER": "Mongo 3.0"}, - {"MONGO_SERVER": "Mongo 3.2"}, - {"MONGO_SERVER": "Mongo 3.4"}, - {"MONGO_SERVER": "Mongo 3.6"}, - {"MONGO_SERVER": "Mongo 4.0"}, - {"MONGO_SERVER": "Mongo 4.2"}, - {"MONGO_SERVER": "Mongo 4.4"}, - {"MONGO_SERVER": "Mongo 5.0"}, - {"MONGO_SERVER": "Mongo latest"} + {"PGSQL_SERVER": "PgSQL alpine"} ] diff --git a/.github/workflows/params-version-redis.yml b/.github/workflows/params-version-redis.yml new file mode 100644 index 00000000..212376bb --- /dev/null +++ b/.github/workflows/params-version-redis.yml @@ -0,0 +1,61 @@ +--- + +# ------------------------------------------------------------------------------------------------- +# Job Name +# ------------------------------------------------------------------------------------------------- +name: params + + +# ------------------------------------------------------------------------------------------------- +# Custom Variables +# ------------------------------------------------------------------------------------------------- +env: + MATRIX: >- + [ + {"REDIS_SERVER": "Redis 2.8"}, + {"REDIS_SERVER": "Redis 3.0"}, + {"REDIS_SERVER": "Redis 3.0-alpine"}, + {"REDIS_SERVER": "Redis 3.2"}, + {"REDIS_SERVER": "Redis 3.2-alpine"}, + {"REDIS_SERVER": "Redis 4.0"}, + {"REDIS_SERVER": "Redis 4.0-alpine"}, + {"REDIS_SERVER": "Redis 5.0"}, + {"REDIS_SERVER": "Redis 5.0-alpine"}, + {"REDIS_SERVER": "Redis 6.0"}, + {"REDIS_SERVER": "Redis 6.0-alpine"}, + {"REDIS_SERVER": "Redis 6.2"}, + {"REDIS_SERVER": "Redis 6.2-alpine"}, + {"REDIS_SERVER": "Redis latest"}, + {"REDIS_SERVER": "Redis alpine"} + ] + + +# ------------------------------------------------------------------------------------------------- +# 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/test-config.yml b/.github/workflows/test-config.yml new file mode 100644 index 00000000..135029cc --- /dev/null +++ b/.github/workflows/test-config.yml @@ -0,0 +1,52 @@ +--- + +# ------------------------------------------------------------------------------------------------- +# Job Name +# ------------------------------------------------------------------------------------------------- +name: Config + + +# ------------------------------------------------------------------------------------------------- +# 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-config.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-versions.yml b/.github/workflows/test-version-memcd.yml similarity index 65% rename from .github/workflows/test-versions.yml rename to .github/workflows/test-version-memcd.yml index ad780b54..d3cac3e4 100644 --- a/.github/workflows/test-versions.yml +++ b/.github/workflows/test-version-memcd.yml @@ -23,18 +23,31 @@ on: jobs: # ----------------------------------------------------------------------------------------------- - # (1/2) Determine parameter settings + # (1/3) Determine parameter settings # ----------------------------------------------------------------------------------------------- params: - uses: ./.github/workflows/params-versions.yml + uses: ./.github/workflows/params-version-memcd.yml # ----------------------------------------------------------------------------------------------- - # (2/2) Configure Build and Deploy Matrices + # (2/3) Test with default settings # ----------------------------------------------------------------------------------------------- - test: + 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-mongo.yml b/.github/workflows/test-version-mongo.yml new file mode 100644 index 00000000..3cb670f6 --- /dev/null +++ b/.github/workflows/test-version-mongo.yml @@ -0,0 +1,53 @@ +--- + +# ------------------------------------------------------------------------------------------------- +# Job Name +# ------------------------------------------------------------------------------------------------- +name: Versions + + +# ------------------------------------------------------------------------------------------------- +# 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-version-mongo.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-mysql.yml b/.github/workflows/test-version-mysql.yml new file mode 100644 index 00000000..04adeb6c --- /dev/null +++ b/.github/workflows/test-version-mysql.yml @@ -0,0 +1,53 @@ +--- + +# ------------------------------------------------------------------------------------------------- +# Job Name +# ------------------------------------------------------------------------------------------------- +name: Versions + + +# ------------------------------------------------------------------------------------------------- +# 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-version-mysql.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-pgsql.yml b/.github/workflows/test-version-pgsql.yml new file mode 100644 index 00000000..2d062b2c --- /dev/null +++ b/.github/workflows/test-version-pgsql.yml @@ -0,0 +1,53 @@ +--- + +# ------------------------------------------------------------------------------------------------- +# Job Name +# ------------------------------------------------------------------------------------------------- +name: Versions + + +# ------------------------------------------------------------------------------------------------- +# 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-version-pgsql.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-redis.yml b/.github/workflows/test-version-redis.yml new file mode 100644 index 00000000..83ba5210 --- /dev/null +++ b/.github/workflows/test-version-redis.yml @@ -0,0 +1,53 @@ +--- + +# ------------------------------------------------------------------------------------------------- +# Job Name +# ------------------------------------------------------------------------------------------------- +name: Versions + + +# ------------------------------------------------------------------------------------------------- +# 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-version-redis.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/zzz-reuse-tests.yml b/.github/workflows/zzz-reuse-tests.yml index 1f2532af..ca3d73f2 100644 --- a/.github/workflows/zzz-reuse-tests.yml +++ b/.github/workflows/zzz-reuse-tests.yml @@ -15,13 +15,18 @@ on: description: 'Apply customized .env configuration?' required: true type: boolean + operating_system: + description: 'The operating system to run on' + required: true + type: string + jobs: # ----------------------------------------------------------------------------------------------- # JOB: BUILD # ----------------------------------------------------------------------------------------------- test: - runs-on: ubuntu-latest + runs-on: ${{ inputs.operating_system }} strategy: fail-fast: false matrix: @@ -254,3 +259,12 @@ jobs: command: | make logs if: success() || failure() + + - name: "Finish: Shutdown" + uses: cytopia/shell-command-retry-action@v0.1.3 + with: + retries: 3 + workdir: "${{ github.workspace }}/.tests/" + command: | + make stop + if: success() || failure()