From 835046e5c4d75bee8007f468894fd0d3bee068a3 Mon Sep 17 00:00:00 2001 From: Vojtech Mares Date: Thu, 9 Dec 2021 09:45:45 +0100 Subject: [PATCH] ci: add basic GitLab CI and .releaserc.yml --- .gitlab-ci.yml | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ .releaserc.yml | 29 +++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 .gitlab-ci.yml create mode 100644 .releaserc.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..52ee421 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,48 @@ +default: + image: python:3.9 + +stages: + - test + - build + - pre-release + - release + +test: + stage: test + script: + # - python tests/test.py + - | + echo "TODO: run tests" + +build: + stage: build + script: + - | + echo "TODO: build app (e.g. docker build)" + +release:tag--dry-run: + stage: pre-release + image: node:16-buster-slim + before_script: + - apt-get update && apt-get upgrade -y --no-install-recommends git-core ca-certificates + - npm i -g semantic-release @semantic-release/git @semantic-release/changelog @semantic-release/gitlab + script: + - | + echo "!!! THIS IS A DRY RUN !!!" + echo "NO RELEASE WILL BE CREATED" + - semantic-release --dry-run -b ${CI_COMMIT_REF_NAME} + +release:tag: + stage: pre-release + image: node:16-buster-slim + before_script: + - apt-get update && apt-get upgrade -y --no-install-recommends git-core ca-certificates + - npm i -g semantic-release @semantic-release/git @semantic-release/changelog @semantic-release/gitlab + script: + - semantic-release -b ${CI_COMMIT_REF_NAME} + +release:publish: + stage: release + script: + - | + echo "TODO: release the app (e.g. publish tagged docker image)" diff --git a/.releaserc.yml b/.releaserc.yml new file mode 100644 index 0000000..1a91c95 --- /dev/null +++ b/.releaserc.yml @@ -0,0 +1,29 @@ +verifyConditions: + - "@semantic-release/gitlab" + # - "@semantic-release/changelog" + # - "@semantic-release/git" +prepare: + # - "@semantic-release/changelog" + # - "@semantic-release/git" +generateNotes: + - "@semantic-release/release-notes-generator" +publish: + - "@semantic-release/gitlab" +success: false +fail: false +npmPublish: false +tagFormat: ${version} +plugins: + - - "@semantic-release/commit-analyzer" + - preset: angular + parserOpts: + - "BREAKING CHANGE" + - "BREAKING CHANGES" + - "BREAKING" + - - "@semantic-release/release-notes-generator" + # - - "@semantic-release/changelog" + # - changelogFile: "CHANGELOG.md" + # - - "@semantic-release/git" + # - assets: + # - "CHANGELOG.md" + # message: "chore(CHANGELOG): ${nextRelease.version}\n\n${nextRelease.notes}"