From 0d48f086c29f6d19d3359e0292be399fb2f355cc Mon Sep 17 00:00:00 2001
From: Bogdan Kobylynskyi <92bogdan@gmail.com>
Date: Thu, 4 Mar 2021 19:38:19 -0500
Subject: [PATCH] Fix release workflow
---
.github/workflows/github.yml | 32 ++--
.github/workflows/release.yml | 138 ++++++++++--------
plugins/maven/.maven.xml | 27 ++++
.../graphql-java-codegen-maven-plugin/pom.xml | 14 +-
.../update-release-version-in-build-files.sh | 12 +-
scripts/update-release-version-in-readme.sh | 3 +-
6 files changed, 143 insertions(+), 83 deletions(-)
create mode 100644 plugins/maven/.maven.xml
diff --git a/.github/workflows/github.yml b/.github/workflows/github.yml
index 5562f1c5..8e27f8de 100644
--- a/.github/workflows/github.yml
+++ b/.github/workflows/github.yml
@@ -47,22 +47,22 @@ jobs:
- name: Build library
run: ./gradlew build publishToMavenLocal publishAllPublicationsToIvyRepository --warning-mode all
- - name: Build gradle plugin
- run: ./gradlew -p plugins/gradle/graphql-java-codegen-gradle-plugin build publishToMavenLocal --warning-mode all
-
- name: Build maven plugin
working-directory: plugins/maven/graphql-java-codegen-maven-plugin
run: mvn install
- - name: Build sbt plugin
- working-directory: plugins/sbt/graphql-java-codegen-sbt-plugin
- run: sbt compile publishLocal --debug
+ - name: Build maven example-server
+ working-directory: plugins/maven/example-server
+ run: mvn package
- - name: Build sbt test
- working-directory: plugins/sbt/graphql-java-codegen-sbt-plugin
- run: sbt scripted
+ - name: Build maven example-client
+ working-directory: plugins/maven/example-client
+ run: mvn package
- - name: Build gradle example-server --warning-mode all
+ - name: Build gradle plugin
+ run: ./gradlew -p plugins/gradle/graphql-java-codegen-gradle-plugin build publishToMavenLocal --warning-mode all
+
+ - name: Build gradle example-server
run: ./gradlew -p plugins/gradle/example-server test --warning-mode all
- name: Build gradle example-client
@@ -71,13 +71,13 @@ jobs:
- name: Build gradle example-client-kotlin
run: ./gradlew -p plugins/gradle/example-client-kotlin build --warning-mode all
- - name: Build maven example-server
- working-directory: plugins/maven/example-server
- run: mvn package
+ - name: Build sbt plugin
+ working-directory: plugins/sbt/graphql-java-codegen-sbt-plugin
+ run: sbt compile publishLocal --debug
- - name: Build maven example-client
- working-directory: plugins/maven/example-client
- run: mvn package
+ - name: Build sbt test
+ working-directory: plugins/sbt/graphql-java-codegen-sbt-plugin
+ run: sbt scripted
sonar:
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 3104be5c..110bb0a9 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -13,19 +13,19 @@ on:
required: true
publish_library:
description: 'Publish library'
- default: 'true'
+ default: 'Y'
required: true
publish_gradle_plugin:
description: 'Publish Gradle Plugin'
- default: 'true'
+ default: 'Y'
required: true
publish_maven_plugin:
description: 'Publish Maven Plugin'
- default: 'true'
+ default: 'Y'
required: true
publish_sbt_plugin:
description: 'Publish SBT Plugin'
- default: 'true'
+ default: 'Y'
required: true
jobs:
@@ -61,6 +61,27 @@ jobs:
restore-keys: |
${{ runner.os }}-ivy-
+ - name: Set up GPG
+ run: |
+ echo ${{ github.workspace }}
+ # gpg init
+ mkdir ~/.gnupg && echo use-agent >> ~/.gnupg/gpg.conf
+ echo pinentry-mode loopback >> ~/.gnupg/gpg.conf
+ echo allow-loopback-pinentry >> ~/.gnupg/gpg-agent.conf
+ echo RELOADAGENT | gpg-connect-agent
+ echo ${SIGNING_KEY} | awk '{gsub(/\\n/,"\n")}1'| gpg --dearmor > ${{ github.workspace }}/secretKeyRingFile.gpg
+ gpg --import --pinentry-mode loopback --batch --passphrase '${SIGNING_PASSWORD}' ${{ github.workspace }}/secretKeyRingFile.gpg
+ ls -al ${{ github.workspace }}
+ ls -al ~/.gnupg/
+ env:
+ SIGNING_KEY: ${{ secrets.OSSRH_GPG_SECRET_KEY }}
+ SIGNING_PASSWORD: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
+
+ - name: Configure Git
+ run: |
+ git config --global user.name 'Bogdan Kobylynskyi'
+ git config --global user.email 'kobylynskyi@users.noreply.github.com'
+
- name: Update version of Maven plugin sub-project
working-directory: plugins/maven/graphql-java-codegen-maven-plugin
run: mvn versions:set -DnewVersion="${{ github.event.inputs.release_version }}" -DgenerateBackupPoms=false
@@ -79,16 +100,6 @@ jobs:
- name: Update versions in all README files
run: scripts/update-release-version-in-readme.sh ${{ github.event.inputs.release_version }}
- #
- # VERSIONS ARE IN THE RELEASE STATE, SO WE CAN COMMIT THEM
- #
-
- - name: Commit release version so that iw will be pus
- run: |
- git config --global user.name 'Bogdan Kobylynskyi'
- git config --global user.email 'kobylynskyi@users.noreply.github.com'
- git commit -am "Bump version to ${{ github.event.inputs.release_version }}"
-
#
# VERSIONS UPDATED
# NOW WE ARE READY FOR THE FINAL BUILD
@@ -97,90 +108,101 @@ jobs:
- name: Build library
run: ./gradlew build publishToMavenLocal publishAllPublicationsToIvyRepository --warning-mode all
- - name: Build gradle plugin
- run: ./gradlew -p plugins/gradle/graphql-java-codegen-gradle-plugin build publishToMavenLocal --warning-mode all
-
- - name: Update version of Maven plugin to SNAPSHOT (required by publish-plugin)
- working-directory: plugins/maven/graphql-java-codegen-maven-plugin
- run: mvn versions:set -DnewVersion="${{ github.event.inputs.release_version }}-SNAPSHOT" -DgenerateBackupPoms=false
-
- name: Build maven plugin
+ if: github.event.inputs.publish_maven_plugin == 'Y'
working-directory: plugins/maven/graphql-java-codegen-maven-plugin
run: mvn install
- - name: Build sbt plugin
- working-directory: plugins/sbt/graphql-java-codegen-sbt-plugin
- run: sbt compile publishLocal --debug
+ - name: Build maven example-server
+ if: github.event.inputs.publish_maven_plugin == 'Y'
+ working-directory: plugins/maven/example-server
+ run: mvn package
- - name: Build sbt test
- working-directory: plugins/sbt/graphql-java-codegen-sbt-plugin
- run: sbt scripted
+ - name: Build maven example-client
+ if: github.event.inputs.publish_maven_plugin == 'Y'
+ working-directory: plugins/maven/example-client
+ run: mvn package
- - name: Build gradle example-server --warning-mode all
+ - name: Build gradle plugin
+ run: ./gradlew -p plugins/gradle/graphql-java-codegen-gradle-plugin build publishToMavenLocal --warning-mode all
+
+ - name: Build gradle example-server
+ if: github.event.inputs.publish_gradle_plugin == 'Y'
run: ./gradlew -p plugins/gradle/example-server test --warning-mode all
- name: Build gradle example-client
+ if: github.event.inputs.publish_gradle_plugin == 'Y'
run: ./gradlew -p plugins/gradle/example-client test --warning-mode all
- name: Build gradle example-client-kotlin
+ if: github.event.inputs.publish_gradle_plugin == 'Y'
run: ./gradlew -p plugins/gradle/example-client-kotlin build --warning-mode all
- - name: Build maven example-server
- working-directory: plugins/maven/example-server
- run: mvn package
-
- - name: Build maven example-client
- working-directory: plugins/maven/example-client
- run: mvn package
+ - name: Build sbt plugin
+ if: github.event.inputs.publish_sbt_plugin == 'Y'
+ working-directory: plugins/sbt/graphql-java-codegen-sbt-plugin
+ run: sbt compile publishLocal --debug
- - name: Install gpg secret key
- run: cat <(echo -e "${{ secrets.OSSRH_GPG_SECRET_KEY }}") | gpg --batch --import
+ - name: Build sbt test
+ if: github.event.inputs.publish_sbt_plugin == 'Y'
+ working-directory: plugins/sbt/graphql-java-codegen-sbt-plugin
+ run: sbt scripted
#
# BUILD OF RELEASE VERSION COMPLETED
- # NOW PERFORMING THE PUBLISH
+ # SO WE CAN COMMIT THEM
+ #
+
+ - name: Update version of Maven plugin to SNAPSHOT (required by publish-plugin)
+ if: github.event.inputs.publish_maven_plugin == 'Y'
+ working-directory: plugins/maven/graphql-java-codegen-maven-plugin
+ run: mvn versions:set -DnewVersion="${{ github.event.inputs.release_version }}-SNAPSHOT" -DgenerateBackupPoms=false
+
+ - name: Commit release version
+ run: git commit -am "Bump version to ${{ github.event.inputs.release_version }}"
+
+ #
+ # VERSIONS ARE IN THE RELEASE STATE AND READY TO PUBLISH
#
- name: Release library
- if: ${{ github.event.inputs.publish_library }} == "true"
+ if: github.event.inputs.publish_library == 'Y'
run: |
./gradlew publish \
- -Dorg.gradle.internal.publish.checksums.insecure=true \
- -Pgradle.publish.key=${{ secrets.GRADLE_PUBLISH_KEY}} \
- -Pgradle.publish.secret=${{ secrets.GRADLE_PUBLISH_SECRET }}
- env:
- OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
- OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
- SIGNING_KEY: ${{ secrets.OSSRH_GPG_SECRET_KEY }}
- SIGNING_PASSWORD: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
- RELEASE_VERSION: ${{ github.event.inputs.release_version }}
+ -Dorg.gradle.internal.publish.checksums.insecure=true \
+ -PsonatypeUsername=${{ secrets.OSSRH_USERNAME }} \
+ -PsonatypePassword=${{ secrets.OSSRH_PASSWORD }} \
+ -Psigning.keyId=${{ secrets.OSSRH_GPG_SECRET_KEY_ID }} \
+ -Psigning.password=${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }} \
+ -Psigning.secretKeyRingFile=${{ github.workspace }}/secretKeyRingFile.gpg
- name: Release Gradle plugin
- if: ${{ github.event.inputs.publish_gradle_plugin }} == "true"
+ if: github.event.inputs.publish_gradle_plugin == 'Y'
run: |
- ./gradlew \
- -p plugins/gradle/graphql-java-codegen-gradle-plugin \
- publishPlugins \
+ ./gradlew -p plugins/gradle/graphql-java-codegen-gradle-plugin publishPlugins \
-Dorg.gradle.internal.publish.checksums.insecure=true \
-Pgradle.publish.key=${{ secrets.GRADLE_PUBLISH_KEY}} \
-Pgradle.publish.secret=${{ secrets.GRADLE_PUBLISH_SECRET }}
- env:
- SIGNING_KEY: ${{ secrets.OSSRH_GPG_SECRET_KEY }}
- SIGNING_PASSWORD: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
- RELEASE_VERSION: ${{ github.event.inputs.release_version }}
- name: Release Maven plugin
- if: ${{ github.event.inputs.publish_maven_plugin }} == "true"
+ if: github.event.inputs.publish_maven_plugin == 'Y'
working-directory: plugins/maven/graphql-java-codegen-maven-plugin
run: |
mvn \
+ --settings .maven.xml
--no-transfer-progress \
--batch-mode \
-Dgpg.passphrase=${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }} \
release:clean release:prepare release:perform
+ env:
+ GPG_EXECUTABLE: gpg
+ GPG_SECRET_KEYS: ${{ secrets.OSSRH_GPG_SECRET_KEY }}
+ GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
+ SONATYPE_USER: ${{ secrets.OSSRH_USERNAME }}
+ SONATYPE_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
- name: Release SBT plugin
- if: ${{ github.event.inputs.publish_sbt_plugin }} == "true"
+ if: github.event.inputs.publish_sbt_plugin == 'Y'
working-directory: plugins/sbt/graphql-java-codegen-sbt-plugin
run: sbt release with-defaults default-tag-exists-answer k
diff --git a/plugins/maven/.maven.xml b/plugins/maven/.maven.xml
new file mode 100644
index 00000000..60dda0a5
--- /dev/null
+++ b/plugins/maven/.maven.xml
@@ -0,0 +1,27 @@
+
+
+
+
+ ossrh
+ ${env.SONATYPE_USERNAME}
+ ${env.SONATYPE_PASSWORD}
+
+
+
+
+
+
+ ossrh
+
+ true
+
+
+ ${env.GPG_EXECUTABLE}
+ ${env.GPG_PASSPHRASE}
+
+
+
+
\ No newline at end of file
diff --git a/plugins/maven/graphql-java-codegen-maven-plugin/pom.xml b/plugins/maven/graphql-java-codegen-maven-plugin/pom.xml
index 5e62cea3..7e9dacbb 100644
--- a/plugins/maven/graphql-java-codegen-maven-plugin/pom.xml
+++ b/plugins/maven/graphql-java-codegen-maven-plugin/pom.xml
@@ -1,4 +1,5 @@
-
+
4.0.0
io.github.kobylynskyi
@@ -69,6 +70,9 @@
3.2.0
1.11.2
1.6
+ 3.3.3
+
+ 4.1.4-SNAPSHOT
@@ -91,7 +95,7 @@
org.apache.maven.shared
maven-shared-utils
- 3.3.3
+ ${version.maven-shared-utils}
org.apache.maven.plugin-tools
@@ -103,7 +107,7 @@
io.github.kobylynskyi
graphql-java-codegen
- ${project.version}
+ ${version.graphql-java-codegen}
@@ -242,7 +246,9 @@
v@{project.version}
- ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.patchVersion}
+
+ ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.patchVersion}
+
true
diff --git a/scripts/update-release-version-in-build-files.sh b/scripts/update-release-version-in-build-files.sh
index 09cea700..17abe9b1 100755
--- a/scripts/update-release-version-in-build-files.sh
+++ b/scripts/update-release-version-in-build-files.sh
@@ -4,13 +4,17 @@ RELEASE_VERSION=$1
RELEASE_VERSION_ESCAPED=${RELEASE_VERSION//./\\.}
set_version_in_file() {
- sed -i '' "s/$2[A-Z0-9.\-]*/$2$RELEASE_VERSION_ESCAPED/" "$1"
+ # for mac add '' after -i: sed -i '' "s...
+ sed -i "s/$2[A-Z0-9.\-]*/$2$RELEASE_VERSION_ESCAPED/gw /tmp/sed.done" "$1"
echo "Updated version in $1"
+ grep --color -e "" /tmp/sed.done
}
-set_version_in_file "build.gradle" "var graphqlCodegenVersion = '"
+set_version_in_file "build.gradle" "def graphqlCodegenVersion = '"
-set_version_in_file "plugins/gradle/graphql-java-codegen-gradle-plugin/build.gradle" "var graphqlCodegenGradlePluginVersion = '"
+set_version_in_file "plugins/maven/graphql-java-codegen-maven-plugin/pom.xml" ""
+
+set_version_in_file "plugins/gradle/graphql-java-codegen-gradle-plugin/build.gradle" "def graphqlCodegenGradlePluginVersion = '"
set_version_in_file "plugins/gradle/example-server/build.gradle" "io.github.kobylynskyi.graphql.codegen\" version \""
@@ -18,7 +22,7 @@ set_version_in_file "plugins/gradle/example-client/build.gradle" "implementation
set_version_in_file "plugins/gradle/example-client/build.gradle" "io.github.kobylynskyi.graphql.codegen\" version \""
set_version_in_file "plugins/gradle/example-client-kotlin/build.gradle" "id \"io.github.kobylynskyi.graphql.codegen\" version \""
-set_version_in_file "plugins/gradle/example-client-kotlin/build.gradle" "var graphqlCodegenClientKotlinVersion = '"
+set_version_in_file "plugins/gradle/example-client-kotlin/build.gradle" "def graphqlCodegenClientKotlinVersion = '"
set_version_in_file "plugins/gradle/example-client-kotlin/build.gradle" "implementation \"io.github.kobylynskyi:graphql-java-codegen:"
set_version_in_file "plugins/sbt/graphql-java-codegen-sbt-plugin/version.sbt" "version in ThisBuild := \""
diff --git a/scripts/update-release-version-in-readme.sh b/scripts/update-release-version-in-readme.sh
index 6fb499aa..72cd855d 100755
--- a/scripts/update-release-version-in-readme.sh
+++ b/scripts/update-release-version-in-readme.sh
@@ -4,8 +4,9 @@ RELEASE_VERSION=$1
RELEASE_VERSION_ESCAPED=${RELEASE_VERSION//./\\.}
set_version_in_file() {
- sed -i '' "s/$2[A-Z0-9.\-]*/$2$RELEASE_VERSION_ESCAPED/" "$1"
+ sed -i "s/$2[A-Z0-9.\-]*/$2$RELEASE_VERSION_ESCAPED/gw /tmp/sed.done" "$1"
echo "Updated version in $1"
+ grep --color -e "" /tmp/sed.done
}
set_version_in_file "plugins/gradle/README.md" "id \"io.github.kobylynskyi.graphql.codegen\" version \""
--
GitLab