{"id":22462477,"url":"https://github.com/commonjava/indy-jenkins","last_synced_at":"2025-04-14T00:23:24.956Z","repository":{"id":38849137,"uuid":"231351473","full_name":"Commonjava/indy-jenkins","owner":"Commonjava","description":null,"archived":false,"fork":false,"pushed_at":"2022-06-02T03:45:32.000Z","size":125,"stargazers_count":0,"open_issues_count":0,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-10T19:17:15.198Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Commonjava.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-01-02T09:42:29.000Z","updated_at":"2021-11-15T11:33:50.000Z","dependencies_parsed_at":"2022-08-28T03:41:44.901Z","dependency_job_id":null,"html_url":"https://github.com/Commonjava/indy-jenkins","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Commonjava%2Findy-jenkins","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Commonjava%2Findy-jenkins/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Commonjava%2Findy-jenkins/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Commonjava%2Findy-jenkins/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Commonjava","download_url":"https://codeload.github.com/Commonjava/indy-jenkins/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248800080,"owners_count":21163404,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-06T09:09:51.303Z","updated_at":"2025-04-14T00:23:24.926Z","avatar_url":"https://github.com/Commonjava.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# INDY CI jenkins store\n\nThis is Jenkins CI/CD script store for indy product and library\n\n## User Guide\n\nDesigned to manage NOS team's git repository and artifact in an automated way.\n\n* `release-master.Jenkinsfile` is designed to **manage RELEASE in GitHub repo and sonatype maven central**, and schedule build parameter in order to test release version with various tests.\n* `release-lib-master.Jenkinsfile` is similar to `release-master.Jenkinsfile` for release library used by indy. e.g. weft, galley.\n* `indy-build.Jenkinsfile` is designed to **build and trigger test**, archive build artifact. control build step by changing parameter in jenkins pipeline.\n* `librarybuid.Jenkinsfile` is designed to **build and trigger test for library of indy**, a common build pipeline for depenency of indy.\n* `Autotest.Jenkinsfile` is **reference of stress test** in indy build process. *deprecated*\n\n--------\n\nTo setup an complete release sequence using `release-master.Jenkinsfile`\n1. You **must** set up indy related buid job using `indy-build.Jenkinsfile` first, e.g _indy-playground_.\n2. And you **must** set up two Jenkins Credential: GitHub_Bot and OSS-Nexus-Bot this are GitHub username \u0026 token and Nexus username \u0026 password\n\n* Some step specifed the job name of pipeline defined by `indy-build.Jenkinsfile`, those are for **verify the constrains and build artifact**, those are not critical, if job name has changed, change it as well.\\\n* To release from master or other branch, use `INDY_GIT_BRANCH:master` in release-master.Jenkinsfile.\n* The pipeline will **fail** and notify user if attempt to release a verion with **SNAPSHOT in dependency** tree by email.\n\n--------\n\n`indy-build.Jenkinsfile` are versatile for various configuration, it's mainly for verify commit by build and black/white box test\\\ne.g.\n* To set up auto build job for **master banch commit verification** , use Default Value set down below, and trigger by poll-scm.\n* For **nightly build**, use build periodically and enable `FUNCTIONAL_TEST:true`\u003csub\u003eboolean\u003c/sub\u003e, `STRESS_TEST:true`\u003csub\u003eboolean\u003c/sub\u003e. to detect performance change nightly.\n* To build artifact for **release** in maven central use `INDY_GIT_BRANCH:release` `INDY_MAJOR_VERSION:nextversion` `INDY_DEV_IMAGE_TAG:latest-release` `QUAY_TAG:latest-release`. and pipeline will archive all artifact needed for upload to sonatype.\n* Setting for **pull request** verification, change setting like `INDY_GIT_BRANCH:or origin/pull/1507/head` and turn `FORCE_PUBLISH_IMAGE:false`\u003csub\u003eboolean\u003c/sub\u003e\n\n--------\n\n**Deprecated**\nSet up performance benchmark by `Autotest.Jenkinsfile`, see parameter requirement downbelow.\\\nThis is a reference of critical step for CI/CD, and a requirement if `STRESS_TEST` set to be `true`.\n\n*The `STRESS_TEST` Jenkins job requirement is not limited to `Autotest.Jenkinsfile`, any equivalent Jenkins job meets requirement will work*\n\n## Jenkins parameters requirement\n\n**release-master required**\n\n|Parameters      |Type |Default Value                                          |\n|----------------|-----|-------------------------------------------------------|\n|JENKINS_AGENT_CLOUD_NAME|String|openshift|\n|JDK_VERSION|String|11|\n|INDY_GIT_BRANCH|String|master|\n|INDY_GIT_REPO|String|https://github.com/Commonjava/indy|\n|INDY_MAJOR_VERSION|String|2.0.0|\n|INDY_DEV_VERSION|String|2.0.1|\n|MAIL_ADDRESS|String|liyu@example.com|\n|BOT_EMAIL|String|*@Commonjava.org|\n|SKIP_VERIFICATION|Boolean|false|\n\n* `JDK_VERSION` supports only 1.8.0 or 11\n* `INDY_GIT_BRANCH` should be maint or master etc, but proceed with careful, as it perform merge and push.\n* `INDY_DEV_VERSION` don't have to set this up if you are about to increase it by one. e.g. 2.2.0 -\u003e 2.2.1-SNAPSHOT and do not include \"-SNAPSHOT\"\n* Credential `GitHub_Bot` in Jenkins is GitHub account username and password, able to access `INDY_GIT_BRANCH`.\n* Credential `OSS-Nexus-Bot` also needed to access sonatype nexus.\n\n\n**release-lib-master required**\n\n|Parameters      |Type |Default Value                                          |\n|----------------|-----|-------------------------------------------------------|\n|JENKINS_AGENT_CLOUD_NAME|String|openshift|\n|JDK_VERSION|String|11|\n|LIB_GIT_BRANCH|String|master|\n|LIB_GIT_REPO|String|https://github.com/Commonjava/weft|\n|LIB_NAME|String|weft|\n|LIB_MAJOR_VERSION|String|1.14|\n|LIB_DEV_VERSION|String|1.15|\n|MAIL_ADDRESS|String|liyu@example.com|\n|BOT_EMAIL|String|*@Commonjava.org|\n\n* `JDK_VERSION` supports only 1.8.0 or 11\n* `LIB_MAJOR_VERSION` set correct version you're about to release!\n* `LIB_DEV_VERSION` don't have to set this up if you are about to increase it by one. e.g. 1.7 -\u003e 1.8-SNAPSHOT and do not include \"-SNAPSHOT\"\n* Credential `GitHub_Bot` in Jenkins is GitHub account username and password, able to access `LIB_GIT_BRANCH`.\n* Credential `OSS-Nexus-Bot` also needed to access sonatype nexus.\n\n**indy-build required**\n\n|Parameters      |Type |Default Value                                          |\n|----------------|-----|-------------------------------------------------------|\n|JENKINS_AGENT_CLOUD_NAME|String|openshift|\n|JDK_VERSION|String|11|\n|INDY_GIT_BRANCH|String|master|\n|INDY_GIT_REPO|String|https://github.com/Commonjava/indy|\n|INDY_MAJOR_VERSION|String|2.0.0|\n|INDY_PREPARE_RELEASE|Boolean|false|\n|INDY_IMAGESTREAM_NAME|String|indy_binary|\n|INDY_IMAGESTREAM_NAMESPACE|String|nos-automation|\n|INDY_DEV_IMAGE_TAG|String|latest|\n|FORCE_PUBLISH_IMAGE|Boolean|false|\n|TAG_INTO_IMAGESTREAM|Boolean|true|\n|MAIL_ADDRESS|String|liyu@redhat.com|\n|TOWER_HOST|String|''|\n|TOWER_TEMPLATE_NUMBER|String|850|\n|FUNCTIONAL_TEST|Boolean|true|\n|STRESS_TEST|Boolean|true|\n|QUAY_IMAGE_TAG|String|latest|\n\n* `JDK_VERSION` supports only 1.8.0 or 11\n* `JENKINS_AGENT_CLOUD_NAME` should be kubernetes plugin cluser name\n* `INDY_GIT_BRANCH` can also be git commit reference e.g.:commit id or origin/pull/1507/head\n* `INDY_MAJOR_VERSION` is optional, only needed when release a new version e.g. building release artifact.\n* `INDY_PREPARE_RELEASE` is controling if the version should be changed during build, e.g change from `2.0-SNAPSHOT` to `2.0.0`.\n* `TOWER_HOST` is the jenkins tower used to deploy a test envrioment.\n* `TOWER_TEMPLATE_NUMBER` 850 is templpate id of `nos-automation - deploy-indy-perf`.\n* Jenkins Credential Username and Password `Tower_Auth` is needed and script can access it.\n* Skipp maven functional test and jmeter stress test by disable `FUNCTIONAL_TEST` and `STRESS_TEST`.\n* `QUAY_IMAGE` tag must be latest in order to run `STRESS_TEST`, it's needed by ansible to deploy.\n\n**librarybuild required**\n\n|Parameters      |Type |Default Value                                          |\n|----------------|-----|-------------------------------------------------------|\n|JENKINS_AGENT_CLOUD_NAME|String|openshift|\n|LIB_GIT_BRANCH|String|master|\n|LIB_GIT_REPO|String|https://github.com/Commonjava/weft|\n|LIB_NAME|String|weft|\n|LIB_MAJOR_VERSION|String|1.0.0|\n|MAIL_ADDRESS|String|liyu@redhat.com|\n\n* `LIB_NAME` should be the **name of library** the job is building.\n* `LIB_GIT_BRANCH` can also be git commit reference e.g.:commit id or origin/pull/*/head\n* `LIB_MAJOR_VERSION` is optional, only needed when release a new version e.g. building release artifact.\n\n**Autotest required**\n\n* Deprecated\n\n|Parameters      |Type |Default Value                                          |\n|----------------|-----|-------------------------------------------------------|\n|JENKINS_AGENT_CLOUD_NAME|String|openshift|\n|THREADS|String|5|\n|INDY_HOSTNAME|String|indy-perf.example.com|\n|LOOPS|String|10|\n\n* `THREADS` controls concurrent client simulation, and `LOOPS` controls total time of stress test.\n* `INDY_HOSTNAME` should be where indy have been deployed, **MUST NOT** include protocal like `http://` or `https://`","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcommonjava%2Findy-jenkins","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcommonjava%2Findy-jenkins","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcommonjava%2Findy-jenkins/lists"}