Executing the Process
The release process can only be executed by Adobe Employees with access to ACS Jenkins Instance.
The release process is performed entirely by the Jenkins pipeline. To perform a release:
- Access the AEM Modernize Tools pipeline on the ACS Jenkins instance.
- Trigger the pipeline (do not replay the last run.)
- Answer the question on the type of release being performed.
- Verify the release version.
- Sit back and watch.
Setting it up
The pipeline setup has already been performed. But as a mechanism for documentation in the event it needs to be recreated:
Github Access
First thing’s first, Jenkins will be accessing the Github repo. This pipeline uses a system account adobe-acsbuild
.
API Token
- On Github create a new Access Token, the only access scope required is repo.
- Create a new Credential entry with the access token for the password. The ID value must match the pipeline reference.
BinTray Access
We deploy the artifacts to Bintray so we need to setup those credentials.
-
Get the API Key from the Abode ACSBuild Bintray account.
-
Create a new Credential entry with the access token for the password.
Maven Settings
The project’s POM is already configured for the Bintray Adobe repository & package, we just need to supply the credentials. This is done through a custom build settings.xml. The pipeline is also pre-configured to reference this file - we need to a) make sure it exists, and b) has the expected credentials.
- Check to see if an existing Maven Settings exists with an ID of
acsbuild-settings
. If so edit the existing one, otherwise create a new one with this ID. - Give it an appropriate name and description if it did not previously exist.
- Add two credentials to the Server Credentials section:
- ACSBuild Github Token credentials, the ServerId is
adobe-acsbuild-github-token
(this is the value from the pom’sproject.scm.id
).
- ACSBuild Bintray credentials, the ServerId is
bintray-adobe-maven
(this is the value from the pom’sdistributionManagement
).
- ACSBuild Github Token credentials, the ServerId is
Tools
Install the JKD 8 and Maven 3.5 tools on the Jenkins server. Name them JKD8
and Maven 3.5
respectively. (You can install newer versions, or name them differently, just make sure to update the Jenkinsfile references.)
Plugins
The pipeline makes use of a few plugins, not all of which are likely to be installed by default. Install the following Jenkins Plugins:
- HTTP Request
Pipeline Job
The pipeline is self-contained - so we just need to configure the actual Jenkins job definition.
- Create a new Multibranch Pipeline job, title
AEM Modrnize Tools
- Fill out the configuration, anything not shown in this image can be left with the default value.
Script Approvals
The first run of a release may error at the Metadata or Github Release stage, due to a security check. Scripted pipelines are not permitted to call the SCM User Config or to instantiate JsonSlurperClassic used to parse Github API responses. Approving the following signatures will resolve this and allow the pipeline to complete successfully.
Also, to parse a response from the Github API we need to approve the JsonSlurper API as well.
This may be resolved at a future date if we decide to move these steps to a Shared Library, instead of in the pipeline itself. For now we are trying to keep everything self-contained.