@@ -52,33 +52,20 @@ jobs:
52
52
secret-presence :
53
53
runs-on : ubuntu-latest
54
54
outputs :
55
- GPG_PRIVATE_KEY : ${{ steps.secret-presence.outputs.GPG_PRIVATE_KEY }}
56
- GPG_PASSPHRASE : ${{ steps.secret-presence.outputs.GPG_PASSPHRASE }}
57
55
DOCKER_HUB_TOKEN : ${{ steps.secret-presence.outputs.DOCKER_HUB_TOKEN }}
56
+ HAS_OSSRH : ${{ steps.secret-presence.outputs.HAS_OSSRH }}
58
57
steps :
59
58
- name : Check whether secrets exist
60
59
id : secret-presence
61
60
run : |
62
- [ ! -z "${{ secrets.GPG_PRIVATE_KEY }}" ] && echo "GPG_PRIVATE_KEY=true" >> $GITHUB_OUTPUT
63
- [ ! -z "${{ secrets.GPG_PASSPHRASE }}" ] && echo "GPG_PASSPHRASE=true" >> $GITHUB_OUTPUT
64
61
[ ! -z "${{ secrets.DOCKER_HUB_TOKEN }}" ] && echo "DOCKER_HUB_TOKEN=true" >> $GITHUB_OUTPUT
62
+ [ ! -z "${{ secrets.ORG_GPG_PASSPHRASE }}" ] &&
63
+ [ ! -z "${{ secrets.ORG_GPG_PRIVATE_KEY }}" ] &&
64
+ [ ! -z "${{ secrets.ORG_OSSRH_USERNAME }}" ] &&
65
+ [ ! -z "${{ secrets.ORG_OSSRH_PASSWORD }}" ] &&
66
+ echo "HAS_OSSRH=true" >> $GITHUB_OUTPUT
65
67
exit 0
66
68
67
- build-extensions :
68
- runs-on : ubuntu-latest
69
- needs : [ secret-presence ]
70
- steps :
71
- # Set-Up
72
- - uses : actions/checkout@v3.5.2
73
- - uses : ./.github/actions/setup-java
74
- # Build
75
- - name : Build Extensions
76
- run : |-
77
- ./gradlew -p edc-extensions build
78
- env :
79
- GITHUB_PACKAGE_USERNAME : ${{ github.actor }}
80
- GITHUB_PACKAGE_PASSWORD : ${{ secrets.GITHUB_TOKEN }}
81
-
82
69
build-docker-images :
83
70
name : " Create Docker Images"
84
71
runs-on : ubuntu-latest
@@ -107,33 +94,47 @@ jobs:
107
94
docker_user : ${{ secrets.DOCKER_HUB_USER }}
108
95
docker_token : ${{ secrets.DOCKER_HUB_TOKEN }}
109
96
110
- publish-to-github-packages :
97
+ publish-to-maven-central :
98
+ name : " Publish artefacts to OSSRH Snapshots / MavenCentral"
111
99
runs-on : ubuntu-latest
112
100
permissions :
113
101
contents : read
114
102
packages : write
115
- needs : [ secret-presence, build-extensions ]
103
+ needs : [ secret-presence ]
116
104
117
105
# do not run on PR branches, do not run on releases
118
106
if : |
119
- needs.secret-presence.outputs.GPG_PASSPHRASE && needs.secret-presence.outputs.GPG_PRIVATE_KEY && github.event_name != 'pull_request' && github.ref != 'refs/heads/releases'
107
+ needs.secret-presence.outputs.HAS_OSSRH && github.event_name != 'pull_request' && github.ref != 'refs/heads/releases'
120
108
steps :
109
+ - name : List Keys
110
+ run : |
111
+ gpg -K --keyid-format=long
112
+
113
+ - name : Import GPG Private Key
114
+ run : |
115
+ echo "use-agent" >> ~/.gnupg/gpg.conf
116
+ echo "pinentry-mode loopback" >> ~/.gnupg/gpg.conf
117
+ echo -e "${{ secrets.ORG_GPG_PRIVATE_KEY }}" | gpg --import --batch
118
+ for fpr in $(gpg --list-keys --with-colons | awk -F: '/fpr:/ {print $10}' | sort -u);
119
+ do
120
+ echo -e "5\\ny\\n" | gpg --batch --command-fd 0 --expert --edit-key $fpr trust;
121
+ done
122
+
121
123
# Set-Up
122
124
- uses : actions/checkout@v3.5.2
123
-
124
125
- uses : ./.github/actions/setup-java
125
- - name : Import GPG Key
126
- uses : crazy-max/ghaction-import-gpg@v5
127
- with :
128
- gpg_private_key : ${{ secrets.GPG_PRIVATE_KEY }}
129
- passphrase : ${{ secrets.GPG_PASSPHRASE }}
130
126
131
- # publish snapshots
132
- - name : Publish snapshot versions
133
- run : |-
134
- echo "Publishing Version $(grep -e "version" gradle.properties | cut -f2 -d"=") to Github Packages"
135
- ./gradlew publishAllPublicationsToGitHubPackagesRepository
127
+ # publish snapshots or releases
128
+ - name : Publish version
136
129
env :
137
- REPO : ${{ github.repository }}
138
- GITHUB_PACKAGE_USERNAME : ${{ github.actor }}
139
- GITHUB_PACKAGE_PASSWORD : ${{ secrets.GITHUB_TOKEN }}
130
+ OSSRH_PASSWORD : ${{ secrets.ORG_OSSRH_PASSWORD }}
131
+ OSSRH_USER : ${{ secrets.ORG_OSSRH_USERNAME }}
132
+ run : |-
133
+ VERSION=$(./gradlew properties -q | grep "version:" | awk '{print $2}')
134
+ cmd=""
135
+ if [[ $VERSION != *-SNAPSHOT ]]
136
+ then
137
+ cmd="closeAndReleaseSonatypeStagingRepository";
138
+ fi
139
+ echo "Publishing Version $VERSION to Sonatype"
140
+ ./gradlew publishToSonatype ${cmd} --no-parallel -Pversion=$VERSION -Psigning.gnupg.executable=gpg -Psigning.gnupg.passphrase="${{ secrets.ORG_GPG_PASSPHRASE }}"
0 commit comments