From 886163238d342f446de8c45cb1e032b431387cd6 Mon Sep 17 00:00:00 2001 From: Todd Underwood Date: Thu, 12 Nov 2020 10:35:29 -0800 Subject: [PATCH] Feat/migrate to GitHub actions (#278) * Build: Add Configuration for GitHub Actions and remove the Travis-CI.org configuration --- .github/workflows/build.yml | 41 ++ .github/workflows/release.yml | 54 +++ .travis.yml | 48 -- README.md | 5 +- build.gradle | 12 +- gradle.properties | 2 +- gradle/verification-metadata.xml | 810 +++++++++++++++++++++++++++++++ 7 files changed, 914 insertions(+), 58 deletions(-) create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/release.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..16648bd07 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,41 @@ +# This workflow will build a Java project with Gradle +# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle + +name: Build + +on: + push: + branches: + - '*' + pull_request: + branches: + - master + schedule: + - cron: "0 22 * * 1" +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 11 + uses: actions/setup-java@v1 + with: + java-version: 11 + - name: Grant execute permission for gradlew + run: chmod +x gradlew + - name: Build with Gradle + run: ./gradlew check build buildDashboard generateAggregatedReports -x integrationTest --continue + - name: Test and publish coverage to Coveralls + env: + COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} + run: ./gradlew coverallsJacoco + - name: Slack notification when master build fails + if: ${{ failure() && github.ref == 'refs/heads/master'}} + uses: rtCamp/action-slack-notify@v2.1.0 + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} + SLACK_CHANNEL: cerberus-alerts + SLACK_MESSAGE: 'Cerberus main build has failed :build-failed:' + SLACK_ICON: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png + SLACK_TITLE: Cerberus Build Failure Notification + SLACK_USERNAME: GitHub Actions \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000..ac616ce77 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,54 @@ +# This workflow will build a Java project with Gradle +# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle + +name: Release + +on: + push: + # Sequence of patterns matched against refs/tags + tags: + - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10 +jobs: + Build-and-Release: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 11 + uses: actions/setup-java@v1 + with: + java-version: 11 + - name: Grant execute permission for gradlew + run: chmod +x gradlew + - name: Build with Gradle + run: ./gradlew check build buildDashboard generateAggregatedReports -x integrationTest --continue + - name: Test and publish coverage to Coveralls + env: + COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} + run: ./gradlew coverallsJacoco + - name: Release artifact to Bintray + env: + BINTRAY_USER: ${{ secrets.BINTRAY_USER }} + BINTRAY_KEY: ${{ secrets.BINTRAY_KEY}} + run: ./gradlew bintrayUpload + - name: Upload binary to GitHub release + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: cerberus-web/build/libs/cerberus.jar + tag: ${{ github.ref }} + - name: Upload checksum to GitHub release + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: cerberus-web/build/libs/cerberus.jar.MD5 + tag: ${{ github.ref }} + - name: Slack notification when release fails + if: ${{ failure() }} + uses: rtCamp/action-slack-notify@v2.1.0 + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} + SLACK_CHANNEL: cerberus-alerts + SLACK_MESSAGE: 'Cerberus release workflow has failed :build-failed:' + SLACK_ICON: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png + SLACK_TITLE: Cerberus Build Failure Notification + SLACK_USERNAME: GitHub Actions \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 087d63754..000000000 --- a/.travis.yml +++ /dev/null @@ -1,48 +0,0 @@ -language: java -install: true - -os: linux -dist: bionic -jdk: openjdk11 - -script: - - "./gradlew check build buildDashboard generateAggregatedReports -x integrationTest --continue" - -after_success: - - ./gradlew coveralls - - curl -F 'json_file=@build/coveralls/report.json' 'https://coveralls.io/api/v1/jobs' # https://github.com/kt3k/coveralls-gradle-plugin/issues/85#issuecomment-475958699 - - test "${TRAVIS_PULL_REQUEST}" == "false" && test "${TRAVIS_TAG}" != "" && ./gradlew bintrayUpload - -before_cache: - - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock - - rm -fr $HOME/.gradle/caches/*/plugin-resolution/ - -cache: - directories: - - "$HOME/.gradle/caches/" - - "$HOME/.gradle/wrapper/" - -deploy: - skip_cleanup: true - provider: releases - api_key: - secure: XLz7OW+p6OyAM06C2NuNxTOEfsYvfVL2VNYU6UyEDeTk7rFSGy1fxHcUzYqLFZDwSxYndCEXtXCPje7ZDIWBVjR01lRiuJKz1kkf0M6EY3bxkMaIc8u8SMaDePQBsuma10bhUxiuwTHEsCB+NERjwmFxqE/kADKfOBsD89QxLLfrn+vL2AbLJXswISZv9ExhKQgSwLAyINQ4ReTZCN9kWgsC/qAseWBDYNFl9qrNK+uN2AaaTH4NhzEJLuRgdECCSey30Dk3AsnxHWNE4KmIyp9RfInDFvqUXQ2QN3FoNhkAUjUKBGz8ynQiNOkUijE64IDmsi2TM3IYpZir4zN2bhRomymRWqR2cROb7yjVQeWM63qfEY5ouw9aRdr19FuCnhiAAS6NIrccix9MWjqHbXIi3pqO5CPsm6PifA/c4+UHi1ZRdLKSakJ0+ah3LFkRDd2OjV8W7DXZnszN3ktPxlRplRAhj6CDZvazp7py4X6ufKFSq9JMqqwEh6hFKSAUVw3q2AmqCtz7bR6zzQQPp03H5EMU3W97MUqb+KNkAcE0jPCBYG11hfBPqKOPs/MW0M1EBPwwEbX883uqVr3mtaPa3Yjrk/nk4A5+LgzIm7kmnEl/bNcJZF7qEZ621Tek2YYtk2vKdLjck0s90mxfLQSj9Bt4ranv37V5P/3p6Sg= - file: - - cerberus-web/build/libs/cerberus.jar - - cerberus-web/build/libs/cerberus.jar.MD5 - on: - repo: Nike-Inc/cerberus - tags: true - -env: - global: - - secure: R8NA4hNA8SmxP7J0x3Nidv0GDnBctrTp0Wrd5s4VFP9+9SQdAgoulSoUgz69CuAJwmB/p0JtMFtd4LQfDeyL97u1SxfCDQFbuJf93Oj341ADOyK0p7dLBa3tmvquaCtWJqfx6GiR0Rp3WipGeyae/1nloMXltvA/gEKFQlingjXfwBERJ7aVWx2LBnuhU7QayhqEHb6AP/BSUtHBYBww7UG2xfpR1goFWp2XCCXElCot2efAxSh/mCiN3ZCn+kn3qs14lb/IM379U8In9XwAJuEdBV50Woawi+9j5cWdPo/+nCGlBM4csrR7rkz9MtGDUTTLN30xq9NkKsPeN5dYkuly/2JNSLyFIfGhsjSAeHqxB7Zw49o99pypERItmHKNzcE3WPzJrPhvHhm6T5Tf+4Rc7rUg3b5cZ6sl+/qonL19U30gF/dDJ/gdSFBULbYwh582Z0+0MrkCDkWBau/KPgt/zsDtWe8xqtKIQYPexlSCjyRujDDZCgwxx6k3AgS5mjjU/qqj6xjBLERy9IEwwe2J9mVfTfrYg5UXDxa2H+MSev1ZFDxWswhTfV/YmEk9biOADNcZI3VBnR2fUekklcPuEuI3qtxbY21iCN2Kwu38+vX+90NfS9jCfPnrY+OHtF9duSpOojPDQs+V/hcZ8wrbYAbf96itS3WZSbDSjZ8= - - secure: YYl4kXd0TKA11aEY8HDbtZmo1g6V2a/qQFUD96/2U+5LaYTyDtFqRL/My9PJqHGh7xmD5TvWhW2ZYRc3Uoh6+Zq4ekNjkk6hKWv01hHCcQo4DDaBNbqTi05+zjmMuA1X8wPS6RGd7rnOhmdpSWX5S66oQc1UjvNa6SJd1txxKHUqfu5g4V0XbKSC+ypHj54cvaOLUY+goQ4MJiZP29iAAzy1AH6gPONwxwi5i/++NNvvLesq0TgObQUUXh5j/nEw7WbjiYUCMmBbssqqUq9koZNyC/DDJbEvcHzpc8oCSzWLrGXVanhoD3Vu5DBUE/JEP18mjCGjkzSSF56nysYNm4QNtwXpx313D3f120GERjA2x81LcAcJc4UaUPNKLUxxRfbjILezJX0nmzK7UMmgegy81iGj7DrChw1BTjanVIXrXNRzZjjVcOgVxTw+Vdi+vpB+BGiEsB4RJKL5I2XGFVwvP8KVOek+OKyrrHP2MdalXteld2ShTwe8jsYbcojdAJ5eLqqYbq9cdCiYO2+wpzK1bB1Cz4FPXrxrBGL2a3bSASsh2h3bV13eOi6J7igeY4BMYqcfFJnxC9ZSBllqoei7f3eiNpDSJQZ3FI5JPTE5b1Hoc9QiaaP5x9cuSI9zbXajGSYd0ym5tAPei3R7NTBCwsesE/vELdTPSwkrR5I= - -notifications: - slack: - if: branch = master AND (type = push OR type=cron) - on_success: change - on_failure: always - rooms: - - secure: lQOCt1qO1bV0X2aFiJX7DWODx9/YvgoXdNe5oZhKvbCkGRUwmLPZFTh28wCxnt41Mt+kqO7yKl9kISJJR5lrzOg8os5naLHYEq9c7O+DHPQ+MQan9e3W/ObQ6B4aaz8iX3x5OvX6yRf0XyzlNHNDHK4hKUr2RYNk82Fli+ZvBpkmRfNzR9OoJ39UhYwB3zOsXWxLjBCS6Tzp2+WuE6TxjP9QQ8gmxCzqb0wAG6KWpQn3PZsNrKEG+HtoMv1WRINPI60YP/C+2Iu60nPoBq65ysJ9BRcKXD2KRNi+kmfXOuwoKoMPm+NXyoN9/WBWttMKRyuXk26adK/ertjTN47eAkrbFePh+9AHJ9Lq2jgPSVyMZau5jvDYsZT29a+UiJL8GXNYdrljmSNSBwOH6HhK0sNVdfuLlafmBUXd5rwgBsVRh/ohoeWpALUQCtDH8Q0S1+MItuNwlcG8HygFnBfX9S4WwSTTPaQD8oV+ZmqmIiPK3dFTNFxlLoaH6qBiiJWuLOY/+7tUeokqVsTOBpBuyaxQl6t3QLVlkcIDj+0WpObzIUTUV5Fumq3d5Csd5wfrCo6yYZSN7+2rHEx01AKHy+KUNKEDq70N0vPSDk0r56Pw/m1i4vR4v1o4q1DmTUT1FWpugboCV43h+gmohlmiacgcupqXPz1vwY99ce2K8r0= diff --git a/README.md b/README.md index 6fd29e377..9464ec2f7 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Cerberus -[![][travis img]][travis] +![][gh actions img] [![][coveralls img]][coveralls] [![][license img]][license] @@ -147,8 +147,7 @@ server.ssl: Cerberus Management Service is released under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0) -[travis]:https://travis-ci.org/Nike-Inc/cerberus -[travis img]:https://api.travis-ci.org/Nike-Inc/cerberus.svg?branch=master +[gh actions img]:https://github.com/Nike-Inc/cerberus/workflows/Build/badge.svg?branch=chore%2FGH_Actions [license]:LICENSE.txt [license img]:https://img.shields.io/badge/License-Apache%202-blue.svg diff --git a/build.gradle b/build.gradle index 1320b1433..c92df4cb7 100644 --- a/build.gradle +++ b/build.gradle @@ -37,6 +37,7 @@ buildscript { maven { url "https://plugins.gradle.org/m2/" } + google() } dependencies { @@ -49,7 +50,7 @@ buildscript { plugins { id "io.spring.dependency-management" version "1.0.9.RELEASE" - id "com.github.kt3k.coveralls" version "2.9.0" + id "com.github.nbaztec.coveralls-jacoco" version "1.2.4" } apply from: 'gradle/owasp-dependency-check.gradle' @@ -81,6 +82,7 @@ allprojects { repositories { jcenter() mavenCentral() + google() } jacoco { @@ -189,11 +191,9 @@ task aggregatedJacocoReport(type: JacocoReport, group: 'Coverage reports') { } } -coveralls { - sourceDirs = publishedProjects.sourceSets.main.allSource.srcDirs.flatten() - jacocoReportPath = "${buildDir}/reports/jacoco/aggregatedJacocoReport/aggregatedJacocoReport.xml" - saveAsFile = true - sendToCoveralls = false +coverallsJacoco { + reportSourceSets = publishedProjects.sourceSets.main.allSource.srcDirs.flatten() + reportPath = "${buildDir}/reports/jacoco/aggregatedJacocoReport/aggregatedJacocoReport.xml" } configurations { diff --git a/gradle.properties b/gradle.properties index 7ec52c77c..78630c88f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -14,6 +14,6 @@ # limitations under the License. # -version=4.9.1 +version=4.9.2 group=com.nike.cerberus springBootVersion=2.3.4.RELEASE diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index a0ee16ca3..ff512e3b6 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -5,6 +5,22 @@ false + + + + + + + + + + + + + + + + @@ -269,6 +285,246 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -923,6 +1179,19 @@ + + + + + + + + + + + + + @@ -1034,6 +1303,24 @@ + + + + + + + + + + + + + + + + + + @@ -1111,6 +1398,14 @@ + + + + + + + + @@ -1327,6 +1622,24 @@ + + + + + + + + + + + + + + + + + + @@ -1338,6 +1651,14 @@ + + + + + + + + @@ -1349,6 +1670,19 @@ + + + + + + + + + + + + + @@ -1380,6 +1714,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -1992,6 +2350,22 @@ + + + + + + + + + + + + + + + + @@ -2095,12 +2469,25 @@ + + + + + + + + + + + + + @@ -2117,6 +2504,14 @@ + + + + + + + + @@ -2174,6 +2569,11 @@ + + + + + @@ -2242,6 +2642,11 @@ + + + + + @@ -2254,6 +2659,11 @@ + + + + + @@ -2266,12 +2676,25 @@ + + + + + + + + + + + + + @@ -2282,6 +2705,11 @@ + + + + + @@ -2515,6 +2943,14 @@ + + + + + + + + @@ -3078,6 +3514,14 @@ + + + + + + + + @@ -3578,6 +4022,14 @@ + + + + + + + + @@ -3598,6 +4050,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3618,6 +4099,19 @@ + + + + + + + + + + + + + @@ -4659,6 +5153,14 @@ + + + + + + + + @@ -4689,6 +5191,14 @@ + + + + + + + + @@ -5133,6 +5643,14 @@ + + + + + + + + @@ -5218,6 +5736,14 @@ + + + + + + + + @@ -5230,6 +5756,11 @@ + + + + + @@ -5294,6 +5825,11 @@ + + + + + @@ -5306,6 +5842,14 @@ + + + + + + + + @@ -5326,6 +5870,14 @@ + + + + + + + + @@ -5567,6 +6119,14 @@ + + + + + + + + @@ -5577,6 +6137,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -5589,6 +6173,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5599,6 +6308,11 @@ + + + + + @@ -5609,6 +6323,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5634,6 +6380,22 @@ + + + + + + + + + + + + + + + + @@ -5804,6 +6566,14 @@ + + + + + + + + @@ -6014,6 +6784,14 @@ + + + + + + + + @@ -6034,6 +6812,14 @@ + + + + + + + + @@ -6054,6 +6840,14 @@ + + + + + + + + @@ -6080,6 +6874,14 @@ + + + + + + + + @@ -6100,6 +6902,14 @@ + + + + + + + +