This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch maintenance-branch
in repository https://gitbox.apache.org/repos/asf/causeway.git
The following commit(s) were added to refs/heads/maintenance-branch by this
push:
new 9f4042124f3 [v2] fleshes out parts of the ci instructions (docs)
9f4042124f3 is described below
commit 9f4042124f3c3f91c62ff5eccf9f75e5120c651a
Author: andi-huber <[email protected]>
AuthorDate: Mon Jan 19 14:34:22 2026 +0100
[v2] fleshes out parts of the ci instructions (docs)
---
adoc/ci-instructions.adoc | 108 ++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 100 insertions(+), 8 deletions(-)
diff --git a/adoc/ci-instructions.adoc b/adoc/ci-instructions.adoc
index 6af0be0b5df..b94bbb81223 100644
--- a/adoc/ci-instructions.adoc
+++ b/adoc/ci-instructions.adoc
@@ -1,23 +1,115 @@
One can setup a gitlab repository just for the purpose of
building and deploying _Causeway_ artifacts.
-A minimal build script could look like:
+A build script could look like:
[source,yaml]
..gitlab-ci.yml
----
+spec:
+ inputs:
+ revision:
+ type: string
+ description: "the Maven revision (artifact version) that we are
building; defaults to 2.2.0-SNAPSHOT"
+ default: "2.2.0-SNAPSHOT"
+ commit_or_branch:
+ type: string
+ description: "the commit-hash or branch name to check out; defaults to
maintenance-branch"
+ default: maintenance-branch
+ java_target_version:
+ type: number
+ options: [11, 17, 21, 25]
+ description: "targeted Java compile version; defaults to 11"
+ default: 11
+ test_or_deploy:
+ type: string
+ options: ['test', 'deploy']
+ default: 'test'
+ description: "whether to just 'test' or also 'deploy' : defaults to
'test'"
+ are_you_sure:
+ type: string
+ options: ['yes', 'no']
+ default: 'no'
+ description: "only 'yes' triggers the pipeline"
+---
+
image: maven:3.9.12-eclipse-temurin-25
-include:
- - local: ci/causeway-v2.yml
- - local: ci/isis-v2.yml
+variables:
+ CAN_RUN: $[[ inputs.are_you_sure ]]
+ REVISION: $[[ inputs.revision ]]
+ COMMIT_OR_BRANCH: $[[ inputs.commit_or_branch ]]
+ JAVA_TARGET_VERSION: $[[ inputs.java_target_version ]]
+ TEST_OR_DEPLOY: $[[ inputs.test_or_deploy ]]
+
+# Define the workflow which specifies that the entire pipeline should only be
triggered manually
+workflow:
+ rules:
+ - if: $CAN_RUN == "yes"
+ when: always # Triggers the pipeline
+ - when: never # Do not run the pipeline if the condition is not met
-stages:
- - checkout-patch-deploy
+stages: # List of stages for jobs, and their order of execution
+ - checkout
+ - rename
+ - test
+ - deploy
+
+include:
+ - local: ci/checkout-v2.yml
+ - local: ci/test-and-deploy-causeway-v2.yml
+ - local: ci/test-and-deploy-isis-v2.yml
----
where the actual jobs are declared in their own files in the `ci` directory:
-TODO flesh out `ci/causeway-v2.yml`
+- `ci/checkout-v2.yml`
+- `ci/test-and-deploy-causeway-v2.yml`
+- `ci/test-and-deploy-isis-v2.yml`
+
+== Checkout and set Version/Revision
+
+Generates a single artifact `build.tar.gz`, which contains the sources we are
about to build.
+This artifact is passed on to any follow up jobs.
+
+[source,yaml]
+.ci/checkout-v2.yml
+----
+checkout-job: # This job runs in the build stage, which runs first.
+ stage: checkout
+ tags:
+ - maven # signals the maven job runner to pick this up
+ allow_failure: false
+ script:
+ - git clone https://github.com/apache/causeway.git build
+ - cd build
+ - git checkout $COMMIT_OR_BRANCH
+ - mvn -v
+ - mvn versions:set -Drevision=$REVISION
+ - cd ..
+ - tar --exclude='build/.git' -czf build.tar.gz build
+ artifacts:
+ paths:
+ - build.tar.gz
+----
+
+== Test and Deploy
+
+Deploy stage is optional, based on input.
+
+[source,yaml]
+.ci/test-and-deploy-causeway-v2.yml
+----
+TODO
+----
+
+== Rename, Test and Deploy Legacy (isis)
+
+Deploy stage is optional, based on input.
+(Same as `Test and Deploy` above, but operating on the renamed sources.)
-TODO flesh out `ci/isis-v2.yml`
\ No newline at end of file
+[source,yaml]
+.ci/test-and-deploy-isis-v2.yml
+----
+TODO
+----
\ No newline at end of file