mirror of
https://git.gfz-potsdam.de/naaice/poet.git
synced 2025-12-13 03:18:23 +01:00
ci: add automatic release creation on tag
This commit is contained in:
parent
c9859aa206
commit
dcfb75adee
16
.chglog/CHANGELOG.tpl.md
Executable file
16
.chglog/CHANGELOG.tpl.md
Executable file
@ -0,0 +1,16 @@
|
||||
{{ range .Versions }}
|
||||
<a name="{{ .Tag.Name }}"></a>
|
||||
## {{ if .Tag.Previous }}[{{ .Tag.Name }}]{{ else }}{{ .Tag.Name }}{{ end }} - {{ datetime "2006-01-02" .Tag.Date }}
|
||||
{{ range .CommitGroups -}}
|
||||
### {{ .Title }}
|
||||
{{ range .Commits -}}
|
||||
- {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ .Subject }}
|
||||
{{ end }}
|
||||
{{ end -}}
|
||||
{{ end -}}
|
||||
|
||||
{{ range .Versions -}}
|
||||
{{ if .Tag.Previous -}}
|
||||
[{{ .Tag.Name }}]: {{ $.Info.RepositoryURL }}/compare/{{ .Tag.Previous.Name }}...{{ .Tag.Name }}
|
||||
{{ end -}}
|
||||
{{ end -}}
|
||||
39
.chglog/config.yml
Normal file
39
.chglog/config.yml
Normal file
@ -0,0 +1,39 @@
|
||||
style: gitlab
|
||||
template: CHANGELOG.tpl.md
|
||||
info:
|
||||
title: CHANGELOG
|
||||
repository_url: https://git.gfz-potsdam.de/sec34/port
|
||||
options:
|
||||
commits:
|
||||
filters:
|
||||
Type:
|
||||
- feat
|
||||
- fix
|
||||
- perf
|
||||
- refactor
|
||||
- data
|
||||
- build
|
||||
- util
|
||||
- doc
|
||||
- chore
|
||||
- ci
|
||||
commit_groups:
|
||||
title_maps:
|
||||
feat: Features
|
||||
fix: Bug Fixes
|
||||
perf: Performance Improvements
|
||||
refactor: Code Refactoring
|
||||
data: Simulation Input
|
||||
build: Build System
|
||||
util: Evaluation Scripts
|
||||
doc: Documentation
|
||||
chore: Householding and Cleanup
|
||||
ci: CI
|
||||
header:
|
||||
pattern: "^(\\w*)\\:\\s(.*)$"
|
||||
pattern_maps:
|
||||
- Type
|
||||
- Subject
|
||||
notes:
|
||||
keywords:
|
||||
- BREAKING CHANGE
|
||||
@ -20,9 +20,12 @@ image: git.gfz-potsdam.de:5000/sec34/port:builder
|
||||
|
||||
stages: # List of stages for jobs, and their order of execution
|
||||
- build
|
||||
- release
|
||||
|
||||
variables:
|
||||
GIT_SUBMODULE_STRATEGY: recursive
|
||||
SOURCE_ARCHIVE_NAME: 'port_${CI_COMMIT_TAG}_sources.tar.gz'
|
||||
CHANGELOG_FILE: 'commit_changelog.md'
|
||||
|
||||
build-poet: # This job runs in the build stage, which runs first.
|
||||
stage: build
|
||||
@ -30,3 +33,55 @@ build-poet: # This job runs in the build stage, which runs first.
|
||||
- mkdir build && cd build
|
||||
- cmake ..
|
||||
- make -j$(nproc)
|
||||
|
||||
archive-sources: # This job runs in the build stage, which runs first.
|
||||
image: python:3
|
||||
stage: release
|
||||
|
||||
before_script:
|
||||
- pip install git-archive-all
|
||||
- echo ARCHIVE_JOB_ID=${CI_JOB_ID} >> archives.env
|
||||
script:
|
||||
- git-archive-all ${SOURCE_ARCHIVE_NAME}
|
||||
artifacts:
|
||||
paths:
|
||||
- ${SOURCE_ARCHIVE_NAME}
|
||||
reports:
|
||||
dotenv: archives.env
|
||||
rules:
|
||||
- if: $CI_COMMIT_TAG
|
||||
|
||||
release-description:
|
||||
image: golang:bullseye
|
||||
stage: release
|
||||
rules:
|
||||
- if: $CI_COMMIT_TAG
|
||||
before_script:
|
||||
- go install github.com/git-chglog/git-chglog/cmd/git-chglog@v0.15.2
|
||||
script:
|
||||
- git-chglog -o ${CHANGELOG_FILE} ${CI_COMMIT_TAG}
|
||||
artifacts:
|
||||
paths:
|
||||
- ${CHANGELOG_FILE}
|
||||
|
||||
|
||||
release-create:
|
||||
stage: release
|
||||
image: registry.gitlab.com/gitlab-org/release-cli:latest
|
||||
rules:
|
||||
- if: $CI_COMMIT_TAG
|
||||
script:
|
||||
- echo "Running release job"
|
||||
needs:
|
||||
- job: archive-sources
|
||||
artifacts: true
|
||||
- job: release-description
|
||||
artifacts: true
|
||||
release:
|
||||
tag_name: $CI_COMMIT_TAG
|
||||
name: 'PORT $CI_COMMIT_TAG'
|
||||
description: ${CHANGELOG_FILE}
|
||||
assets:
|
||||
links:
|
||||
- name: '${SOURCE_ARCHIVE_NAME}'
|
||||
url: 'https://git.gfz-potsdam.de/sec34/port/-/jobs/${ARCHIVE_JOB_ID}/artifacts/file/${SOURCE_ARCHIVE_NAME}'
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user