-
Notifications
You must be signed in to change notification settings - Fork 40
129 lines (115 loc) · 3.87 KB
/
release.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
name: Release
on:
workflow_dispatch:
inputs:
version:
description: 'Release version'
required: true
build-tasks:
description: 'Build tasks'
default: 'build aggregateTestReports aggregateJacocoReport publish'
required: false
type: string
permissions:
actions: write
id-token: write
contents: write
jobs:
precheck:
name: Precheck
runs-on: ubuntu-latest
outputs:
version: ${{ steps.vars.outputs.VERSION }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Version
id: vars
shell: bash
run: |
echo "VERSION=${{ github.event.inputs.version }}" >> $GITHUB_OUTPUT
echo ${{ github.event.inputs.version }} > VERSION
git add VERSION
sed -i -e "s/^\:project-version\:\ .*/:project-version: ${{ github.event.inputs.version }}/g" README.adoc
git config --global user.email "${{ secrets.COMMIT_EMAIL }}"
git config --global user.name "Julien Ruaux"
git commit -a -m "Releasing version ${{ github.event.inputs.version }}"
git push origin main
jlink:
name: Jlink
needs: [precheck]
uses: redis/riot/.github/workflows/step-jlink.yml@main
with:
project-version: ${{ needs.precheck.outputs.version }}
tasks: ${{ github.event.inputs.build-tasks }}
secrets:
codecov-token: ${{ secrets.CODECOV_TOKEN }}
release:
name: Release
needs: [precheck, jlink]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: main
fetch-depth: 0
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: artifacts
path: plugins/riot/build
- name: Download repos
uses: actions/download-artifact@v4
with:
name: repos
path: build/repos/local/release
- name: Download jlink
uses: actions/download-artifact@v4
with:
name: jlink
path: out/jreleaser/assemble/riot-standalone/jlink
- name: Setup Java
uses: actions/setup-java@v4
with:
java-version: ${{ vars.JAVA_VERSION }}
distribution: ${{ vars.JAVA_DISTRO }}
cache: gradle
- name: Deploy
env:
GRGIT_USER: ${{ secrets.GIT_USER }}
GRGIT_PASS: ${{ secrets.GIT_ACCESS_TOKEN }}
run: |
./gradlew -Prelease=true -PreproducibleBuild=true publish gitPublishPush -S
- name: Upload deploy artifacts
uses: actions/upload-artifact@v4
with:
retention-days: 7
name: deploy
path: |
build/repos/local/release/
- name: Release
uses: jreleaser/release-action@v2
with:
arguments: full-release
env:
JRELEASER_DOCKER_DEFAULT_USERNAME: ${{ secrets.DOCKER_USERNAME }}
JRELEASER_DOCKER_DEFAULT_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
JRELEASER_GITHUB_PASSWORD: ${{ secrets.GIT_ACCESS_TOKEN }}
JRELEASER_GITHUB_TOKEN: ${{ secrets.GIT_ACCESS_TOKEN }}
JRELEASER_GITHUB_USERNAME: ${{ secrets.GIT_USER }}
JRELEASER_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.GPG_PUBLIC_KEY }}
JRELEASER_GPG_SECRET_KEY: ${{ secrets.GPG_SECRET_KEY }}
JRELEASER_NEXUS2_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
JRELEASER_NEXUS2_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
JRELEASER_PROJECT_VERSION: ${{ needs.precheck.outputs.version }}
JRELEASER_SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
- name: JReleaser release output
if: always()
uses: actions/upload-artifact@v4
with:
name: riot-release
path: |
out/jreleaser/trace.log
out/jreleaser/output.properties