build.yml 4.4 KB

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