Skip to content

Commit

Permalink
wip sign + publish
Browse files Browse the repository at this point in the history
  • Loading branch information
nesk committed Dec 22, 2024
1 parent 06e4c89 commit 35bdb0b
Show file tree
Hide file tree
Showing 6 changed files with 74 additions and 64 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/deploy-website.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: Deploy documentation and API reference
on: [ push, pull_request ]
#on: [ push, pull_request ]

# Gives the workflow permissions to clone the repo and create a page deployment
permissions:
Expand Down
94 changes: 58 additions & 36 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,52 +3,74 @@ on: push
# workflow_dispatch:
# inputs:
# version:
# description: 'The version number to use'
# description: 'The version number to use (ex: 1.22.3)'
# required: true
# type: string
#env:
# RELEASE_VERSION: ${{ inputs.version }}

jobs:
create-release-pr:
name: Create a pull request for the release
runs-on: ubuntu-latest
permissions:
contents: write
# create-release-pr:
# name: Create a pull request for the release
# runs-on: ubuntu-latest
# permissions:
# contents: write
#
# steps:
# - name: Install chan CLI
# run: npm install -g @geut/chan
#
# - name: Checkout repository
# uses: actions/checkout@v4
#
# - name: Write a new release to CHANGELOG.md
# run: chan release $RELEASE_VERSION --release-prefix=""
#
# - name: Update Akkurate's version in build files
# run: |
# echo 'version = "'$RELEASE_VERSION'"' > ./buildSrc/src/main/kotlin/akkurate.version.gradle.kts;
# sed -ri 's|CONFIG_JSON_VERSION *:.*|CONFIG_JSON_VERSION: '$RELEASE_VERSION'|g' ./.github/workflows/deploy-website.yml;
# sed -ri 's|<var.* name="version".*|<var name="version" value="'$RELEASE_VERSION'"/>|g' ./documentation/v.list;
# sed -ri 's|<instance.* src="akkurate.tree".*|<instance src="akkurate.tree" version="'$RELEASE_VERSION'"/>|g' ./documentation/writerside.cfg;
#
## - name: Commit and push
## uses: stefanzweifel/git-auto-commit-action@v5
## with:
## commit_message: release ${{ inputs.version }}
## branch: release/${{ inputs.version }}
## create_branch: true
## commit_author: Johann Pardanaud <[email protected]>
## tagging_message: ${{ inputs.version }}
#
# - name: Create a draft release
# env:
# GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# run: chan show $RELEASE_VERSION | tail -n +2 | gh release create $RELEASE_VERSION --title "Akkurate $RELEASE_VERSION" --draft --notes-file -

publish:
name: Publish to Maven Central Repository
runs-on: macos-latest
steps:
- name: Install chan CLI
run: npm install -g @geut/chan

- name: Checkout repository
uses: actions/checkout@v4

- name: Write a new release to CHANGELOG.md
env:
# RELEASE_VERSION: ${{ inputs.version }}
RELEASE_VERSION: 0.99.0
run: chan release $RELEASE_VERSION --release-prefix=""
- name: Set up JDK 8
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 8

- name: Update Akkurate's version in build files
env:
# RELEASE_VERSION: ${{ inputs.version }}
RELEASE_VERSION: 0.99.0
run: |
echo 'version = "'$RELEASE_VERSION'"' > ./buildSrc/src/main/kotlin/akkurate.version.gradle.kts;
sed -ri 's|CONFIG_JSON_VERSION *:.*|CONFIG_JSON_VERSION: '$RELEASE_VERSION'|g' ./.github/workflows/deploy-website.yml;
sed -ri 's|<var.* name="version".*|<var name="version" value="'$RELEASE_VERSION'"/>|g' ./documentation/v.list;
sed -ri 's|<instance.* src="akkurate.tree".*|<instance src="akkurate.tree" version="'$RELEASE_VERSION'"/>|g' ./documentation/writerside.cfg;
- name: Validate Gradle wrapper
uses: gradle/actions/wrapper-validation@v3

# - name: Commit and push
# uses: stefanzweifel/git-auto-commit-action@v5
# with:
# commit_message: release ${{ inputs.version }}
# branch: release/${{ inputs.version }}
# create_branch: true
# commit_author: Johann Pardanaud <[email protected]>
# tagging_message: ${{ inputs.version }}
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4

- name: Create a draft release
- name: Publish to Maven Central Repository
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# RELEASE_VERSION: ${{ inputs.version }}
RELEASE_VERSION: 0.99.0
run: chan show $RELEASE_VERSION | tail -n +2 | gh release create $RELEASE_VERSION --title "Akkurate $RELEASE_VERSION" --draft --notes-file -
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGKEY }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGPASSWORD }}
SONATYPE_URL: ${{ vars.SONATYPE_URL }}
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
run: ./gradlew publish
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: Run tests
on: [ push, pull_request ]
#on: [ push, pull_request ]

jobs:
test:
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@ and adapt them when needed.
If you're fixing a bug, create a new test reproducing the bug to avoid future regressions.

New code should be tested with a significant code coverage score (you can check it by using **Run | Run with Coverage**
in IntelliJ).
in IntelliJ).
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ plugins {

kotlin {
explicitApi()
jvmToolchain(8)
// jvmToolchain(8)

sourceSets {
all {
Expand Down
36 changes: 12 additions & 24 deletions buildSrc/src/main/kotlin/akkurate.publishing-conventions.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,41 +4,29 @@ plugins {
signing
}

ext["signing.keyId"] = System.getenv("SIGNING_KEY_ID")
ext["signing.password"] = System.getenv("SIGNING_PASSWORD")
ext["signing.secretKeyRingFile"] = System.getenv("SIGNING_SECRET_KEY_RING_FILE")
ext["sonatypeUsername"] = System.getenv("SONATYPE_USERNAME")
ext["sonatypePassword"] = System.getenv("SONATYPE_PASSWORD")

fun hasExtra(name: String) = ext[name] != null
fun getExtra(name: String) = ext[name]?.toString()

publishing {
// Configure maven central repository
repositories {
maven {
name = "sonatype"
credentials {
username = getExtra("sonatypeUsername")
password = getExtra("sonatypePassword")
}

val isSnapshot = project.version.toString().endsWith("-SNAPSHOT")
if (isSnapshot) {
setUrl("https://s01.oss.sonatype.org/content/repositories/snapshots/")
} else {
setUrl("https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/")
System.getenv("SONATYPE_URL")?.let { setUrl(it) }

credentials {
username = System.getenv("SONATYPE_USERNAME")
password = System.getenv("SONATYPE_PASSWORD")
}
}
}
}

// Signing artifacts. Signing.* extra properties values will be used
if (hasExtra("signing.keyId") &&
hasExtra("signing.password") &&
hasExtra("signing.secretKeyRingFile")
) {
signing {
// Signing artifacts
signing {
val signingKey: String? by project
val signingPassword: String? by project
useInMemoryPgpKeys(signingKey, signingPassword)

if (signingKey !== null && signingPassword !== null) {
sign(publishing.publications)
}
}

0 comments on commit 35bdb0b

Please sign in to comment.