{"id":24287855,"url":"https://github.com/fn-fal113/mavenbuilds","last_synced_at":"2026-02-07T13:31:06.849Z","repository":{"id":49313315,"uuid":"516725205","full_name":"FN-FAL113/MavenBuilds","owner":"FN-FAL113","description":"Java Maven Continuous Deployment/Integration ","archived":false,"fork":false,"pushed_at":"2025-10-05T15:56:38.000Z","size":5390,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-05T17:47:13.278Z","etag":null,"topics":["git","github","java","maven"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FN-FAL113.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-07-22T11:28:56.000Z","updated_at":"2025-10-05T15:56:42.000Z","dependencies_parsed_at":"2023-12-22T13:41:04.280Z","dependency_job_id":"834e9a76-95cc-4550-861a-48f5e6a08984","html_url":"https://github.com/FN-FAL113/MavenBuilds","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/FN-FAL113/MavenBuilds","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FN-FAL113%2FMavenBuilds","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FN-FAL113%2FMavenBuilds/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FN-FAL113%2FMavenBuilds/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FN-FAL113%2FMavenBuilds/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FN-FAL113","download_url":"https://codeload.github.com/FN-FAL113/MavenBuilds/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FN-FAL113%2FMavenBuilds/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29195049,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-07T12:38:28.597Z","status":"ssl_error","status_checked_at":"2026-02-07T12:38:23.888Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["git","github","java","maven"],"created_at":"2025-01-16T08:45:59.820Z","updated_at":"2026-02-07T13:31:06.833Z","avatar_url":"https://github.com/FN-FAL113.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MavenBuilds\n\n\"Continous Integration/Deployment Service\" for java maven packages\n\nMaven packages are uploaded to this repo unless builds repo is edited inside ```./resources/repos.json```.\u003cbr\u003e\nDefaults to ```clean package``` lifecycle build.\n\n## :interrobang: The Process\n\n### 1. Cloning builds and target repos\nExisting local directories are deleted before executing this step.\n\nRemote builds repo gets cloned (first object inside resource file).\n\nEach target repo starting from index 1 inside resource file\u003cbr/\u003e\nare looped for cloning and building.\u003cbr/\u003e\u003cbr/\u003e\n\nCloned repositories directory:\n\n``./cloned_repos/{repoOwner}/\u003cclonedRepoName\u003e``\u003cbr/\u003e\n\n### 2. Creation of build output directories for each target repo\nBefore proceeding to maven lifecycle build, the latest commit hash from a target\u003cbr/\u003e\nrepo is fetched to check whether a commit hash named subdirectory exists.\n\nIf a commit hash named subdirectory exist then maven lifecycle build will be skipped\u003cbr/\u003e\notherwise the build output directories are created inside the builds repo.\u003cbr/\u003e\n\n\u003ca name=\"builds_output_directory\"\u003eBuilds Output Directory:\u003c/a\u003e\n```\n./cloned_repos/{buildsRepoOwner}/{buildsRepoName}/repos/{targetRepoOwner}/{targetRepoName}/{branch}/{latestCommitHash}\n```\n\n### 3. Building target repo\nAfter creating the build output directories and no commit hash\u003cbr/\u003e \nsubdirectory exist, a maven lifecycle build is initiated using\u003cbr/\u003e \n'clean package' as the life cycle command. The build log gets created\u003cbr/\u003e\nin the root directory of the current target repo. \n\n### 4. Transferring target repo build files\nIf maven lifecycle build is successful then output files (jar + logs) are the packaged\u003cbr/\u003e\nand transferred to the [cloned builds output directory](#builds_output_directory) else only log file will get transferred\u003cbr/\u003e\n\n### 5. Commit and push to remote builds repo\nThese changes are the new commit hash directory where the build files are transferred.\u003cbr/\u003e\n\n## Assigning builds repo and target repos\nInside ```./resources/repos.json```, where you will be adding the needed builds repo and target repos\u003cbr/\u003e\nContents are inside a json literal array\u003cbr/\u003e\n```\n[\n    /* index 0 of this json array that serves as your main builds repo\n     * where the packaged jar and other files will be committed\n    /* \n    {\n        \"github_username\": \"FN-FAL113\",\n        \"repository\": \"MavenBuilds\",\n        \"branch\": \"main\"\n    },\n    /* index 1 above are your target java maven repos \n     * each repository should be added per index inside this json array\n    /* keep in mind, index 0 should be the main builds repository\n    { \n        \"github_username\": \"FN-FAL113\",\n        \"repository\": \"FN-FAL-s-Amplifications\",\n        \"branch\": \"main\"\n    },\n    {\n        \"github_username\": \"FN-FAL113\",\n        \"repository\": \"RelicsOfCthonia\",\n        \"branch\": \"main\"\n    }\n]\n```\n\n## To Do\n- Feel free to suggest\n\n## Usage\n1. Clone this maven builds repo then extract the zip file\n\n2. Run ```npm install```\n\n3. Assign your own builds and target github repos inside ```/resources/repos.json```\n\n4. Change the maven build lifecycle command if necessary inside ```main.js```\n\n5. Supply needed environment variables like ```API_KEY``` and ```EMAIL```, propagate github action secrets if necessary\u003cbr/\u003e\n\n6. Execute the app ```npm start```\n\n## CI/CD Through Github Actions\n- An example workflow I made for this builds repo: [deploy.yml](https://github.com/FN-FAL113/MavenBuilds/blob/main/.github/workflows/deploy.yml)\n- An example workflow that I also wrote for a target repo that triggers the workflow for this builds repo on push: [deploy.yml](https://github.com/FN-FAL113/FN-FAL-s-Amplifications/blob/main/.github/workflows/deploy.yml)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffn-fal113%2Fmavenbuilds","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffn-fal113%2Fmavenbuilds","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffn-fal113%2Fmavenbuilds/lists"}