- Dec 09, 2021
-
-
Daniel Dehennin authored
The previous rules template set did not permit to combine rules easily in user jobs. Using a single hash of individual rules permit to reference them more clearly. It avoids duplicated conditionnals in the current rules set and marke it easier to combine them in user jobs, with some limitations[1]. * templates/Rules.yaml: define the `.rules-map` hash of individual rules and reference them in rules templates * templates/Release/Semantic-release.yaml: use the `.rules-map` directly to reduce the conditionnal duplication Closes #3 Footnotes: [1] https://forum.gitlab.com/t/add-conditions-to-rules-array-merged-with-reference/62600
-
- Dec 06, 2021
-
-
Daniel Dehennin authored
Gitlab does not permit to easily add pattern to skip CI pipelines based on commit messages[1]. * templates/Rules.yaml: exclude commits with message matching some variations around `draft` and `wip`. Closes: #2 Footnotes: [1] https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/pipeline/chain/skip.rb
-
Daniel Dehennin authored
Closes #1
-
- Nov 30, 2021
-
-
Daniel Dehennin authored
* templates/Release/Semantic-release.yaml: use `semantic-release-gitlab` image.
-
Daniel Dehennin authored
We want to tag images based on the different steps of the release cycle: - `dev` images where developpement is integrated - `testing` images where releases are stabilised - `stable` images when the release is done - `major` tag with only the first digit of the semantic version, this tag will always point to the latest release of the major version - `minor` tag with only the first 2 digits of the semantic version, this tag will always point to the latest release of the minor version - `release` tag with the full semantic version - `latest`/`stable` point to the latest stable image Define `.tag-docker-image` template used by `*-docker-tag` jobs It tag the `${IMAGE_NAME}:${SOURCE_TAG}` with the tag `${IMAGE_TAG}` USAGE ===== foo-docker-tag-devel: extends: .tag-docker-image variables: IMAGE_TAG: 'devel' REQUIREMENTS ============ - A `release` stage must be present in your pipeline or it must be overriden by the extending job to feet your need. - The `.not-on-stable` rules template OPTIONAL VARIABLES ================== - `IMAGE_NAME`: defaults to `${CI_JOB_NAME}` with any suffix `-docker-tag*` removed - `SOURCE_TAG`: source image tag to retag, defaults to `git-${CI_COMMIT_SHORT_SHA}` - `IMAGE_TAG`: image tag, defaults to `${CI_COMMIT_TAG}` with prefix `RELEASE_PREFIX` removed - `RELEASE_PREFIX`: prefix of the `RELEASE`, defaults to `release/` USED CI VARIABLES ================= - `CI_REGISTRY` - `CI_REGISTRY_USER` - `CI_REGISTRY_PASSWORD` - `CI_REGISTRY_IMAGE`
-
Daniel Dehennin authored
Define `.build-docker-image` template used by `*-docker-build` jobs It build the container image and push it to `${CI_REGISTRY}` USAGE ===== foo-docker-build: extends: .build-docker-image variables: DOCKERFILE: Some-specific.Dockerfile IMAGE_TAG: $CI_COMMIT_REF_SLUG REQUIREMENTS ============ - A `build` stage must be present in your pipeline or it must be overriden by the extending job to feet your need. - The `.not-on-stable` rules template OPTIONAL VARIABLES ================== - `IMAGE_NAME`: defaults to `${CI_JOB_NAME}` with any suffix `-docker-build*` removed - `DOCKERFILE`: defaults, in order - to value set by the user - to `Dockerfile.${IMAGE_NAME}` if the file exists - to `Dockerfile` if the file exists - `IMAGE_TAG`: defaults to `git-${CI_COMMIT_SHORT_SHA}` USED CI VARIABLES ================= - `CI_REGISTRY` - `CI_REGISTRY_USER` - `CI_REGISTRY_PASSWORD` - `CI_REGISTRY_IMAGE`
-
Daniel Dehennin authored
Create new release when merge requests are merged into the `$STABLE_BRANCH` branch. * templates/Release/Semantic-release.yaml: run `semantic-release` with the latest EOLE container for `$STABLE_BRANCH` branch if one of its configuration is present. * .gitlab-ci.yml: execute a new stage `release` for `semantic-release`. * release.config.js: create `docs/CHANGELOG.md` and publish new releases on Gitlab. Mangle commits to have links for users, issues and commits id. * release-rules.js: create semantic version update rules based on `docs/CONTRIBUTING.md`.
-
- Nov 26, 2021
-
-
Daniel Dehennin authored
This make a better distinction between `stable` software and software deployed in production. We define 3 branches: - `dev`: new developped features are integrated here, this is the default branch - `testing`: is a fork of `dev` when we want to prepare the next release, this is the branch from where release bugfixes are derived and merged back - `stable`: is where the `testing` branch is merged to produce a new release
-
- Nov 23, 2021
-
-
Daniel Dehennin authored
We define rules to match somewhate a git-flow style workflow to activate jobs: - `.not-on-prod`: on all branches except production - `.on-branches` : on supporting branches, i.e. everything except production and developpment - `.on-dev`: on developpment branch only - `.on-prod`: on production branch only - `.on-release-tag`: on the release tag only We always exclude pipeline triggered from schedule. * templates/Rules.yaml: define the new rules templates. * templates/Lint/Commitlint.yaml (commitlint): execute on all branch except production.
-
Daniel Dehennin authored
* templates/Lint/Commitlint.yaml (commitlint): use `$CI_DEFAULT_BRANCH` as base to calculate the list of commits to check.
-
- Oct 20, 2021
-
-
Daniel Dehennin authored
This will permit other projects to [include](https://docs.gitlab.com/ee/ci/yaml/#include) the defined templates The `templates/Rules.yaml` must be included and jobs will `extends` the templates depending at which moment they must be executed.
-