Skip to content

AGTMETRICS-340: Migrate CI from CircleCI to GitHub Actions#309

Merged
vickenty merged 5 commits into
masterfrom
carlosroman/AGTMETRICS-340-migrate-away-from-circleci
May 8, 2026
Merged

AGTMETRICS-340: Migrate CI from CircleCI to GitHub Actions#309
vickenty merged 5 commits into
masterfrom
carlosroman/AGTMETRICS-340-migrate-away-from-circleci

Conversation

@carlosroman
Copy link
Copy Markdown
Contributor

@carlosroman carlosroman commented May 1, 2026

Summary

  • Replaces .circleci/config.yml with .github/workflows/ci.yml
  • Preserves the same test matrix: Java 7, 8, 9, 11, 13, 17 on Linux; Java 12 on Windows; dedicated jobs for jnr-exclude and jnr-latest profiles
  • Adds Maven dependency caching via actions/setup-java (free improvement — CircleCI had no caching)
  • Uses Zulu JDK distribution for broadest version coverage (Java 7+), replacing the third-party jfullaondo/openjdk:7 Docker image
  • No Chocolatey Maven install needed on Windows — GitHub-hosted runners have Maven pre-installed
  • Bump minimum build java version to 9 (for maven only, so we can use --release flag to continue targeting 1.7 with released artifacts).

Test plan

  • Confirm the CI workflow appears under the Actions tab after pushing
  • Confirm all 7 jobs run: 5 matrix entries (Java 9/11/13/17 Linux + Java 12 Windows) + test-jnr-exclude + test-jnr-latest
  • Confirm each job runs both the root build and the dogstatsd-http-core build
  • Confirm Windows job passes without a Chocolatey Maven install step

🤖 Generated with Claude Code

Replaces .circleci/config.yml with .github/workflows/ci.yml, preserving
the same test matrix: Java 7/8/11/13/17 on Linux, Java 12 on Windows,
and dedicated jobs for jnr-exclude and jnr-latest profiles. Adds Maven
dependency caching as a free improvement over the previous setup.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@carlosroman carlosroman marked this pull request as ready for review May 1, 2026 14:01
@carlosroman carlosroman requested a review from a team as a code owner May 1, 2026 14:01
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b6258ca7a6

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread .github/workflows/ci.yml Outdated
fail-fast: false
matrix:
os: [ubuntu-latest]
java-version: ['7', '8', '11', '13', '17']
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Drop Java 7 from matrix or pin a Java-7-compatible Maven

Including java-version: '7' in this matrix will make the new GitHub Actions job fail before tests run, because ubuntu-latest runners currently ship Maven 3.9.x while Maven 3.9 requires JDK 8+ to execute. This workflow invokes plain mvn for every matrix entry, so the Java 7 leg is effectively broken unless you install/pin an older Maven (or use a wrapper) specifically for that leg.

Useful? React with 👍 / 👎.

carlosroman and others added 4 commits May 1, 2026 15:09
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Keep producing 1.7 artifacts, but use a more modern compiler to do
so.

We used to rely on source/target flags to support an earlier
version of Java, but had to run 1.7 in CI to verify we didn't
accidentally use newer APIs.

While Java 1.7 is available in GH actions, maven doesn't quite
work. With Java 9 we can use release flag instead of source/target,
which also checks that we only use classes compatible with 1.7
classpath, so we don't have to run maven 1.7 in CI.
Copy link
Copy Markdown

@StephenWakely StephenWakely left a comment

Choose a reason for hiding this comment

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

I think the PR description is wrong:

Preserves the same test matrix: Java 7, 8, 11, 13, 17

We've dropped 7 and 8.

Also wondering about this comment in the readme:

The library supports Java 1.7+.

Is this completely accurate? We don't test on 1.7 anymore, but produce artifacts that should theoretically work. Is that something we could clarify better?

Comment thread .github/workflows/ci.yml
Comment on lines +16 to +18
include:
- os: windows-latest
java-version: '12'
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Is there a reason we are testing only 12 on Windows?

@vickenty
Copy link
Copy Markdown
Contributor

vickenty commented May 8, 2026

@StephenWakely Good points, I updated the description.

The library supports Java 1.7+.

Is this completely accurate? We don't test on 1.7 anymore, but produce artifacts that >should theoretically work. Is that something we could clarify better?

I believe this is still accurate. Both source code and released artifacts should still be fully compatible, and release flag ensures that. Only our build system isn't, but that hardly changes anything for the users.

@vickenty vickenty merged commit 51ead6b into master May 8, 2026
19 checks passed
@vickenty vickenty deleted the carlosroman/AGTMETRICS-340-migrate-away-from-circleci branch May 8, 2026 13:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants