:git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
:install-prefix: CMAKE_INSTALL_PREFIX to use for install.
(default: $BUILD_DIR/output)
-
- .. code-block:: bash
- :caption: Example
-
- install-prefix: |
- #!/bin/bash
- echo "Hello World."
-
:make-opts: Parameters to pass to make. (default: '')
:pre-build: Shell script to run before performing build. Useful for
setting up dependencies. (default: '')
:git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
:install-prefix: CMAKE_INSTALL_PREFIX to use for install.
(default: $BUILD_DIR/output)
-
- .. code-block:: bash
- :caption: Example
-
- install-prefix: |
- #!/bin/bash
- echo "Hello World."
-
:make-opts: Parameters to pass to make. (default: '')
:pre-build: Shell script to run before performing build. Useful for
setting up dependencies. (default: '')
:git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
:install-prefix: CMAKE_INSTALL_PREFIX to use for install.
(default: $BUILD_DIR/output)
-
- .. code-block:: bash
- :caption: Example
-
- install-prefix: |
- #!/bin/bash
- echo "Hello World."
-
:make-opts: Parameters to pass to make. (default: '')
:pre-build: Shell script to run before performing build. Useful for
setting up dependencies. (default: '')
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.
--- /dev/null
+---
+fixes:
+ - |
+ Verify both repos before attempting release.
+ We have run into a case where the repo on ODL
+ nexus was good, and the repo on Sonatype nexus
+ was missing. Cover this case by running the verify
+ loop over each repo before attempting release.
--- /dev/null
+---
+upgrade:
+ - |
+ Update lftools version to **v0.26.2**.
echo "Generating Requirements File"
cat << 'EOF' > "$requirements_file"
-lftools[openstack]~=0.26.1
+lftools[openstack]~=0.26.2
python-heatclient~=1.16.1
python-openstackclient~=3.16.0
dogpile.cache~=0.6.8 # Version 0.7.[01] seems to break openstackclient
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"
lftools nexus release -v --server https://"$NEXUS_URL" "$STAGING_REPO"
echo "Merge will run"
echo "lftools nexus release --server https://$NEXUS_URL $STAGING_REPO"
- if [[ "$JOB_NAME" =~ "merge" ]]; then
+ done
+
+ #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 "Promoting $STAGING_REPO on $NEXUS_URL."
lftools nexus release --server https://"$NEXUS_URL" "$STAGING_REPO"
- fi
- done
+ done
+ fi
}
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