Skip to content

12367 GitHub actions workflow for jenkins redundancy#12368

Open
srmanda-cs wants to merge 26 commits intoIQSS:developfrom
uncch-rdmc:12367-github-actions-workflow-for-jenkins-redundancy
Open

12367 GitHub actions workflow for jenkins redundancy#12368
srmanda-cs wants to merge 26 commits intoIQSS:developfrom
uncch-rdmc:12367-github-actions-workflow-for-jenkins-redundancy

Conversation

@srmanda-cs
Copy link
Copy Markdown

@srmanda-cs srmanda-cs commented Apr 29, 2026

What this PR does / why we need it:
Add a GitHub Actions Workflow that replicates the exact same tests that Jenkins run with the same configurations, but with containers instead

Which issue(s) this PR closes:

Special notes for your reviewer:
All your suggestions and criticism are deeply welcome, and since it is a major workflow I'm willing to work on it again and again until it meets Dataverse's needs accurately and addresses any concerns the team has. There will probably be a lot, since this is a prototype workflow that I quickly hacked together in a few weeks.

Suggestions on how to test this:
Clicking run workflow should do it.

Does this PR introduce a user interface change? If mockups are available, please link/include them here:
N/A

Is there a release notes update needed for this change?:
N/A

Additional documentation:
Depends on where and how you would want me to document it.

Copilot AI review requested due to automatic review settings April 29, 2026 14:45
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds a new GitHub Actions workflow intended to run the same API/integration test suite as Jenkins, but against a Dataverse stack started via the Maven container tooling, improving CI redundancy and visibility of failures.

Changes:

  • Added .github/workflows/container_integration_tests.yml to build/start the container stack, run tests/integration-tests.txt, and publish test artifacts/results.
  • Updated SearchIT to search for the dataset via the id:dataset_<id> query pattern.
  • Disabled testRetrieveMyDataCollections in DataRetrieverApiIT.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 8 comments.

File Description
src/test/java/edu/harvard/iq/dataverse/api/SearchIT.java Adjusts dataset search query to use id:dataset_<id> format.
src/test/java/edu/harvard/iq/dataverse/api/DataRetrieverApiIT.java Disables a failing/unstable test method.
.github/workflows/container_integration_tests.yml Introduces a new container-based integration test workflow, including reporting and artifacts.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/container_integration_tests.yml
Comment thread .github/workflows/container_integration_tests.yml
Comment thread .github/workflows/container_integration_tests.yml Outdated
Comment thread .github/workflows/container_integration_tests.yml Outdated
Comment thread .github/workflows/container_integration_tests.yml Outdated
Comment thread .github/workflows/container_integration_tests.yml Outdated
Comment thread src/test/java/edu/harvard/iq/dataverse/api/DataRetrieverApiIT.java Outdated
Comment on lines +227 to +231
# The pom.xml automatically merged the files and put them here:
mvn coveralls:report \
-P all-unit-tests \
-DrepoToken=$COVERALLS_REPO_TOKEN \
-DjacocoReports=target/site/jacoco-merged-test-coverage-report/jacoco.xml
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

This is probably wrong, but let me verify just in case.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

This is right, JaCoCo reporting is failing

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Is this related to why I don't see this branch over at https://coveralls.io/github/IQSS/dataverse ? Check this out:

Image

Copy link
Copy Markdown
Member

@pdurbin pdurbin left a comment

Choose a reason for hiding this comment

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

This is fantastic! Thanks, @srmanda-cs! ❤️

I'm leaving a few comments and will co-assign you.

- ".github/*.md"
pull_request:
branches:
- develop
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Should we add "master" here? That way the tests will run when we release, I would think, after this step: https://guides.dataverse.org/en/6.10.1/developers/making-releases.html#merge-develop-into-master-non-hotfix-only

Here's an example of where we merged develop into master:

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Absolutely, I'll add master in there. (I actually didn't know y'all used master)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Done

