mirror of
https://github.com/cytopia/devilbox.git
synced 2024-12-19 04:47:52 +00:00
Test re-usable workflows
This commit is contained in:
parent
52689f435a
commit
71c73f7fb3
287
.github/workflows/old/test-versions.yml
vendored
Normal file
287
.github/workflows/old/test-versions.yml
vendored
Normal file
@ -0,0 +1,287 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# 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()
|
125
.github/workflows/params-versions.yml
vendored
Normal file
125
.github/workflows/params-versions.yml
vendored
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# 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"},
|
||||||
|
|
||||||
|
{"PGSQL_SERVER": "PgSQL 9.0"},
|
||||||
|
{"PGSQL_SERVER": "PgSQL 9.1"},
|
||||||
|
{"PGSQL_SERVER": "PgSQL 9.2"},
|
||||||
|
{"PGSQL_SERVER": "PgSQL 9.2-alpine"},
|
||||||
|
{"PGSQL_SERVER": "PgSQL 9.3"},
|
||||||
|
{"PGSQL_SERVER": "PgSQL 9.3-alpine"},
|
||||||
|
{"PGSQL_SERVER": "PgSQL 9.4"},
|
||||||
|
{"PGSQL_SERVER": "PgSQL 9.4-alpine"},
|
||||||
|
{"PGSQL_SERVER": "PgSQL 9.5"},
|
||||||
|
{"PGSQL_SERVER": "PgSQL 9.5-alpine"},
|
||||||
|
{"PGSQL_SERVER": "PgSQL 9.6"},
|
||||||
|
{"PGSQL_SERVER": "PgSQL 9.6-alpine"},
|
||||||
|
{"PGSQL_SERVER": "PgSQL 10"},
|
||||||
|
{"PGSQL_SERVER": "PgSQL 10-alpine"},
|
||||||
|
{"PGSQL_SERVER": "PgSQL 11"},
|
||||||
|
{"PGSQL_SERVER": "PgSQL 11-alpine"},
|
||||||
|
{"PGSQL_SERVER": "PgSQL 12"},
|
||||||
|
{"PGSQL_SERVER": "PgSQL 12-alpine"},
|
||||||
|
{"PGSQL_SERVER": "PgSQL 13"},
|
||||||
|
{"PGSQL_SERVER": "PgSQL 13-alpine"},
|
||||||
|
{"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"}
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# 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
|
275
.github/workflows/test-versions.yml
vendored
275
.github/workflows/test-versions.yml
vendored
@ -21,267 +21,20 @@ on:
|
|||||||
- '[0-9]+.[0-9]+*'
|
- '[0-9]+.[0-9]+*'
|
||||||
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
|
||||||
# What to run
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
|
||||||
jobs:
|
jobs:
|
||||||
smoke_version:
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
# (1/2) Determine parameter settings
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
params:
|
||||||
|
uses: ./.github/workflows/params-versions.yml
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
strategy:
|
# -----------------------------------------------------------------------------------------------
|
||||||
fail-fast: false
|
# (2/2) Configure Build and Deploy Matrices
|
||||||
matrix:
|
# -----------------------------------------------------------------------------------------------
|
||||||
version:
|
test:
|
||||||
- "MYSQL_SERVER=mysql-5.5"
|
needs: [params]
|
||||||
- "MYSQL_SERVER=mysql-5.6"
|
uses: ./.github/workflows/zzz-reuse-tests.yml
|
||||||
- "MYSQL_SERVER=mysql-5.7"
|
with:
|
||||||
- "MYSQL_SERVER=mysql-8.0"
|
matrix: ${{ needs.params.outputs.matrix }}
|
||||||
- "MYSQL_SERVER=mariadb-5.5"
|
custom_config: false
|
||||||
- "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()
|
|
||||||
|
256
.github/workflows/zzz-reuse-tests.yml
vendored
Normal file
256
.github/workflows/zzz-reuse-tests.yml
vendored
Normal file
@ -0,0 +1,256 @@
|
|||||||
|
---
|
||||||
|
name: Reusable worfklow for tests
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
###
|
||||||
|
### Variables
|
||||||
|
###
|
||||||
|
inputs:
|
||||||
|
matrix:
|
||||||
|
description: 'The test matrix'
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
custom_config:
|
||||||
|
description: 'Apply customized .env configuration?'
|
||||||
|
required: true
|
||||||
|
type: boolean
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
# JOB: BUILD
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include: ${{ fromJson(inputs.matrix) }}
|
||||||
|
steps:
|
||||||
|
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
# Setup repository
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
- name: "[SETUP] Checkout repository (current)"
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: "[DEBUG] Show Matrix configuration"
|
||||||
|
run: |
|
||||||
|
echo '${{ toJson(matrix) }}' | jq -r
|
||||||
|
|
||||||
|
- name: "[DEBUG] Show environment"
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
env
|
||||||
|
|
||||||
|
- name: "[DEBUG] Show network"
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
netstat -an || true
|
||||||
|
ss -tlun || true
|
||||||
|
|
||||||
|
- name: "[DEBUG] Show Docker version"
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
docker version
|
||||||
|
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
# Configure
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
- name: "[Configure] Configure customized configuration"
|
||||||
|
run: |
|
||||||
|
cd "${GITHUB_WORKSPACE}/.tests/"
|
||||||
|
|
||||||
|
# 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
|
||||||
|
if: inputs.custom_config
|
||||||
|
|
||||||
|
- name: "[Configure] Configure versions"
|
||||||
|
run: |
|
||||||
|
# (1/3) Change to .tests/ directory
|
||||||
|
cd "${GITHUB_WORKSPACE}/.tests/"
|
||||||
|
|
||||||
|
# (2/3) Change MySQL port 3306 to 3307 (3306 is already taken)
|
||||||
|
make configure KEY=HOST_PORT_MYSQL VAL=3307
|
||||||
|
|
||||||
|
# (3/3) Loop over configured values
|
||||||
|
while IFS= read -r line; do
|
||||||
|
KEY="${line}"
|
||||||
|
VAL="$( echo '${{ toJson(matrix) }}' | jq -r ".${KEY}" | awk '{print $NF}' )"
|
||||||
|
echo "KEY: ${KEY}"
|
||||||
|
echo "VAL: ${VAL}"
|
||||||
|
|
||||||
|
# Set the matrix version
|
||||||
|
make configure KEY="${KEY}" VAL="${VAL}"
|
||||||
|
done <<< "$( echo '${{ toJson(matrix) }}' | jq -r 'keys[]' )"
|
||||||
|
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
# Startup
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
- name: "[Startup] Pull images"
|
||||||
|
uses: cytopia/shell-command-retry-action@v0.1.3
|
||||||
|
with:
|
||||||
|
retries: 3
|
||||||
|
workdir: "${{ github.workspace }}/.tests/"
|
||||||
|
command: |
|
||||||
|
make pull
|
||||||
|
|
||||||
|
- name: "[Startup] Start Devilbox"
|
||||||
|
uses: cytopia/shell-command-retry-action@v0.1.3
|
||||||
|
with:
|
||||||
|
retries: 3
|
||||||
|
workdir: "${{ github.workspace }}/.tests/"
|
||||||
|
command: |
|
||||||
|
make start
|
||||||
|
|
||||||
|
- name: "[Startup] Show Docker logs"
|
||||||
|
uses: cytopia/shell-command-retry-action@v0.1.3
|
||||||
|
with:
|
||||||
|
retries: 3
|
||||||
|
workdir: "${{ github.workspace }}/.tests/"
|
||||||
|
command: |
|
||||||
|
make logs
|
||||||
|
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
# Run tests
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
- name: Test Modules
|
||||||
|
uses: cytopia/shell-command-retry-action@v0.1.3
|
||||||
|
with:
|
||||||
|
retries: 3
|
||||||
|
workdir: "${{ github.workspace }}/.tests/"
|
||||||
|
command: |
|
||||||
|
make test-smoke-modules
|
||||||
|
|
||||||
|
- name: Test Config
|
||||||
|
uses: cytopia/shell-command-retry-action@v0.1.3
|
||||||
|
with:
|
||||||
|
retries: 3
|
||||||
|
workdir: "${{ github.workspace }}/.tests/"
|
||||||
|
command: |
|
||||||
|
make test-smoke-config
|
||||||
|
if: success() || failure()
|
||||||
|
|
||||||
|
- name: Test Intranet
|
||||||
|
uses: cytopia/shell-command-retry-action@v0.1.3
|
||||||
|
with:
|
||||||
|
retries: 3
|
||||||
|
workdir: "${{ github.workspace }}/.tests/"
|
||||||
|
command: |
|
||||||
|
make test-smoke-intranet
|
||||||
|
if: success() || failure()
|
||||||
|
|
||||||
|
- name: Test Vendors
|
||||||
|
uses: cytopia/shell-command-retry-action@v0.1.3
|
||||||
|
with:
|
||||||
|
retries: 3
|
||||||
|
workdir: "${{ github.workspace }}/.tests/"
|
||||||
|
command: |
|
||||||
|
make test-smoke-vendors
|
||||||
|
if: success() || failure()
|
||||||
|
|
||||||
|
- name: Test Vhosts
|
||||||
|
uses: cytopia/shell-command-retry-action@v0.1.3
|
||||||
|
with:
|
||||||
|
retries: 3
|
||||||
|
workdir: "${{ github.workspace }}/.tests/"
|
||||||
|
command: |
|
||||||
|
make test-smoke-vhosts
|
||||||
|
if: success() || failure()
|
||||||
|
|
||||||
|
- name: Test Reverse Proxy
|
||||||
|
uses: cytopia/shell-command-retry-action@v0.1.3
|
||||||
|
with:
|
||||||
|
retries: 3
|
||||||
|
workdir: "${{ github.workspace }}/.tests/"
|
||||||
|
command: |
|
||||||
|
make test-smoke-rproxies
|
||||||
|
if: success() || failure()
|
||||||
|
|
||||||
|
- name: Test SSL
|
||||||
|
uses: cytopia/shell-command-retry-action@v0.1.3
|
||||||
|
with:
|
||||||
|
retries: 3
|
||||||
|
workdir: "${{ github.workspace }}/.tests/"
|
||||||
|
command: |
|
||||||
|
make test-smoke-ssl
|
||||||
|
if: success() || failure()
|
||||||
|
|
||||||
|
- name: Test Bind
|
||||||
|
uses: cytopia/shell-command-retry-action@v0.1.3
|
||||||
|
with:
|
||||||
|
retries: 3
|
||||||
|
workdir: "${{ github.workspace }}/.tests/"
|
||||||
|
command: |
|
||||||
|
make test-smoke-bind
|
||||||
|
if: success() || failure()
|
||||||
|
|
||||||
|
- name: Test Autostart
|
||||||
|
uses: cytopia/shell-command-retry-action@v0.1.3
|
||||||
|
with:
|
||||||
|
retries: 3
|
||||||
|
workdir: "${{ github.workspace }}/.tests/"
|
||||||
|
command: |
|
||||||
|
make test-smoke-autostart
|
||||||
|
if: success() || failure()
|
||||||
|
|
||||||
|
- name: "Test Framework: CakePHP"
|
||||||
|
uses: cytopia/shell-command-retry-action@v0.1.3
|
||||||
|
with:
|
||||||
|
retries: 3
|
||||||
|
workdir: "${{ github.workspace }}/.tests/"
|
||||||
|
command: |
|
||||||
|
make test-smoke-framework-cakephp
|
||||||
|
if: success() || failure()
|
||||||
|
|
||||||
|
- name: "Test Framework: Drupal"
|
||||||
|
uses: cytopia/shell-command-retry-action@v0.1.3
|
||||||
|
with:
|
||||||
|
retries: 3
|
||||||
|
workdir: "${{ github.workspace }}/.tests/"
|
||||||
|
command: |
|
||||||
|
make test-smoke-framework-drupal
|
||||||
|
if: success() || failure()
|
||||||
|
|
||||||
|
- name: "Test Framework: Wordpress"
|
||||||
|
uses: cytopia/shell-command-retry-action@v0.1.3
|
||||||
|
with:
|
||||||
|
retries: 3
|
||||||
|
workdir: "${{ github.workspace }}/.tests/"
|
||||||
|
command: |
|
||||||
|
make test-smoke-framework-wordpress
|
||||||
|
if: success() || failure()
|
||||||
|
|
||||||
|
- name: "Test Container"
|
||||||
|
uses: cytopia/shell-command-retry-action@v0.1.3
|
||||||
|
with:
|
||||||
|
retries: 3
|
||||||
|
workdir: "${{ github.workspace }}/.tests/"
|
||||||
|
command: |
|
||||||
|
make test-smoke-container
|
||||||
|
if: success() || failure()
|
||||||
|
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
# Finish
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
- name: "Finish: Docker logs"
|
||||||
|
uses: cytopia/shell-command-retry-action@v0.1.3
|
||||||
|
with:
|
||||||
|
retries: 3
|
||||||
|
workdir: "${{ github.workspace }}/.tests/"
|
||||||
|
command: |
|
||||||
|
make logs
|
||||||
|
if: success() || failure()
|
Loading…
Reference in New Issue
Block a user