Jenkins will pick this up and sign the ref extrapolated by log_dir and promote the artifact, whether maven or container.
Maven release jobs can also trigger via "Build with parameters" negating the need for a release file.
-The parameters will need to be filled out in the same was as a release file's would, excepting the speacial
-USE_RELEASE_FILE parameter which will need to be set to False to inform the job that it should not expect a release file.
+The parameters will need to be filled out in the same was as a release file's would, excepting the special
+USE_RELEASE_FILE and DRY_RUN check boxes. The USE_RELEASE_FILE check box will need to be unchecked, if the job
+is expected to run with a release file, while passing the required information as build parameters.
+Similarly, the DRY_RUN check box will need to be unchecked, if the job needs to be tested while skipping
+repository promotion to Nexus.
+
The Special Parameters are as follows:
GERRIT_BRANCH = master
LOG_DIR = example-project-maven-stage-master/17/
DISTRIBUTION_TYPE = maven
USE_RELEASE_FILE = false
+DRY_RUN = false
.. note::
- lf-infra-properties:
build-days-to-keep: 7
- parameters:
- - lf-infra-parameters:
- project: "{project}"
- branch: "$GERRIT_BRANCH"
- stream: "$GERRIT_BRANCH"
- - lf-build-with-parameters-maven-release:
- use-release-file: "{use-release-file}"
-
publishers:
- lf-infra-publish
disabled: "{disable-job}"
+ parameters:
+ - lf-infra-parameters:
+ project: "{project}"
+ branch: "$GERRIT_BRANCH"
+ stream: "$GERRIT_BRANCH"
+ - lf-build-with-parameters-maven-release:
+ use-release-file: "{use-release-file}"
+
builders:
- lf-infra-pre-build
- conditional-step:
disabled: "{disable-job}"
+ parameters:
+ - lf-infra-parameters:
+ project: "{project}"
+ branch: "$GERRIT_BRANCH"
+ stream: "$GERRIT_BRANCH"
+ - lf-build-with-parameters-maven-release:
+ use-release-file: "{use-release-file}"
+ - bool:
+ name: DRY_RUN
+ default: false
+ description: |
+ If DRY_RUN is enabled artifacts are not published.
+
builders:
- lf-infra-pre-build
- conditional-step:
--- /dev/null
+---
+features:
+ - |
+ Add DRY_RUN build param to do a test run the job with publishing artifacts.
echo "git tag -v $VERSION"
git tag -v "$VERSION"
########## Merge Part ##############
- if [[ "$JOB_NAME" =~ "merge" ]]; then
+ if [[ "$JOB_NAME" =~ "merge" ]] && [[ "$DRY_RUN" = false ]]; then
echo "--> INFO: Running merge"
gerrit_ssh=$(echo "$GERRIT_URL" | awk -F"/" '{print $3}')
git remote set-url origin ssh://"$RELEASE_USERNAME"@"$gerrit_ssh":29418/"$PROJECT"
echo "Merge will run"
echo "lftools nexus release --server https://$NEXUS_URL $STAGING_REPO"
done
- #Run the loop twice, to catch errors on either nexus repo
- if [[ "$JOB_NAME" =~ "merge" ]]; then
+ #Run the loop twice, to catch errors on either nexus repo
+ if [[ "$JOB_NAME" =~ "merge" ]] && [[ "$DRY_RUN" = false ]]; then
for staging_url in $(zcat "$PATCH_DIR"/staging-repo.txt.gz | awk -e '{print $2}'); do
NEXUS_URL=$(echo "$staging_url" | sed -e 's|^[^/]*//||' -e 's|/.*$||')
STAGING_REPO=${staging_url#*repositories/}
echo "docker tag $container_image_id $DOCKER_REGISTRY:10002/$lfn_umbrella/$name:$VERSION"
echo "docker push $DOCKER_REGISTRY:10002/$lfn_umbrella/$name:$VERSION"
if [[ "$JOB_NAME" =~ "merge" ]]; then
- docker tag "$container_image_id" "$DOCKER_REGISTRY":10002/"$lfn_umbrella"/"$name":"$VERSION"
- docker push "$DOCKER_REGISTRY":10002/"$lfn_umbrella"/"$name":"$VERSION"
+ docker tag "$container_image_id" "$DOCKER_REGISTRY":10002/"$lfn_umbrella"/"$name":"$VERSION"
+ docker push "$DOCKER_REGISTRY":10002/"$lfn_umbrella"/"$name":"$VERSION"
fi
echo "#########################"
fi