build.yml 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. name: Build
  2. on:
  3. [push]
  4. jobs:
  5. test:
  6. name: Run Tests
  7. runs-on: ubuntu-latest
  8. steps:
  9. - uses: actions/checkout@v2
  10. - name: Set up JDK 14
  11. uses: actions/setup-java@v1
  12. with:
  13. java-version: 14
  14. - uses: actions/cache@v1
  15. with:
  16. path: ~/.m2/repository
  17. key: ${{ runner.os }}-maven-${{ github.run_id }}
  18. restore-keys: |
  19. ${{ runner.os }}-maven-
  20. - name: Ensure to use tagged version
  21. run: mvn versions:set --file main/pom.xml -DnewVersion=${GITHUB_REF##*/} # use shell parameter expansion to strip of 'refs/tags'
  22. if: startsWith(github.ref, 'refs/tags/')
  23. - name: Build with Maven
  24. run: mvn -B install --file main/pom.xml -Pcoverage
  25. - name: Run Codacy Coverage Reporter
  26. run: |
  27. 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
  28. $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/commons/target/site/jacoco/jacoco.xml --partial
  29. $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/keychain/target/site/jacoco/jacoco.xml --partial
  30. $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/ui/target/site/jacoco/jacoco.xml --partial
  31. $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/launcher/target/site/jacoco/jacoco.xml --partial
  32. $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar final
  33. env:
  34. CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }}
  35. assemble-build-kit:
  36. name: Assemble Build Kit
  37. runs-on: ubuntu-latest
  38. needs: test
  39. steps:
  40. - uses: actions/checkout@v2
  41. - name: Set up JDK 14
  42. uses: actions/setup-java@v1
  43. with:
  44. java-version: 14
  45. - uses: actions/cache@v1
  46. with:
  47. path: ~/.m2/repository
  48. key: ${{ runner.os }}-maven-${{ github.run_id }}
  49. - name: Ensure to use tagged version
  50. run: mvn versions:set --file main/pom.xml -DnewVersion=${GITHUB_REF##*/} # use shell parameter expansion to strip of 'refs/tags'
  51. if: startsWith(github.ref, 'refs/tags/')
  52. - name: Build with Maven
  53. run: mvn -B package -DskipTests --file main/pom.xml --resume-from=buildkit -Prelease
  54. - name: Upload buildkit-linux.zip
  55. uses: actions/upload-artifact@v1
  56. with:
  57. name: buildkit-linux.zip
  58. path: main/buildkit/target/buildkit-linux.zip
  59. - name: Upload buildkit-mac.zip
  60. uses: actions/upload-artifact@v1
  61. with:
  62. name: buildkit-mac.zip
  63. path: main/buildkit/target/buildkit-mac.zip
  64. - name: Upload buildkit-win.zip
  65. uses: actions/upload-artifact@v1
  66. with:
  67. name: buildkit-win.zip
  68. path: main/buildkit/target/buildkit-win.zip
  69. github-release:
  70. name: Draft a Release on GitHub Releases
  71. runs-on: ubuntu-latest
  72. needs: assemble-build-kit
  73. if: startsWith(github.ref, 'refs/tags/')
  74. steps:
  75. - name: Download buildkit-linux.zip
  76. uses: actions/download-artifact@v1
  77. with:
  78. name: buildkit-linux.zip
  79. path: .
  80. - name: Download buildkit-mac.zip
  81. uses: actions/download-artifact@v1
  82. with:
  83. name: buildkit-mac.zip
  84. path: .
  85. - name: Download buildkit-win.zip
  86. uses: actions/download-artifact@v1
  87. with:
  88. name: buildkit-win.zip
  89. path: .
  90. - id: create_release
  91. uses: actions/create-release@v1
  92. env:
  93. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  94. with:
  95. tag_name: ${{ github.ref }}
  96. release_name: ${{ github.ref }}
  97. body: |
  98. TODO
  99. draft: true
  100. prerelease: true
  101. - name: Upload buildkit-linux.zip to GitHub Releases
  102. uses: actions/upload-release-asset@v1.0.1
  103. env:
  104. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  105. with:
  106. upload_url: ${{ steps.create_release.outputs.upload_url }}
  107. asset_path: buildkit-linux.zip
  108. asset_name: buildkit-linux.zip
  109. asset_content_type: application/zip
  110. - name: Upload buildkit-mac.zip to GitHub Releases
  111. uses: actions/upload-release-asset@v1.0.1
  112. env:
  113. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  114. with:
  115. upload_url: ${{ steps.create_release.outputs.upload_url }}
  116. asset_path: buildkit-mac.zip
  117. asset_name: buildkit-mac.zip
  118. asset_content_type: application/zip
  119. - name: Upload buildkit-win.zip to GitHub Releases
  120. uses: actions/upload-release-asset@v1.0.1
  121. env:
  122. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  123. with:
  124. upload_url: ${{ steps.create_release.outputs.upload_url }}
  125. asset_path: buildkit-win.zip
  126. asset_name: buildkit-win.zip
  127. asset_content_type: application/zip