diff options
author | Joas Schilling <coding@schilljs.com> | 2022-03-16 12:22:52 +0300 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2022-03-18 16:48:34 +0300 |
commit | 520df2c7b5c774c1a72b657b46137d0af3c1d314 (patch) | |
tree | 9efa294c69225a73a8ee6ede47f0867bd71a31b1 /.drone.jsonnet | |
parent | 920129dd596bac6590eee85c2328a12189acb65a (diff) |
Generate drone testing matrix from .drone.jsonnet filetechdebt/noid/use-jsonnet-to-create-testing-matrix
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to '.drone.jsonnet')
-rw-r--r-- | .drone.jsonnet | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/.drone.jsonnet b/.drone.jsonnet new file mode 100644 index 000000000..29ff08db6 --- /dev/null +++ b/.drone.jsonnet @@ -0,0 +1,144 @@ +## 1. Download/install drone binary: +## curl -L https://github.com/harness/drone-cli/releases/latest/download/drone_linux_amd64.tar.gz | tar zx +## 2. Adjust the matrix as wished +## 3. Run: ./drone jsonnet --stream --format yml +## 4. Commit the result + +local Pipeline(test_set, database, services) = { + kind: "pipeline", + name: "int-"+database+"-"+test_set, + services: services, + steps: [ + { + name: "integration-"+test_set, + image: "ghcr.io/nextcloud/continuous-integration-php8.0:latest", + environment: { + APP_NAME: "spreed", + CORE_BRANCH: "master", + GUESTS_BRANCH: "master", + DATABASEHOST: database + }, + commands: [ + "bash tests/drone-run-integration-tests.sh || exit 0", + "wget https://raw.githubusercontent.com/nextcloud/travis_ci/master/before_install.sh", + "bash ./before_install.sh $APP_NAME $CORE_BRANCH $DATABASEHOST", + "cd ../server", + "./occ app:enable $APP_NAME", + ] + ( + if test_set == "conversation" || test_set == "conversation-2" then [ + "git clone --depth 1 -b $GUESTS_BRANCH https://github.com/nextcloud/guests apps/guests" + ] else [] + ) + [ + "cd apps/$APP_NAME", + "cd tests/integration/", + "bash run.sh features/"+test_set + ] + } + ], + trigger: { + branch: [ + "master", + "stable*" + ], + event: ( + if database == "sqlite" then ["pull_request", "push"] else ["push"] + ) + } +}; + +local PipelineSQLite(test_set) = Pipeline( + test_set, + "sqlite", + [ + { + name: "cache", + image: "ghcr.io/nextcloud/continuous-integration-redis:latest" + } + ] +); + +local PipelineMySQL(test_set) = Pipeline( + test_set, + "mysql", + [ + { + name: "cache", + image: "ghcr.io/nextcloud/continuous-integration-redis:latest" + }, + { + name: "mysql", + image: "ghcr.io/nextcloud/continuous-integration-mariadb-10.4:10.4", + environment: { + MYSQL_ROOT_PASSWORD: "owncloud", + MYSQL_USER: "oc_autotest", + MYSQL_PASSWORD: "owncloud", + MYSQL_DATABASE: "oc_autotest" + }, + command: [ + "--innodb_large_prefix=true", + "--innodb_file_format=barracuda", + "--innodb_file_per_table=true" + ], + tmpfs: [ + "/var/lib/mysql" + ] + } + ] +); + +local PipelinePostgreSQL(test_set) = Pipeline( + test_set, + "pgsql", + [ + { + name: "cache", + image: "ghcr.io/nextcloud/continuous-integration-redis:latest" + }, + { + name: "pgsql", + image: "ghcr.io/nextcloud/continuous-integration-postgres-13:postgres-13", + environment: { + POSTGRES_USER: "oc_autotest", + POSTGRES_DB: "oc_autotest_dummy", + POSTGRES_HOST_AUTH_METHOD: "trust", + POSTGRES_PASSWORD: "owncloud" + }, + tmpfs: [ + "/var/lib/postgresql/data" + ] + } + ] +); + + +[ + PipelineSQLite("callapi"), + PipelineSQLite("chat"), + PipelineSQLite("command"), + PipelineSQLite("conversation"), + PipelineSQLite("conversation-2"), + PipelineSQLite("federation"), + PipelineSQLite("reaction"), + PipelineSQLite("sharing"), + PipelineSQLite("sharing-2"), + + PipelineMySQL("callapi"), + PipelineMySQL("chat"), + PipelineMySQL("command"), + PipelineMySQL("conversation"), + PipelineMySQL("conversation-2"), + PipelineMySQL("federation"), + PipelineMySQL("reaction"), + PipelineMySQL("sharing"), + PipelineMySQL("sharing-2"), + + PipelinePostgreSQL("callapi"), + PipelinePostgreSQL("chat"), + PipelinePostgreSQL("command"), + PipelinePostgreSQL("conversation"), + PipelinePostgreSQL("conversation-2"), + PipelinePostgreSQL("federation"), + PipelinePostgreSQL("reaction"), + PipelinePostgreSQL("sharing"), + PipelinePostgreSQL("sharing-2"), +] |