{"id":14156093,"url":"https://github.com/folio-org/jenkins-pipeline-libs","last_synced_at":"2025-08-17T02:30:41.836Z","repository":{"id":38187324,"uuid":"101306531","full_name":"folio-org/jenkins-pipeline-libs","owner":"folio-org","description":"Shared library for Jenkins Pipeline","archived":false,"fork":false,"pushed_at":"2025-06-18T14:46:53.000Z","size":644,"stargazers_count":1,"open_issues_count":2,"forks_count":7,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-06-18T15:39:28.523Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Groovy","has_issues":false,"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/folio-org.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":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-08-24T14:52:54.000Z","updated_at":"2025-06-18T14:40:28.000Z","dependencies_parsed_at":"2025-02-21T18:19:37.654Z","dependency_job_id":"1c515800-3eb2-47ee-9f57-47c18d42e14e","html_url":"https://github.com/folio-org/jenkins-pipeline-libs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/folio-org/jenkins-pipeline-libs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/folio-org%2Fjenkins-pipeline-libs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/folio-org%2Fjenkins-pipeline-libs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/folio-org%2Fjenkins-pipeline-libs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/folio-org%2Fjenkins-pipeline-libs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/folio-org","download_url":"https://codeload.github.com/folio-org/jenkins-pipeline-libs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/folio-org%2Fjenkins-pipeline-libs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270798838,"owners_count":24648034,"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","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-08-17T08:05:12.907Z","updated_at":"2025-08-17T02:30:41.552Z","avatar_url":"https://github.com/folio-org.png","language":"Groovy","funding_links":[],"categories":["others"],"sub_categories":[],"readme":"# Shared library for FOLIO Jenkins Pipeline\n\nThis repository contains the Jenkins pipeline shared library used for FOLIO CI/CD by projects\nlocated at https://github.com/folio-org\n\nThe library assumes a lot about the configuration of the Jenkins server and the FOLIO\ndevelopment workflow, so it's probably of limited use outside the FOLIO Jenkins context.  \n\nTo utilize this library for https://github.com/folio-org projects,  add a 'Jenkinsfile' to\nthe top-level directory of the project repository.   The library primarily supports two types\nof development environments at this time - Java-based Maven projects and Nodejs-based projects. \n\nA typical Stripes or UI module Jenkinsfile configuration might look like the following.\n\n```\nbuildNPM {\n  publishModDescriptor = true\n  runLint = true\n  runTest = true\n  runTestOptions = '--karma.singleRun --karma.browsers=ChromeDocker'  (for karma-based testing)\n  runRegression = 'partial'\n}\n```\n\nAll parameters listed above are optional or specific to the project.\n\n* 'publishModDescriptor' - If a FOLIO Module Descriptor is defined package.json, the Module\nDescriptor will be generated and published to the FOLIO Module Descriptor registry at\nhttp://folio-registry.aws.indexdata.com\n\n* 'runLint' - Will execute 'yarn lint' as part of the build.  Ensure a 'lint' run script is\ndefined in package.json before enabling this option. \n\n* 'runTest' - Will execute 'yarn test' as part of the build.  Ensure a 'test' run script is\ndefined in package.json.  'test' is typically used for unit tests.\n\n* 'runTestOptions' - Provide 'yarn test' with additional options\n\n* 'runRegression' - Will execute the UI regression test suite from 'ui-testing' against a real \nFOLIO backend.  'full' will execute the full test suite while 'partial' will execute only tests \nspecific to the UI module'.  'none' disable regression testing. \n\n\nA typical Maven-based, server-side FOLIO module Jenkinsfile configuration might look like \nthe following.\n\n```\nbuildMvn {\n  publishModDescriptor = true\n  mvnDeploy = true\n\n  doDocker = {\n    buildJavaDocker {\n      publishMaster = true\n      healthChk = true\n      healthChkCmd = 'wget --no-verbose --tries=1 --spider http://localhost:8081/admin/health || exit 1'\n    }\n  }\n}\n```\n\n * 'mvnDeploy' - Deploy Maven artifacts to FOLIO Maven repository.\n\nIf we are creating and deploying a Docker image as part of the module's artifacts, specify\n'doDocker' with 'buildJavaDocker' and the following options:\n\n * 'publishMaster' - Publish image to 'folioci' Docker repository on Docker Hub when building\n'master' branch.  This is the default. \n\n * 'healthChk' - Perform a container healthcheck during build.  See 'healthChkCmd'.  \n\n * 'healthChkCmd' - Use the specified command to perform container health check.   The\ncommand is run *inside* the container and typically tests a REST endpoint to determine the \nhealth of the application running inside the container.  Prefer `wget` over `curl` as Alpine\nby default ships without `curl` but with [BusyBox](https://www.busybox.net/about.html), a\nmulti-call binary that contains `wget` with reduced number of options.\n\nInvestigate the configuration of other similar repositories, e.g.\n[mod-notes](https://github.com/folio-org/mod-notes) and\n[ui-checkin](https://github.com/folio-org/ui-checkin).\n\nThere are other options available to 'buildNPM', 'buildMvn', and 'buildJavaDocker' for certain \ncorner cases.  Check these scripts directly for additional information.\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffolio-org%2Fjenkins-pipeline-libs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffolio-org%2Fjenkins-pipeline-libs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffolio-org%2Fjenkins-pipeline-libs/lists"}