Introduction
Purpose
Based on the module specification (in particular the introduction and the project specification), this guide presents the practical steps for building a DevOps environment for iAP user module development. It covers two CI platforms: GitHub Actions, and GitLab + Jenkins.
The intended audience is as follows.
- Module projects created with VSCode + Accel CLI
- Teams that want to automate CI with GitHub Actions or GitLab + Jenkins
- Teams that want to generate release artifacts (zip) reproducibly
Prerequisites to Take from the Module Specification
From the Module Reference, the prerequisites you cannot leave out when designing CI/CD are as follows.
- A module is a "cohesive unit of functionality", and it is developed and installed as a unit
- A project assumes the separation of src/main / src/test / src/sample by purpose
- module.xml is the core metadata that expresses module identification and dependency information
- The Maven build (executed internally by bun run build) makes target/*.zip the module artifact
- settings.xml is used to reference the intra-mart repository and Maven Central
For this reason, DevOps automates at least the following.
- Consistency checks of the configuration, including module.xml
- Reproducible builds with Maven/Bun
- Artifact retention of target/*.zip
- Turning a tag into a release (optional)
Page Structure
- GitHub Actions: Operational procedure
- GitLab + Jenkins: Operational procedure (alternative CI platform)