-
Notifications
You must be signed in to change notification settings - Fork 8
133 lines (117 loc) · 5.39 KB
/
pass-java-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
130
131
132
133
name: "Publish: release all Java modules"
run-name: Release all Java modules (${{ inputs.releaseversion }} -> ${{ inputs.nextversion}})
on:
workflow_dispatch:
inputs:
releaseversion:
description: 'Release version'
required: true
nextversion:
description: 'Next dev version'
required: true
jobs:
release:
runs-on: ubuntu-latest
env:
RELEASE: ${{ inputs.releaseversion }}
NEXT: ${{ inputs.nextversion }}
steps:
- name: Checkout main
uses: actions/checkout@v3
with:
path: main
- name: Setup Java & Maven
uses: actions/setup-java@v3
with:
java-version: 17
distribution: 'temurin'
cache: 'maven'
server-id: ossrh
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD
gpg-private-key: ${{ secrets.MAVEN_GPG_KEY }}
gpg-passphrase: MAVEN_GPG_PASSPHRASE
- name: Get the artifact from the main POM
working-directory: main
run: |
echo "ARTIFACT=`mvn help:evaluate -Dexpression=project.artifactId -q -DforceStdout`" >> $GITHUB_ENV
- name: Checkout pass-core
uses: actions/checkout@v3
with:
repository: eclipse-pass/pass-core
path: pass-core
- name: Checkout pass-support
uses: actions/checkout@v3
with:
repository: eclipse-pass/pass-support
path: pass-support
- name: Configure git user
run: |
git config --global user.name ${{ github.actor }}
git config --global user.email "${{ github.actor }}@users.noreply.github.com"
# Combine modules together so maven can do everything at once
- name: Create combined module
run: |
mkdir combined
cp main/pom.xml combined
cp -r pass-core combined
cp -r pass-support combined
sed -i '/<\/developers>/a <modules><module>pass-core</module><module>pass-support</module></modules>' combined/pom.xml
- name: Set the release version, commit the change, and tag it
run: |
(cd main && mvn versions:set -B -ntp -DnewVersion=$RELEASE && git commit -am "Update version to $RELEASE" && git tag $RELEASE)
(cd pass-support && mvn versions:set -B -ntp -DnewVersion=$RELEASE && git commit -am "Update version to $RELEASE" && git tag $RELEASE)
(cd pass-core && mvn versions:set -B -ntp -DnewVersion=$RELEASE && git commit -am "Update version to $RELEASE" && git tag $RELEASE)
(cd combined && mvn versions:set -B -ntp -DnewVersion=$RELEASE)
- name: Release Java modules
uses: ./main/.github/actions/maven-release
with:
repodir: combined
env:
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
- name: Set the next dev version and commit the change
run: |
(cd main && mvn versions:set -B -ntp -DnewVersion=$NEXT && git commit -am "Update version to $NEXT")
(cd pass-support && mvn versions:set -B -ntp -DnewVersion=$NEXT && git commit -am "Update version to $NEXT")
(cd pass-core && mvn versions:set -B -ntp -DnewVersion=$NEXT && git commit -am "Update version to $NEXT")
(cd combined && mvn versions:set -B -ntp -DnewVersion=$NEXT)
- name: Release dev Java modules
working-directory: combined
run: |
echo mvn -B -V -ntp clean deploy -DskipTests -DskipITs
env:
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
- name: Login to GHCR
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Push Docker image to GHCR
run: |
# docker push ghcr.io/eclipse-pass/pass-core-main:$RELEASE
# docker push ghcr.io/eclipse-pass/pass-core-main:$NEXT
# docker push ghcr.io/eclipse-pass/deposit-services-core:$RELEASE
# docker push ghcr.io/eclipse-pass/deposit-services-core:$NEXT
# docker push ghcr.io/eclipse-pass/pass-notification-service:$RELEASE
# docker push ghcr.io/eclipse-pass/pass-notification-service:$NEXT
# docker push ghcr.io/eclipse-pass/jhu-grant-loader:$RELEASE
# docker push ghcr.io/eclipse-pass/jhu-grant-loader:$NEXT
# docker push ghcr.io/eclipse-pass/pass-journal-loader:$RELEASE
# docker push ghcr.io/eclipse-pass/pass-journal-loader:$NEXT
# docker push ghcr.io/eclipse-pass/pass-nihms-loader:$RELEASE
# docker push ghcr.io/eclipse-pass/pass-nihms-loader:$NEXT
- name: Push the commits and tags
run: |
# (cd main && git push origin && git push origin --tags)
# (cd pass-core && git push origin && git push origin --tags)
# (cd pass-core && git push origin && git push origin --tags)
- name: Create GitHub releases
run: |
# gh release create "$RELEASE" --repo=eclipse-pass/main --generate-notes
# gh release create "$RELEASE" --repo=eclipse-pass/pass-core --generate-notes
# gh release create "$RELEASE" --repo=eclipse-pass/pass-support --generate-notes