Comment on lines +6 to +13
push:
branches:
- develop
paths-ignore:
- "doc/**"
- "**/*.md"
- ".github/ISSUE_TEMPLATE/**"
- ".github/*.md"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do we need "push" at all? We have branch protection turned on for both "develop" and "master".

Copy link
Copy Markdown
Author

@srmanda-cs srmanda-cs May 4, 2026

Choose a reason for hiding this comment

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

We don't "need" push strictly speaking, but its a bit of defensive programming. Just in case. It doesn't hurt to be there, and lets the team know if something is broken in case of emergencies if anyone decides to disable branch protection for a "quick fix".

Comment on lines +193 to +195
DVAPIKEY: "burrito"
DV_APIKEY: "burrito"
DV_API_KEY: "burrito"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do we need all three of these? 🌯 🌯 🌯

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

and how on earth did we get three of them? 😇

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

The tests start randomly crying when I remove any one of these, so I'm too afraid to touch them at this point. I imported it directly from Jenkins ;)

run: |
set -euo pipefail
# Fixes MakeDataCountApiIT
docker exec dev_dataverse sh -c 'curl https://raw.githubusercontent.com/IQSS/dataverse/develop/src/test/java/edu/harvard/iq/dataverse/makedatacount/sushi_sample_logs.json > /tmp/sushi_sample_logs.json && head /tmp/sushi_sample_logs.json'
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I guess this will work but would it make more sense to copy the sushi_sample_logs.json file locally rather than downloading it from GitHub?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

That's actually a really good idea! I'll implement this.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Done, this should be implemented now!

Comment on lines +227 to +231
# The pom.xml automatically merged the files and put them here:
mvn coveralls:report \
-P all-unit-tests \
-DrepoToken=$COVERALLS_REPO_TOKEN \
-DjacocoReports=target/site/jacoco-merged-test-coverage-report/jacoco.xml
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Is this related to why I don't see this branch over at https://coveralls.io/github/IQSS/dataverse ? Check this out:

Image

}

// Test getting a list of collections that the user can add datasets to
@Disabled("Temporarily disabled because this integration test is not reliable in CI; re-enable once stabilized. All assertions return one extra dataset than expected.")
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Noted. Thank you!

srmanda-cs and others added 15 commits May 6, 2026 09:11
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Updated concurrency group name to include branch reference and removed .txt files from paths-ignore.
Removed .txt files from paths-ignore in workflow.
Temporarily disable unreliable integration test for retrieving data collections.
Removed force_run input from workflow dispatch.
Replace curl command with docker cp for SUSHI config file.
Replaced local file copy with curl command to fetch SUSHI config.
Added master branch to push and pull_request triggers.
Updated the method of placing the SUSHI config file in the container by copying it directly from the repository instead of using curl.
Updated the workflow to check for the existence of the source file before copying it to the container.
Replace file existence check and copy method with direct injection into container.
@srmanda-cs srmanda-cs force-pushed the 12367-github-actions-workflow-for-jenkins-redundancy branch from c2e72c5 to 4a20d46 Compare May 6, 2026 13:11
@cmbz cmbz added the FY26 Sprint 22 FY26 Sprint 22 (2026-04-22 - 2026-05-06) label May 6, 2026
srmanda-cs added 4 commits May 6, 2026 12:17
Added JaCoCo agent configuration for code coverage.
Added JaCoCo agent download step and updated report generation to include XML output.
Reduced timeout for integration tests and cleaned up comments.
@cmbz cmbz added the FY26 Sprint 23 FY26 Sprint 23 (2026-05-06 - 2026-05-20) label May 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

FY26 Sprint 22 FY26 Sprint 22 (2026-04-22 - 2026-05-06) FY26 Sprint 23 FY26 Sprint 23 (2026-05-06 - 2026-05-20)

Projects

Status: In Review 🔎

Development

Successfully merging this pull request may close these issues.

Suggestion: GitHub Actions Workflow for Jenkins Redundancy Let contributors know why tests are failing

5 participants