From 4a9dd7f175fd4c7c60997f7207f81efc3308a438 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Mon, 20 Apr 2020 10:06:15 +0200 Subject: [PATCH 01/10] Moving to GitHub Actions --- .github/workflows/build.yml | 30 +++++++++++++++ .travis-deploy-release.tmpl.json | 19 ---------- .travis-deploy-snapshot.json | 15 -------- .travis.yml | 65 -------------------------------- main/pom.xml | 2 +- 5 files changed, 31 insertions(+), 100 deletions(-) create mode 100644 .github/workflows/build.yml delete mode 100644 .travis-deploy-release.tmpl.json delete mode 100644 .travis-deploy-snapshot.json delete mode 100644 .travis.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..36a331f52 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,30 @@ +# This workflow will build a Java project with Maven +# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven + +name: Java CI with Maven + +on: + [push] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 14 + uses: actions/setup-java@v1 + with: + java-version: 14 + - name: Build with Maven + run: mvn -B package --file main/pom.xml -Pcoverage,release + - name: Run codacy-coverage-reporter + uses: codacy/codacy-coverage-reporter-action@master + with: + project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} +# - name: Uploads the build artifacts +# uses: actions/upload-artifact@v1 +# with: +# name: charger-${{matrix.os}}.zip +# path: target/charger.zip \ No newline at end of file diff --git a/.travis-deploy-release.tmpl.json b/.travis-deploy-release.tmpl.json deleted file mode 100644 index 435e3dd82..000000000 --- a/.travis-deploy-release.tmpl.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "package": { - "name": "buildkit", - "repo": "cryptomator", - "subject": "cryptomator" - }, - "version": { - "name": "$TRAVIS_TAG", - "desc": "Cryptomator version $TRAVIS_TAG", - "released": "$TODAY", - "vcs_tag": "$TRAVIS_TAG", - "gpgSign": true - }, - "files": - [ - {"includePattern": "main/buildkit/target/(buildkit-[a-z]+\\.zip)", "uploadPattern": "/$TRAVIS_TAG/$1"} - ], - "publish": true -} diff --git a/.travis-deploy-snapshot.json b/.travis-deploy-snapshot.json deleted file mode 100644 index fa3897a4d..000000000 --- a/.travis-deploy-snapshot.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "package": { - "name": "buildkit", - "repo": "cryptomator", - "subject": "cryptomator" - }, - "version": { - "name": "snapshot" - }, - "files": - [ - {"includePattern": "main/buildkit/target/(buildkit-[a-z]+\\.zip)", "uploadPattern": "/snapshot/$1", "matrixParams": {"override": 1}} - ], - "publish": true -} diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 41f912fa8..000000000 --- a/.travis.yml +++ /dev/null @@ -1,65 +0,0 @@ -dist: bionic -language: java -sudo: false -jdk: -- openjdk11 -cache: - directories: - - $HOME/.m2 -env: - global: - - secure: "HftEaabMmWn5GwKFKksUkOcelc3Mn7xazwAEy+4d4gL1+F8VhID/6DCK7nas+afUymWnxTano8Rv4Ci5MWryNkNkTH+FUPWmF3xWezc3hajSyS7RB92IZ8VPetl4Fo8UI1WwM5apDEaugalPxkIf8a7N+lpG5X/Gpumwzo3Be3w=" # BINTRAY_API_KEY - - secure: "oWFgRTVP6lyTa7qVxlvkpm20MtVc3BtmsNXQJS6bfg2A0o/iCQMNx7OD59BaafCLGRKvCcJVESiC8FlSylVMS7CDSyYu0gg70NUiIuHp4NBM5inFWYCy/PdQsCTzr5uvNG+rMFQpMFRaCV0FrfM3tLondcVkhsHL68l93Xoexx4=" # CODACY_PROJECT_TOKEN - - secure: "zJxgytA2Ks5Xzv+7kUaUq+EBFNQw9Qec63lcMJVuXVWczjL16nKW1EzzV515ag+OWL46z3lEPForDhufw0VtFnNmaX68jkO0mp01eLrHApc1llN2Y/U8GBXfNNazN4+Kom4H+z/AO+wJr8EsKMMUczCdQ3APgd9uVI0hzXw/Z3M=" # GITHUB_API_KEY -addons: - apt: - packages: - - haveged -install: -# - curl -o $HOME/.m2/settings.xml https://gist.githubusercontent.com/cryptobot/cf5fbd909c4782aaeeeb7c7f4a1a43da/raw/e60ee486e34ee0c79f89f947abe2c83b4290c6bb/settings.xml -- mvn -fmain/pom.xml clean install -DskipTests -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN org.codehaus.mojo:versions-maven-plugin:help dependency:go-offline -Pcoverage,release # "clean install" needed until we can exclude artifacts currently in the reactor, see https://maven.apache.org/plugins/maven-dependency-plugin/go-offline-mojo.html#excludeReactor and https://issues.apache.org/jira/browse/MDEP-568 -before_script: -- | - if [[ -n "$TRAVIS_TAG" ]]; then - mvn -fmain/pom.xml org.codehaus.mojo:versions-maven-plugin:set -DnewVersion=$TRAVIS_TAG - else - mvn -fmain/pom.xml org.codehaus.mojo:versions-maven-plugin:set -DnewVersion=SNAPSHOT-$(echo $TRAVIS_COMMIT | head -c7) - fi -script: -- mvn --update-snapshots -fmain/pom.xml clean test verify -Pcoverage -after_success: -- curl -o ~/codacy-coverage-reporter.jar https://repo.maven.apache.org/maven2/com/codacy/codacy-coverage-reporter/7.1.0/codacy-coverage-reporter-7.1.0-assembly.jar -- $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/commons/target/site/jacoco/jacoco.xml --partial -- $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/keychain/target/site/jacoco/jacoco.xml --partial -- $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/ui/target/site/jacoco/jacoco.xml --partial -- $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/launcher/target/site/jacoco/jacoco.xml --partial -- $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar final -before_deploy: -- mvn -fmain/pom.xml package -Prelease -DskipTests -- export TODAY=`date +'%Y-%m-%d'`; envsubst '$TRAVIS_TAG $TODAY' < .travis-deploy-release.tmpl.json > .travis-deploy-release.json -deploy: -- provider: bintray # SNAPSHOTS - file: .travis-deploy-snapshot.json - user: cryptobot - key: $BINTRAY_API_KEY - skip_cleanup: true - on: - repo: cryptomator/cryptomator - branch: develop -- provider: bintray # RELEASES - file: .travis-deploy-release.json - user: cryptobot - key: $BINTRAY_API_KEY - skip_cleanup: true - on: - repo: cryptomator/cryptomator - tags: true -- provider: releases - api_key: $GITHUB_API_KEY - file_glob: true - file: - - "main/buildkit/target/buildkit-*.zip" - skip_cleanup: true - on: - repo: cryptomator/cryptomator - tags: true \ No newline at end of file diff --git a/main/pom.xml b/main/pom.xml index 3fa4287ee..3b0387a82 100644 --- a/main/pom.xml +++ b/main/pom.xml @@ -331,7 +331,7 @@ maven-compiler-plugin 3.8.1 - 11 + 14 com.google.dagger From 9205bafc56fd621d2832112d5e302700bb6f8e01 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Mon, 20 Apr 2020 10:20:31 +0200 Subject: [PATCH 02/10] Added maven dependency cache --- .github/workflows/build.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 36a331f52..c7083c258 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,6 +17,13 @@ jobs: uses: actions/setup-java@v1 with: java-version: 14 + - name: Restore Maven Cache + uses: actions/cache@v1 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- - name: Build with Maven run: mvn -B package --file main/pom.xml -Pcoverage,release - name: Run codacy-coverage-reporter From 75e35ca0e122e4c5c8c4e31cae135183c12af136 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Mon, 20 Apr 2020 10:20:58 +0200 Subject: [PATCH 03/10] Manually run Codacy --- .github/workflows/build.yml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c7083c258..ccb3783d7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -26,10 +26,15 @@ jobs: ${{ runner.os }}-maven- - name: Build with Maven run: mvn -B package --file main/pom.xml -Pcoverage,release - - name: Run codacy-coverage-reporter - uses: codacy/codacy-coverage-reporter-action@master - with: - project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} + - name: Run Codacy Coverage Reporter + run: | + curl -o ~/codacy-coverage-reporter.jar https://repo.maven.apache.org/maven2/com/codacy/codacy-coverage-reporter/7.1.0/codacy-coverage-reporter-7.1.0-assembly.jar + $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/commons/target/site/jacoco/jacoco.xml --partial + $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/keychain/target/site/jacoco/jacoco.xml --partial + $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/ui/target/site/jacoco/jacoco.xml --partial + $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/launcher/target/site/jacoco/jacoco.xml --partial + $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar final + # - name: Uploads the build artifacts # uses: actions/upload-artifact@v1 # with: From 93048647f52f261edc4b65b123b1c793bc28affc Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Mon, 20 Apr 2020 10:24:59 +0200 Subject: [PATCH 04/10] Added env.CODACY_PROJECT_TOKEN --- .github/workflows/build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ccb3783d7..4b5429b23 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -34,6 +34,8 @@ jobs: $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/ui/target/site/jacoco/jacoco.xml --partial $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/launcher/target/site/jacoco/jacoco.xml --partial $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar final + env: + CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }} # - name: Uploads the build artifacts # uses: actions/upload-artifact@v1 From 8993b3584b183ac769a8a68966bbca7eef881f4b Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Mon, 20 Apr 2020 10:33:24 +0200 Subject: [PATCH 05/10] made sure to run jacoco --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4b5429b23..6678aff35 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,7 +25,7 @@ jobs: restore-keys: | ${{ runner.os }}-maven- - name: Build with Maven - run: mvn -B package --file main/pom.xml -Pcoverage,release + run: mvn -B verify --file main/pom.xml -Pcoverage,release - name: Run Codacy Coverage Reporter run: | curl -o ~/codacy-coverage-reporter.jar https://repo.maven.apache.org/maven2/com/codacy/codacy-coverage-reporter/7.1.0/codacy-coverage-reporter-7.1.0-assembly.jar From c9f560eb04cc738054d78a4aa380e763ec540a5c Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Mon, 20 Apr 2020 10:52:33 +0200 Subject: [PATCH 06/10] first attempt to make this a multi-stage build --- .github/workflows/build.yml | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6678aff35..c0fecbc71 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,31 +1,28 @@ # This workflow will build a Java project with Maven # For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven -name: Java CI with Maven +name: Build on: [push] -jobs: - build: - +jobs: + test: runs-on: ubuntu-latest - steps: - uses: actions/checkout@v2 - name: Set up JDK 14 uses: actions/setup-java@v1 with: java-version: 14 - - name: Restore Maven Cache - uses: actions/cache@v1 + - uses: actions/cache@v1 with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} restore-keys: | ${{ runner.os }}-maven- - name: Build with Maven - run: mvn -B verify --file main/pom.xml -Pcoverage,release + run: mvn -B install --file main/pom.xml -Pcoverage - name: Run Codacy Coverage Reporter run: | curl -o ~/codacy-coverage-reporter.jar https://repo.maven.apache.org/maven2/com/codacy/codacy-coverage-reporter/7.1.0/codacy-coverage-reporter-7.1.0-assembly.jar @@ -36,6 +33,26 @@ jobs: $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar final env: CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }} + + assemble-build-kit: + runs-on: ubuntu-latest + needs: test + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 14 + uses: actions/setup-java@v1 + with: + java-version: 14 + - uses: actions/cache@v1 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + - name: Build with Maven + run: mvn -B compile -DskipTests --file main/pom.xml --resume-from=buildkit -Prelease + + # - name: Uploads the build artifacts # uses: actions/upload-artifact@v1 From a8b76a69148134ed70f748fdca5adb97d20735d3 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Mon, 20 Apr 2020 10:55:35 +0200 Subject: [PATCH 07/10] if we want this to run package, we should ask it to package. --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c0fecbc71..21254e1ae 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -50,7 +50,7 @@ jobs: restore-keys: | ${{ runner.os }}-maven- - name: Build with Maven - run: mvn -B compile -DskipTests --file main/pom.xml --resume-from=buildkit -Prelease + run: mvn -B package -DskipTests --file main/pom.xml --resume-from=buildkit -Prelease From 84cc81ec400ba45dd36dd5bb23be7914f80fc41a Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Mon, 20 Apr 2020 11:03:44 +0200 Subject: [PATCH 08/10] upload buildkits --- .github/workflows/build.yml | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 21254e1ae..7719511f2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -51,11 +51,18 @@ jobs: ${{ runner.os }}-maven- - name: Build with Maven run: mvn -B package -DskipTests --file main/pom.xml --resume-from=buildkit -Prelease - - - -# - name: Uploads the build artifacts -# uses: actions/upload-artifact@v1 -# with: -# name: charger-${{matrix.os}}.zip -# path: target/charger.zip \ No newline at end of file + - name: Upload buildkit-linux.zip + uses: actions/upload-artifact@v1 + with: + name: buildkit-linux.zip + path: main/buildkit/target/buildkit-linux.zip + - name: Upload buildkit-mac.zip + uses: actions/upload-artifact@v1 + with: + name: buildkit-mac.zip + path: main/buildkit/target/buildkit-mac.zip + - name: Upload buildkit-win.zip + uses: actions/upload-artifact@v1 + with: + name: buildkit-win.zip + path: main/buildkit/target/buildkit-win.zip \ No newline at end of file From 830941755bf87616a334930e0f45817c143eb7d3 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Mon, 20 Apr 2020 11:13:49 +0200 Subject: [PATCH 09/10] use cache key depending on git sha --- .github/workflows/build.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7719511f2..a0efea260 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/cache@v1 with: path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + key: ${{ runner.os }}-maven-${{ GITHUB_SHA }} restore-keys: | ${{ runner.os }}-maven- - name: Build with Maven @@ -46,9 +46,7 @@ jobs: - uses: actions/cache@v1 with: path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven- + key: ${{ runner.os }}-maven-${{ GITHUB_SHA }} - name: Build with Maven run: mvn -B package -DskipTests --file main/pom.xml --resume-from=buildkit -Prelease - name: Upload buildkit-linux.zip From 408d16fabf804186d9be80c1fb53278cd6a3d4d0 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Mon, 20 Apr 2020 11:18:56 +0200 Subject: [PATCH 10/10] store to run-specific cache, but restore from any previous run --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a0efea260..0d83dbaf5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/cache@v1 with: path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ GITHUB_SHA }} + key: ${{ runner.os }}-maven-${{ github.run_id }} restore-keys: | ${{ runner.os }}-maven- - name: Build with Maven @@ -46,7 +46,7 @@ jobs: - uses: actions/cache@v1 with: path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ GITHUB_SHA }} + key: ${{ runner.os }}-maven-${{ github.run_id }} - name: Build with Maven run: mvn -B package -DskipTests --file main/pom.xml --resume-from=buildkit -Prelease - name: Upload buildkit-linux.zip