| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
GitLab CI cli for changesets like its GitHub Action, it creates a merge request with all of the package versions updated and changelogs updated and when there are new changesets on master, the MR will be updated. When you're ready, you can merge the merge request and you can either publish the packages to npm manually or setup the action to do it for you.
Note: environment variables are case-sensitive
GLOBAL_AGENT_HTTP_PROXY # optional, if you're using custom GitLab service under proxy
GLOBAL_AGENT_HTTPS_PROXY # As above but for https requests
GLOBAL_AGENT_NO_PROXY # Like above but for no proxied requests
# http_proxy, https_proxy, no_proxy environment variables are supported at the same time
GITLAB_HOST # optional, if you're using custom GitLab host, will fallback to `CI_SERVER_URL` if not provided
GITLAB_TOKEN # required, token with accessibility to push, package registries, and merge request APIs. Note the CI_JOB_TOKEN does not have sufficient permissions
GITLAB_TOKEN_TYPE # optional, type of the provided token in GITLAB_TOKEN. defaults to personal access token. Can be `oauth` if you use Gitlab Oauth (personal access) token
GITLAB_CI_USER_NAME # optional, username with accessibility to push, used in pairs of the above token (if it was personal access token). If not set read it from the Gitlab API
GITLAB_CI_USER_EMAIL # optional, default `gitlab[bot]@users.noreply.gitlab.com`
GITLAB_COMMENT_TYPE # optional, type of the comment. defaults to `discussion`. can be set to `note` to not create a discussion instead of a thread
GITLAB_COMMENT_DISCUSSION_AUTO_RESOLVE # optional, automatically resolve added discussion when changeset is present, if you want to always resolve the discussion, you should actually use `GITLAB_COMMENT_TYPE=note` instead, default `true`
GITLAB_COMMENT_CUSTOM_LINKS # optional, override the links content referenced in the cli bot comment, use {{ addChangesetUrl }} placeholder for the dynamic URL to add a changeset
GITLAB_ADD_CHANGESET_MESSAGE # optional, default commit message for adding changesets on GitLab Web UI
DEBUG_GITLAB_CREDENTIAL # optional, whether to log when setting remote url with sensitive `token` displayedCreate a file at .gitlab-ci.yml with the following content.
stages:
- comment
- release
before_script: yarn --frozen-lockfile
comment:
image: node:lts-alpine
stage: comment
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
script: yarn changesets-gitlab comment # comment automatically like https://github.com/changesets/bot
release:
image: node:lts-alpine
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
script: yarn changesets-gitlabThere are two ways to authenticate with npm when publishing:
For any of the methods, create a file at .gitlab-ci.yml with the following content:
stages:
- comment
- release
before_script: yarn --frozen-lockfile
comment:
image: node:lts-alpine
stage: comment
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
script: yarn changesets-gitlab comment
release:
image: node:lts-alpine
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
script: yarn changesets-gitlab
variables:
INPUT_PUBLISH: yarn releaseBy default the GitLab CI cli creates a .npmrc file with the following content when NPM_TOKEN is present and no .npmrc exists (classic token mode):
//registry.npmjs.org/:_authToken=${process.env.NPM_TOKEN}However, if a .npmrc file is found, the GitLab CI cli does not recreate the file. This is useful if you need to configure the .npmrc file on your own. For example, you can add a step before running the Changesets GitLab CI cli:
script: |
cat << EOF > "$HOME/.npmrc"
email=my@email.com
//registry.npmjs.org/:_authToken=$NPM_TOKEN
EOFIf you need to add additional logic to the version command, you can do so by using a version script.
If the version script is present, this action will run that script instead of changeset version, so please make sure that your script calls changeset version at some point. All the changes made by the script will be included in the MR.
stages:
- comment
- release
before_script: yarn --frozen-lockfile
comment:
image: node:lts-alpine
stage: comment
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
script: yarn changesets-gitlab comment
release:
image: node:lts-alpine
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
script: yarn changesets-gitlab
variables:
INPUT_VERSION: yarn versionIf you are using Yarn Plug'n'Play, you should use a custom version command so that the action can resolve the changeset CLI:
stages:
- comment
- release
before_script: yarn --frozen-lockfile
comment:
image: node:lts-alpine
stage: comment
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
script: yarn changesets-gitlab comment
release:
image: node:lts-alpine
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
script: yarn changesets-gitlab
variables:
INPUT_VERSION: yarn changeset versionYou may also want to run yarn install after the changeset verion command to update the yarn.lock in the version MR. You need to disable immutable lock file setting using an env variable:
release:
image: node:lts-alpine
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
script: yarn changesets-gitlab
variables:
YARN_ENABLE_IMMUTABLE_INSTALLS: 'false'
INPUT_VERSION: yarn update-versionsAnd your update-versions script would be:
{
"update-versions": "changeset version && yarn install"
}| 1stG | RxTS | UnTS |
|---|---|---|
| 1stG | RxTS | UnTS |
|---|---|---|
Detailed changes for each release are documented in CHANGELOG.md.
| Back | FazBrowse Home | New Git URL |