diff --git a/ci/config/changelog-generator.yml b/ci/config/changelog-generator.yml new file mode 100644 index 0000000000..248e58db73 --- /dev/null +++ b/ci/config/changelog-generator.yml @@ -0,0 +1,17 @@ +changelog: + repository: spring-projects/spring-framework + sections: + - title: ":star: New Features" + labels: + - "type: enhancement" + - title: ":beetle: Bug Fixes" + labels: + - "type: bug" + - "type: regression" + - title: ":notebook_with_decorative_cover: Documentation" + labels: + - "type: documentation" + - title: ":hammer: Dependency Upgrades" + sort: "title" + labels: + - "type: dependency-upgrade" diff --git a/ci/pipeline.yml b/ci/pipeline.yml index 394bbf9140..f22da01dbe 100644 --- a/ci/pipeline.yml +++ b/ci/pipeline.yml @@ -24,9 +24,16 @@ anchors: silent: true icon_emoji: ":concourse:" username: concourse-ci - sontatype-task-params: &sonatype-task-params + sonatype-task-params: &sonatype-task-params SONATYPE_USER_TOKEN: ((sonatype-user-token)) SONATYPE_PASSWORD_TOKEN: ((sonatype-user-token-password)) + changelog-task-params: &changelog-task-params + name: generated-changelog/tag + tag: generated-changelog/tag + body: generated-changelog/changelog.md + github-task-params: &github-task-params + GITHUB_USERNAME: ((github-username)) + GITHUB_TOKEN: ((github-ci-release-token)) resource_types: - name: artifactory-resource @@ -44,6 +51,7 @@ resource_types: source: repository: cfcommunity/slack-notification-resource tag: latest + resources: - name: git-repo type: git @@ -136,6 +144,24 @@ resources: icon: slack source: url: ((slack-webhook-url)) +- name: github-pre-release + type: github-release + icon: briefcase-download-outline + source: + owner: spring-projects + repository: spring-framework + access_token: ((github-ci-release-token)) + pre_release: true + release: false +- name: github-release + type: github-release + icon: briefcase-download + source: + owner: spring-projects + repository: spring-framework + access_token: ((github-ci-release-token)) + pre_release: false + jobs: - name: build-spring-framework-ci-images plan: @@ -335,6 +361,14 @@ jobs: params: RELEASE_TYPE: M <<: *artifactory-task-params + - task: generate-changelog + file: git-repo/ci/tasks/generate-changelog.yml + params: + RELEASE_TYPE: M + <<: *github-task-params + - put: github-pre-release + params: + <<: *changelog-task-params - name: stage-rc serial: true plan: @@ -372,6 +406,14 @@ jobs: params: RELEASE_TYPE: RC <<: *artifactory-task-params + - task: generate-changelog + file: git-repo/ci/tasks/generate-changelog.yml + params: + RELEASE_TYPE: RC + <<: *github-task-params + - put: github-pre-release + params: + <<: *changelog-task-params - name: stage-release serial: true plan: @@ -427,6 +469,15 @@ jobs: params: <<: *bintray-task-params <<: *sonatype-task-params + - task: generate-changelog + file: git-repo/ci/tasks/generate-changelog.yml + params: + RELEASE_TYPE: RELEASE + <<: *github-task-params + - put: github-release + params: + <<: *changelog-task-params + groups: - name: "builds" jobs: ["build", "jdk11-build", "jdk14-build", "jdk15-build"] diff --git a/ci/scripts/generate-changelog.sh b/ci/scripts/generate-changelog.sh new file mode 100755 index 0000000000..b0bc952a33 --- /dev/null +++ b/ci/scripts/generate-changelog.sh @@ -0,0 +1,12 @@ +#!/bin/bash +set -e + +CONFIG_DIR=git-repo/ci/config +version=$( cat version/version ) + +java -jar /github-changelog-generator.jar \ + --spring.config.location=${CONFIG_DIR}/changelog-generator.yml \ + ${version} generated-changelog/changelog.md + +echo ${version} > generated-changelog/version +echo v${version} > generated-changelog/tag diff --git a/ci/tasks/generate-changelog.yml b/ci/tasks/generate-changelog.yml new file mode 100755 index 0000000000..2df097bc29 --- /dev/null +++ b/ci/tasks/generate-changelog.yml @@ -0,0 +1,20 @@ +--- +platform: linux +image_resource: + type: docker-image + source: + repository: springio/github-changelog-generator + tag: '0.0.4' +inputs: +- name: git-repo +- name: version +outputs: +- name: generated-changelog +params: + GITHUB_ORGANIZATION: + GITHUB_REPO: + GITHUB_USERNAME: + GITHUB_TOKEN: + RELEASE_TYPE: +run: + path: git-repo/ci/scripts/generate-changelog.sh