Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Infra - Add an explicit workflow for API binary compatibility checks #4798

Merged
merged 3 commits into from
May 29, 2022

Conversation

kbendick
Copy link
Contributor

The API / ABI compatibility checking tool, revapi, is supposed to run whenever we run ./gradlew build or ./gradlew check.

However, for some reason - likely due to caching, this is getting skipped as can be verified in this example PR: #4796

That PR shows that the output of ./gradlew -DflinkVersions=1.13,1.14,1.15 -DsparkVersions=2.4,3.0,3.1,3.2 -DhiveVersions=2,3 build -x test -x javadoc -x integrationTest, which is run during Java CI, should run revapi. However, revapi is being skipped in that step per the log output.

For the moment, I'm adding an explicit API Binary Compatibility workflow to circumvent this issue.

cc @rdblue

@github-actions github-actions bot added the INFRA label May 18, 2022
@kbendick kbendick changed the title Build - Add an explicit workflow for API binary compatibility checks Infra - Add an explicit workflow for API binary compatibility checks May 18, 2022
runs-on: ubuntu-latest
strategy:
matrix:
jvm: [8, 11]
Copy link
Contributor

Choose a reason for hiding this comment

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

Is this necessary? I don't think that binary compatibility changes that much across JVM versions. It should be fine to run with just 11.

matrix:
jvm: [8, 11]
env:
SPARK_LOCAL_IP: localhost
Copy link
Contributor

Choose a reason for hiding this comment

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

This shouldn't run any Spark jobs. Is this needed?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

No it's not needed.

path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
restore-keys: ${{ runner.os }}-gradle
- run: echo -e "$(ip addr show eth0 | grep "inet\b" | awk '{print $2}' | cut -d/ -f1)\t$(hostname -f) $(hostname -s)" | sudo tee -a /etc/hosts
Copy link
Contributor

Choose a reason for hiding this comment

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

This looks like it was probably pasted from another workflow.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is in pretty much every workflow that we have that I've checked. But I don't think it's needed. Let's try without and see. We can always add it in.

@kbendick kbendick force-pushed the add-ci-api-compatibility-step branch from e863d63 to d6f9801 Compare May 27, 2022 23:42
@rdblue rdblue merged commit b26e14c into apache:master May 29, 2022
@rdblue
Copy link
Contributor

rdblue commented May 29, 2022

Thanks, @kbendick! Do we also need to remove the checks from running in another workflow?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants