{"id":15648781,"url":"https://github.com/mdelapenya/webump","last_synced_at":"2026-04-13T20:02:44.404Z","repository":{"id":141610102,"uuid":"134951230","full_name":"mdelapenya/webump","owner":"mdelapenya","description":null,"archived":false,"fork":false,"pushed_at":"2018-06-26T14:18:04.000Z","size":42,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-30T00:11:08.252Z","etag":null,"topics":["bump","bumpversion","docker-image","gradle","nodejs","semver"],"latest_commit_sha":null,"homepage":null,"language":"Shell","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/mdelapenya.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":"2018-05-26T10:20:30.000Z","updated_at":"2019-08-01T08:41:59.000Z","dependencies_parsed_at":"2023-04-11T06:08:24.115Z","dependency_job_id":null,"html_url":"https://github.com/mdelapenya/webump","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mdelapenya/webump","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdelapenya%2Fwebump","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdelapenya%2Fwebump/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdelapenya%2Fwebump/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdelapenya%2Fwebump/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdelapenya","download_url":"https://codeload.github.com/mdelapenya/webump/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdelapenya%2Fwebump/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260475937,"owners_count":23014943,"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":["bump","bumpversion","docker-image","gradle","nodejs","semver"],"created_at":"2024-10-03T12:26:22.634Z","updated_at":"2026-04-13T20:02:44.396Z","avatar_url":"https://github.com/mdelapenya.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WeBump\n\nThis Docker image pretends to define an opinionated way to manage the versioning process of a software project which already follows **semantic versioning**.\n\nIt uses the awesome [`semver` script](https://github.com/fsaintjacques/semver-tool) created by @fsaintjacques, wrapping it in a Docker container and adding an entrypoint to perform specific tasks related to versioning.\n\nThe process will consist in the following steps:\n\n- Detect project type\n- Read the versioning file based on project type\n- Calculate the next version related to the bump you are doing: minor, major, patch, etc.\n- Stash your existing changes in the git branch you are working on\n- Move to the master branch\n- Create a git commit in the master branch with the bump\n- Create a git tag at that commit with the bump, removing existing with same same\n- Move to your working branch\n- Pop stashd changes\n\n## Supported Project types\n\nAt this moment we support NodeJS, Gradle and custom type projects.\n\n### NodeJS\n\nWe read the `package.json` file at project root folder, and we execute `npm version $TYPE` to perform the bump.\n\n### Gradle\n\nWe read the `gradle.properties` file at project root folder, and look for the `version=` key. Then we replace that value to perform the bump.\n\n### Custom type\n\nWe read a `VERSION.txt` file at the project root folder, which must contain just a valid Semver version. Then we replace that value to perform the bump.\n\nThis `VERSION.txt` file can be overriden passing a `VERSION_FILENAME` environment variable, with the name of the file containing the Semver version value.\n\n## Volumes\n\nIt's mandatory to define a volume to your project's workspace, so that the running container is able to find the versioning descriptor.\n\n## Environment variables\n\nFollowing environment variables **must** be set in the running container:\n\n### ALLOW_GIT_TAG\n\nDefines whether the running container creates a Git tag on your project or not.\n\nIf not set, the running container create the git tag. If you want to disallow the creation of the tag, set this environment variable with any value different than `true`.\n\n### DRY_RUN\n\nDefines whether the running container performs the operations or it simply logs a message.\n\nIf not set, the running container will perform the operations. If you want to show the results of the execution, set this environment variable with a value of `true`.\n\n### GIT_CONFIG_USER_NAME\n\nDefines the author of the commit representing the bump.\n\nIf not set, it will use `webump`.\n\n### GIT_CONFIG_USER_EMAIL\n\nDefines the email of the commit representing the bump.\n\nIf not set, it will use `webump@webump.io`.\n\n### VERSION_FILENAME\n\nDefines the name of the file containing a semantic versioning, valid version value.\n\nIf not set, the running container will try to read a file named `VERSION.txt` in the root folder of your project's workspace.\n\n### VERSION_TYPE\n\nDefines the type of the increment to be performed. The valid values are:\n\n| Type | Description |\n|:---- |:----------- |\n|major|Updates the `X` part of a `x.y.z` version, which is a positive integer|\n|minor|Updates the `Y` part of a `x.y.z` version, which is a positive integer|\n|patch|Updates the `Z` part of a `x.y.z` version, which is a positive integer|\n|prerel `prerel`|Optional string composed of alphanumeric characters and hyphens|\n|build `build`|Optional string composed of alphanumeric characters and hyphens.|\n\nIf we read [the docs](https://github.com/fsaintjacques/semver-tool/blob/master/README.md#usage) from `semver` tool:\n\n**version**: A version must match the following regex pattern:\n```\nSEMVER_REGEX=\"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)(\\\\-[0-9A-Za-z-]+(\\\\.[0-9A-Za-z-]+)*)?(\\\\+[0-9A-Za-z-]+(\\\\.[0-9A-Za-z-]+)*)?$\"\n```\nIn english, the version must match X.Y.Z(-PRERELEASE)(+BUILD) where X, Y and Z are positive integers, `PRERELEASE` is an optional string composed of alphanumeric characters and hyphens and `BUILD` is also an optional string composed of alphanumeric characters and hyphens.\n\n## Examples\n\nCreating a minor change in Dry-Run mode:\n```shell\n$ docker run --rm \\\n    -v $PATH_TO_YOUR_PROJECT:/version \\\n    -e DRY_RUN=true \\\n    -e GIT_CONFIG_USER_NAME=mdelapenya \\\n    -e GIT_CONFIG_USER_EMAIL=manuel.delapenya@gmail.com \\\n    -e VERSION_TYPE=minor \\\n    mdelapenya/webump:1.0.0\n```\n\nCreating a minor change in a Docker image:\n```shell\n$ docker run --rm \\\n    -v $PATH_TO_YOUR_PROJECT:/version \\\n    -e VERSION_TYPE=minor \\\n    mdelapenya/webump:1.0.0\n```\n\nCreating a patch change in a project:\n```shell\n$ docker run --rm \\\n    -v $PATH_TO_YOUR_PROJECT:/version \\\n    -e VERSION_TYPE=patch \\\n    mdelapenya/webump:1.0.0\n```\n\nCreating a patch change in a project using a different version file:\n```shell\n$ docker run --rm \\\n    -v $PATH_TO_YOUR_PROJECT:/version \\\n    -e VERSION_FILENAME=.version \n    -e VERSION_TYPE=patch \\\n    mdelapenya/webump:1.0.0\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdelapenya%2Fwebump","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmdelapenya%2Fwebump","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdelapenya%2Fwebump/lists"}