Skip to content

Commit

Permalink
[CheckCompatibility] Prevent interleaving of log output (opensearch-p…
Browse files Browse the repository at this point in the history
…roject#9280)

Signed-off-by: Peter Nied <[email protected]>
Signed-off-by: Kiran Reddy <[email protected]>
  • Loading branch information
peternied authored and kkmr committed Aug 28, 2023
1 parent 2d81d97 commit b84b233
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 9 deletions.
10 changes: 6 additions & 4 deletions .github/workflows/check-compatibility.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,15 @@ jobs:
- uses: actions/checkout@v3

- name: Run compatibility task
run: ./gradlew checkCompatibility | tee $HOME/gradlew-check.out
run: ./gradlew checkCompatibility -i | tee $HOME/gradlew-check.out

- name: Get results
run: |
echo 'Compatibility status:' > ${{ github.workspace }}/results.txt && echo '```' >> ${{ github.workspace }}/results.txt
grep -e 'Compatible components' -e 'Incompatible components' -e 'Components skipped' -A 2 -B 3 $HOME/gradlew-check.out >> "${{ github.workspace }}/results.txt"
echo '```' >> ${{ github.workspace }}/results.txt
echo '## Compatibility status:' > "${{ github.workspace }}/results.txt"
echo "Checks if related components are compatible with change $(git rev-parse --short HEAD)" >> "${{ github.workspace }}/results.txt"
echo "### Incompatible components" >> "${{ github.workspace }}/results.txt" && grep -e 'Incompatible component' $HOME/gradlew-check.out | sed -e 's/Incompatible component: \[\(.*\)\]/- \1/' >> "${{ github.workspace }}/results.txt"
echo "### Skipped components" >> "${{ github.workspace }}/results.txt" && grep -e 'Skipped component' $HOME/gradlew-check.out | sed -e 's/Skipped component: \[\(.*\)\]/- \1/' >> "${{ github.workspace }}/results.txt"
echo "### Compatible components" >> "${{ github.workspace }}/results.txt" && grep -e 'Compatible component' $HOME/gradlew-check.out | sed -e 's/Compatible component: \[\(.*\)\]/- \1/' >> "${{ github.workspace }}/results.txt"
- name: GitHub App token
id: github_app_token
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,36 +43,44 @@ class CheckCompatibilityTask extends DefaultTask {
repositoryUrls.parallelStream().forEach { repositoryUrl ->
logger.lifecycle("Checking compatibility for: $repositoryUrl with ref: $ref")
def tempDir = File.createTempDir()
def stdout = new ByteArrayOutputStream()
def errout = new ByteArrayOutputStream()
def skipped = false;
try {
if (cloneAndCheckout(repositoryUrl, tempDir)) {
if (repositoryUrl.toString().endsWithAny('notifications', 'notifications.git')) {
tempDir = Paths.get(tempDir.getAbsolutePath(), 'notifications')
}
project.exec {
workingDir = tempDir
def stdout = new ByteArrayOutputStream()
executable = (OperatingSystem.current().isWindows()) ? 'gradlew.bat' : './gradlew'
args 'assemble'
args ('assemble')
standardOutput stdout
errorOutput errout
}
compatibleComponents.add(repositoryUrl)
} else {
logger.lifecycle("Skipping compatibility check for $repositoryUrl")
skipped = true
}
} catch (ex) {
failedComponents.add(repositoryUrl)
logger.info("Gradle assemble failed for $repositoryUrl", ex)
} finally {
if (skipped) {
logger.lifecycle("Skipping compatibility check for $repositoryUrl")
} else {
logger.lifecycle("Finished compatibility check for $repositoryUrl")
logger.info("Standard output for $repositoryUrl build:\n\n" + stdout.toString())
logger.error("Error output for $repositoryUrl build:\n\n" + errout.toString())
}
tempDir.deleteDir()
}
}
if (!failedComponents.isEmpty()) {
logger.lifecycle("Incompatible components: $failedComponents")
logger.info("Compatible components: $compatibleComponents")
}
if (!gitFailedComponents.isEmpty()) {
logger.lifecycle("Components skipped due to git failures: $gitFailedComponents")
logger.info("Compatible components: $compatibleComponents")
}
if (!compatibleComponents.isEmpty()) {
logger.lifecycle("Compatible components: $compatibleComponents")
Expand Down

0 comments on commit b84b233

Please sign in to comment.