{"id":23122714,"url":"https://github.com/folio-org/pipelines-shared-library","last_synced_at":"2025-08-17T02:31:08.587Z","repository":{"id":37099756,"uuid":"463051877","full_name":"folio-org/pipelines-shared-library","owner":"folio-org","description":null,"archived":false,"fork":false,"pushed_at":"2024-10-29T10:53:48.000Z","size":5090,"stargazers_count":3,"open_issues_count":2,"forks_count":4,"subscribers_count":15,"default_branch":"master","last_synced_at":"2024-10-29T11:03:15.120Z","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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-24T07:35:47.000Z","updated_at":"2024-10-28T23:27:37.000Z","dependencies_parsed_at":"2023-09-22T17:21:58.328Z","dependency_job_id":"df9d2c6a-2464-40c5-825f-44c53c5f0174","html_url":"https://github.com/folio-org/pipelines-shared-library","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/folio-org%2Fpipelines-shared-library","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/folio-org%2Fpipelines-shared-library/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/folio-org%2Fpipelines-shared-library/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/folio-org%2Fpipelines-shared-library/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/folio-org","download_url":"https://codeload.github.com/folio-org/pipelines-shared-library/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230080758,"owners_count":18169617,"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-17T07:29:59.703Z","updated_at":"2025-08-17T02:31:08.578Z","avatar_url":"https://github.com/folio-org.png","language":"Groovy","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jenkins Pipelines Shared Library for FOLIO\n\n## Overview\n\nThe Jenkins Pipelines Shared Library for FOLIO is designed to facilitate and streamline the management of Jenkins pipelines. It provides reusable functions and scripts, aimed at automating CI/CD workflows for the FOLIO platform. This repository includes resources for Jenkins pipeline configurations, Jenkins plugin management, and integration with other components of the FOLIO ecosystem.\n\n## Features\n\n- **Jenkins Core and Plugin Updates**: Automate the process of updating Jenkins core and its plugins.\n- **Gradle Integration**: Uses Gradle to sync Jenkins configuration and manage dependencies.\n- **Reusable Pipeline Functions**: A set of shared pipeline steps and functions that can be used across multiple Jenkins projects.\n- **Custom Properties**: Custom Gradle properties for managing Jenkins URL, user credentials, and API tokens.\n\n## Getting Started\n\nTo get started with the shared library, you need to configure your Jenkins environment and sync the configuration using Gradle.\n\n### Prerequisites\n\nBefore using the shared library, ensure the following:\n\n- Jenkins is set up and running.\n- Java is installed on your system.\n- You have access to the Jenkins API with appropriate permissions.\n\n### Setup\n\n1. **Configure Jenkins Properties**: Define the following Gradle properties in your `gradle.properties` file:\n  - `jenkinsUrl`: The URL of your Jenkins server.\n  - `jenkinsUser`: Your Jenkins username.\n  - `jenkinsApiToken`: Your Jenkins API token, which can be generated at [Jenkins User Configuration](https://{jenkinsUrl}/user/{jenkinsUrl}/configure).\n\n2. **Retrieve Jenkins Plugin Data** :\n  - Open the following URL: [Jenkins Plugin Manager](https://jenkins-aws.indexdata.com/pluginManager/api/json?depth=2).\n  - Save the content and place it in the `jenkinsResources/plugins.json` file.\n\n3. **Sync Jenkins Configuration**:\n   Run the following Gradle command to sync the Jenkins configuration:\n    ```bash\n    gradle syncJenkinsConfig\n    ```\n\n## Directory Structure\n\nThe repository contains the following key directories and files:\n\n- `gradle/`: Contains Gradle wrapper files and configuration.\n- `jenkinsResources/`: Stores Jenkins-specific resources like plugin data.\n- `pipelines/`: Contains the pipeline scripts and shared steps.\n- `resources/`: General resources used by the pipeline.\n- `scripts/`: Custom scripts for automating various tasks.\n- `src/`: Source code for the shared library functions.\n- `terraform/`: Terraform scripts for infrastructure management.\n- `test/`: Unit and integration tests for the pipeline functions.\n- `vars/`: Variables used in the pipeline configuration.\n- `.gitignore`: Git ignore file.\n- `.editorconfig`: Code style configuration file.\n- `README.md`: This file.\n\n## Usage\n\nTo use the shared library in your Jenkins pipeline, include it in your `Jenkinsfile` as follows:\n\n```groovy\n@Library('pipeline-shared-library') _\n```\n\nThen, you can call the shared functions defined in the library, such as syncing Jenkins configuration or managing plugins.\n\n## Contributing\n\nContributions to the repository are welcome! If you have any improvements or bug fixes, please submit a pull request. Ensure that your code follows the existing style guidelines and includes appropriate tests.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffolio-org%2Fpipelines-shared-library","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffolio-org%2Fpipelines-shared-library","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffolio-org%2Fpipelines-shared-library/lists"}