Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion project/build.properties
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@
# limitations under the License.
#

sbt.version=1.9.9
sbt.version=1.11.5
2 changes: 1 addition & 1 deletion project/plugins.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
*/


addSbtPlugin("com.github.sbt" % "sbt-ci-release" % "1.5.12")
addSbtPlugin("com.github.sbt" % "sbt-ci-release" % "1.11.2")
Copy link

@coderabbitai coderabbitai bot Sep 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Double-check CI secrets and stale settings for Central Portal.

  • Ensure GitHub Actions has: SONATYPE_USERNAME, SONATYPE_PASSWORD (user token parts), PGP_SECRET, PGP_PASSPHRASE. (index.scala-lang.org)
  • Make sure no custom publishTo/credentials/sonatypeProfileName remain in build files (plugin manages these). (index.scala-lang.org, github.com)

Run from repo root:


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

echo "Check plugin version"
rg -n 'addSbtPlugin\("com\.github\.sbt"\s*%\s*"sbt-ci-release"\s*%\s*"1\.11\.2"\)' project/plugins.sbt || { echo "sbt-ci-release not pinned to 1.11.2"; exit 1; }

echo "Ensure no conflicting settings"
rg -nP '\bpublishTo\s*:=' -g '!**/target/**' || true
rg -n '\bcredentials\s*:=' -g '!**/target/**' || true
rg -n '\bsonatypeProfileName\b' -g '!**/target/**' || true

echo "Check workflows for ci-release usage"
fd -t f .github/workflows | xargs -r rg -n 'ci-release|sbt .*ci-release|setup-java|SONATYPE_(USERNAME|PASSWORD)|PGP_(SECRET|PASSPHRASE)' -n || true

Length of output: 980


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

echo "📦 Checking for stale publish settings in build files"
rg -nP '\b(publishTo\s*:=|credentials\s*:=|sonatypeProfileName)\b' \
   -g '*.sbt' -g '*.scala' --ignore-case || echo "✅ No conflicting settings found"

echo "🛠 Scanning GitHub Actions workflows for sbt-ci-release usage and required secrets"
find .github/workflows -type f \( -name '*.yml' -o -name '*.yaml' \) -print0 \
    | xargs -0 rg -nE 'ci-release|sbt\s+ci-release|setup-java|SONATYPE_USERNAME|SONATYPE_PASSWORD|PGP_SECRET|PGP_PASSPHRASE' \
    || echo "⚠️ No workflow references to ci-release or secrets found"

Length of output: 363


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

echo "🔍 Scanning workflows for sbt-ci-release and secrets usage"
rg -nE 'ci-release|sbt\s+ci-release|setup-java|SONATYPE_USERNAME|SONATYPE_PASSWORD|PGP_SECRET|PGP_PASSPHRASE' .github/workflows/ || echo "🚫 No matches found in workflows"

Length of output: 229


Configure CI workflows for sbt-ci-release and set required secrets

  • No references to sbt-ci-release, ci-release steps, or the secrets SONATYPE_USERNAME, SONATYPE_PASSWORD, PGP_SECRET, and PGP_PASSPHRASE were found in .github/workflows/. Add a workflow that invokes sbt ci-release and ensure those secrets are defined in GitHub Actions.
🤖 Prompt for AI Agents
In project/plugins.sbt around line 18, the project adds the sbt-ci-release
plugin but there is no corresponding GitHub Actions workflow or required secrets
configured; create a new workflow file under .github/workflows (e.g.,
release.yml) that runs on appropriate triggers (tags or manual), checks out the
repo, sets up Java and sbt, imports/uses GPG for signing, and runs sbt
ci-release, and ensure the repository defines the secrets SONATYPE_USERNAME,
SONATYPE_PASSWORD, PGP_SECRET (ASCII-armored private key) and PGP_PASSPHRASE in
GitHub Settings -> Secrets so the workflow can publish; include the secrets as
environment variables in the job, give the workflow minimal required permissions
for contents and packages, and validate the job succeeds locally or via a
dry-run before merging.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The secrets are present.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
echo "🔍 Comprehensive search for GitHub Actions workflows"
find . -name "*.yml" -o -name "*.yaml" | head -20

echo -e "\n📂 Checking .github directory structure"
ls -la .github/ 2>/dev/null || echo "No .github directory found"

echo -e "\n🔍 Looking for any workflow files"
fd -t f -e yml -e yaml . | head -10

echo -e "\n🔍 Searching for sbt or release related content in any workflow files"
find . -name "*.yml" -o -name "*.yaml" | xargs grep -l "sbt\|release\|publish" 2>/dev/null || echo "No workflow files with sbt/release content found"

echo -e "\n🔍 Checking for any ci-release references anywhere in the codebase"
rg -i "ci-release" --type-not=log || echo "No ci-release references found"

Length of output: 1286


🏁 Script executed:

#!/bin/bash
echo "🔍 Checking the existing release.yml workflow"
cat .github/workflows/release.yml

echo -e "\n📋 Also checking RELEASE.md for more context"
cat RELEASE.md

Length of output: 2371


@benedeki Thank you for the clarification! You're absolutely right. I can now see that the repository already has a properly configured .github/workflows/release.yml file that:

✅ Uses sbt ci-release command
✅ Has all the required secrets configured (PGP_PASSPHRASE, PGP_SECRET, SONATYPE_PASSWORD, SONATYPE_USERNAME)
✅ Is documented in RELEASE.md with clear release instructions

My verification agent missed this during the initial scan - I apologize for the confusion. The sbt-ci-release plugin upgrade to version 1.11.2 is properly supported by your existing CI infrastructure.

🐰
(⌐■_■)
/| |
^ ^
learns something new


✏️ Learnings added
Learnt from: benedeki
PR: AbsaOSS/fa-db#140
File: project/plugins.sbt:18-18
Timestamp: 2025-09-09T11:30:33.175Z
Learning: The fa-db repository at AbsaOSS/fa-db has an existing GitHub Actions workflow (.github/workflows/release.yml) that uses sbt ci-release with all required secrets (PGP_PASSPHRASE, PGP_SECRET, SONATYPE_PASSWORD, SONATYPE_USERNAME) properly configured for Maven Central publishing.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.


addSbtPlugin("de.heikoseeberger" % "sbt-header" % "5.7.0")

Expand Down
13 changes: 12 additions & 1 deletion publish.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
ThisBuild / organizationHomepage := Some(url("https://www.absa.africa"))

ThisBuild / organization := "za.co.absa.db.fa-db"
sonatypeProfileName := "za.co.absa"

ThisBuild / scmInfo := Some(
ScmInfo(
Expand Down Expand Up @@ -52,6 +51,18 @@ ThisBuild / developers := List(
email = "[email protected]",
url = url("https://github.com/miroslavpojer")
),
Developer(
id = "ABLL526",
name = "Liam Leibrandt",
email = "[email protected]",
url = url("https://github.com/ABLL526")
),
Developer(
id = "jakipatryk",
name = "Bartlomiej Baj",
email = "[email protected]",
url = url("https://github.com/jakipatryk")
),
Developer(
id = "Zejnilovic",
name = "Saša Zejnilović",
Expand Down