提交 0d48f086 编写于 作者: B Bogdan Kobylynskyi

Fix release workflow

上级 9ace95a1
......@@ -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:
......
......@@ -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
......
<settings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xsi:schemalocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<!-- Maven Central deployment -->
<server>
<id>ossrh</id>
<username>${env.SONATYPE_USERNAME}</username>
<password>${env.SONATYPE_PASSWORD}</password>
</server>
</servers>
<profiles>
<!-- Signing for Maven Central deployment -->
<profile>
<id>ossrh</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<gpg.executable>${env.GPG_EXECUTABLE}</gpg.executable>
<gpg.passphrase>${env.GPG_PASSPHRASE}</gpg.passphrase>
</properties>
</profile>
</profiles>
</settings>
\ No newline at end of file
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>io.github.kobylynskyi</groupId>
......@@ -69,6 +70,9 @@
<version.maven-build-helper-plugin>3.2.0</version.maven-build-helper-plugin>
<version.maven-scm-provider-gitexe>1.11.2</version.maven-scm-provider-gitexe>
<version.maven-gpg-plugin>1.6</version.maven-gpg-plugin>
<version.maven-shared-utils>3.3.3</version.maven-shared-utils>
<version.graphql-java-codegen>4.1.4-SNAPSHOT</version.graphql-java-codegen>
</properties>
<dependencies>
......@@ -91,7 +95,7 @@
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-shared-utils</artifactId>
<version>3.3.3</version>
<version>${version.maven-shared-utils}</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
......@@ -103,7 +107,7 @@
<dependency>
<groupId>io.github.kobylynskyi</groupId>
<artifactId>graphql-java-codegen</artifactId>
<version>${project.version}</version>
<version>${version.graphql-java-codegen}</version>
</dependency>
</dependencies>
......@@ -242,7 +246,9 @@
<configuration>
<tagNameFormat>v@{project.version}</tagNameFormat>
<!--suppress UnresolvedMavenProperty -->
<developmentVersion>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.patchVersion}</developmentVersion>
<developmentVersion>
${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.patchVersion}
</developmentVersion>
<dryRun>true</dryRun>
</configuration>
</plugin>
......
......@@ -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" "<version.graphql-java-codegen>"
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 := \""
......
......@@ -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 \""
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册