name: Build on: [push] jobs: test: name: Build and Test runs-on: ubuntu-latest if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')" steps: - uses: actions/checkout@v2 - uses: actions/setup-java@v1 with: java-version: 16 - uses: actions/cache@v2 with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} restore-keys: | ${{ runner.os }}-maven- - name: Ensure to use tagged version run: mvn versions:set -DnewVersion=${GITHUB_REF##*/} # use shell parameter expansion to strip of 'refs/tags' if: startsWith(github.ref, 'refs/tags/') - name: Build and Test run: mvn -B clean install jacoco:report -Pcoverage,dependency-check - name: Upload code coverage report id: codacyCoverageReporter run: bash <(curl -Ls https://coverage.codacy.com/get.sh) env: CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }} continue-on-error: true # # Buildkit # buildkit: name: Build buildkit-${{ matrix.profile }}.zip needs: test runs-on: ${{ matrix.os }} strategy: fail-fast: true matrix: include: - os: ubuntu-latest profile: linux launcher: launcher-linux.sh - os: windows-latest profile: win launcher: launcher-win.bat - os: macOS-latest profile: mac launcher: launcher-mac.sh steps: - uses: actions/checkout@v2 - uses: actions/setup-java@v1 with: java-version: 16 - uses: actions/cache@v2 with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} restore-keys: | ${{ runner.os }}-maven- - name: Copy .jar files run: mvn -B clean package -DskipTests -P${{ matrix.profile }} shell: bash - name: Archive buildkit-${{ matrix.profile }}.tar.gz run: tar -czf buildkit-${{ matrix.profile }}.tar.gz libs mods ../LICENSE.txt ../dist/${{ matrix.launcher }} shell: bash working-directory: target - name: Upload buildkit-${{ matrix.profile }}.tar.gz uses: actions/upload-artifact@v2 with: name: buildkit-${{ matrix.profile }}.tar.gz path: target/buildkit-${{ matrix.profile }}.tar.gz if-no-files-found: error # release: # name: Draft a Release on GitHub Releases # runs-on: ubuntu-latest # needs: test # if: startsWith(github.ref, 'refs/tags/') && github.repository == 'cryptomator/cryptomator' # steps: # - uses: actions/checkout@v2 # - name: Download buildkit-linux.zip # uses: actions/download-artifact@v1 # with: # name: buildkit-linux.zip # path: . # - name: Download buildkit-mac.zip # uses: actions/download-artifact@v1 # with: # name: buildkit-mac.zip # path: . # - name: Download buildkit-win.zip # uses: actions/download-artifact@v1 # with: # name: buildkit-win.zip # path: . # - name: Create tarball # run: git archive --prefix="cryptomator-${{ github.ref }}/" -o "cryptomator-${{ github.ref }}.tar.gz" ${{ github.ref }} # - name: Sign tarball with key 615D449FE6E6A235 # run: | # echo "${GPG_PRIVATE_KEY}" | gpg --batch --quiet --import # echo "${GPG_PASSPHRASE}" | gpg --batch --quiet --passphrase-fd 0 --pinentry-mode loopback -u 615D449FE6E6A235 --detach-sign -a "cryptomator-${{ github.ref }}.tar.gz" # env: # GPG_PRIVATE_KEY: ${{ secrets.RELEASES_GPG_PRIVATE_KEY }} # GPG_PASSPHRASE: ${{ secrets.RELEASES_GPG_PASSPHRASE }} # - name: Create Release # id: create_release # uses: actions/create-release@v1 # env: # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # with: # tag_name: ${{ github.ref }} # release_name: ${{ github.ref }} # body: | # :construction: Work in Progress # TODO: # * [ ] add Linux appimage, zsync file and signature file # * [ ] add Windows installer and signature file # * [ ] add MacOs disk image and signature file # ## What's new # ## Bugfixes # ## Misc # --- # :scroll: A complete list of closed issues is available [here](LINK) # draft: true # prerelease: false # - name: Upload buildkit-linux.zip to GitHub Releases # uses: actions/upload-release-asset@v1.0.1 # env: # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # with: # upload_url: ${{ steps.create_release.outputs.upload_url }} # asset_path: buildkit-linux.zip # asset_name: buildkit-linux.zip # asset_content_type: application/zip # - name: Upload buildkit-mac.zip to GitHub Releases # uses: actions/upload-release-asset@v1.0.1 # env: # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # with: # upload_url: ${{ steps.create_release.outputs.upload_url }} # asset_path: buildkit-mac.zip # asset_name: buildkit-mac.zip # asset_content_type: application/zip # - name: Upload buildkit-win.zip to GitHub Releases # uses: actions/upload-release-asset@v1.0.1 # env: # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # with: # upload_url: ${{ steps.create_release.outputs.upload_url }} # asset_path: buildkit-win.zip # asset_name: buildkit-win.zip # asset_content_type: application/zip # - name: Upload tarball signature to GitHub Releases # uses: actions/upload-release-asset@v1.0.1 # env: # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # with: # upload_url: ${{ steps.create_release.outputs.upload_url }} # asset_path: "cryptomator-${{ github.ref }}.tar.gz.asc" # asset_name: "cryptomator-${{ github.ref }}.tar.gz.asc" # asset_content_type: application/octet-stream