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

ci: add Github Actions workflow to check convergence in a release PR #1752

Merged
merged 9 commits into from
Mar 24, 2021
37 changes: 37 additions & 0 deletions .github/workflows/dashboard.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,41 @@ jobs:
with:
java-version: 8
- run: java -version
- run: .kokoro/dashboard.sh

converge:
Copy link
Contributor

Choose a reason for hiding this comment

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

Let's be more specific here: dependency-convergence-check.

runs-on: ubuntu-latest
if: github.repository_owner == 'googleapis' && github.head_ref == 'release-please/branches/master'
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
with:
java-version: 8
script: |
// only approve PRs from release-please
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
// only approve PRs from release-please
// only checks PRs from release-please

if (context.payload.pull_request.user.login !== "release-please") {
return;
}

// only approve PRs like "chore: release <release version>"
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
// only approve PRs like "chore: release <release version>"
// only checks PRs like "chore: release <release version>"

if (!(/^chore: release.*$/.test(context.payload.pull_request.title))) {
return;
}

// only approve PRs with README.md, CHANGELOG.md, pom.xml and versions.txt changes
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
// only approve PRs with README.md, CHANGELOG.md, pom.xml and versions.txt changes
// only checks PRs with README.md, CHANGELOG.md, pom.xml and versions.txt changes

const files = new Set(
(
await github.paginate(
github.pulls.listFiles.endpoint({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.payload.pull_request.number,
})
)
).map(file => file.filename)
);
if (files.size != 4 || !files.has("README.md") || !files.has("CHANGELOG.md") || !files.has("pom.xml") || !files.has("versions.txt")) {
return;
}
- run: java -version
- run: .kokoro/dashboard.sh
Copy link
Contributor

Choose a reason for hiding this comment

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

if you are checking JOB_TYPE in dashboard.sh, you would need to add the env var here:

        env:
          JOB_TYPE: convergence

16 changes: 16 additions & 0 deletions .kokoro/dashboard.sh
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,19 @@ cd dashboard/
echo -e "\n******************** BUILDING THE DASHBOARD ********************"

mvn --fail-at-end clean install
Neenu1995 marked this conversation as resolved.
Show resolved Hide resolved
INSTALL_RETURN_CODE=$?
chingor13 marked this conversation as resolved.
Show resolved Hide resolved
RETURN_CODE=${INSTALL_RETURN_CODE}

case ${JOB_TYPE} in
converge)
Copy link
Contributor

Choose a reason for hiding this comment

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

please update this accordingly

mvn exec:java -Dexec.args="-f ../pom.xml --report"
Neenu1995 marked this conversation as resolved.
Show resolved Hide resolved
CONVERGE_RETURN_CODE=$?
if [[ $INSTALL_RETURN_CODE -eq 0 ]]
then
RETURN_CODE=${CONVERGE_RETURN_CODE}
fi
;;
esac

echo "exiting with ${RETURN_CODE}"
Copy link
Contributor

Choose a reason for hiding this comment

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

This would only tell you if the report was built successfully or not (which is important) but I'm not seeing the output being checked.

Ideally, if we have full convergence, the script should exit with 0 and output Shared dependencies converge \o/. Otherwise, it should exit with error code 1 and a list of clients that are not converging (which is already being output by the report).

exit ${RETURN_CODE}