build.yml 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. name: Build
  2. on:
  3. [push]
  4. jobs:
  5. build:
  6. name: Build and Test
  7. runs-on: ubuntu-latest
  8. if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
  9. steps:
  10. - uses: actions/checkout@v2
  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-${{ hashFiles('**/pom.xml') }}
  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 and Test
  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/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-linux.zip
  35. run: mvn -B clean package -DskipTests --file main/pom.xml --resume-from=buildkit -Prelease,linux
  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: Assemble buildkit-mac.zip
  42. run: mvn -B clean package -DskipTests --file main/pom.xml --resume-from=buildkit -Prelease,mac
  43. - name: Upload buildkit-mac.zip
  44. uses: actions/upload-artifact@v1
  45. with:
  46. name: buildkit-mac.zip
  47. path: main/buildkit/target/buildkit-mac.zip
  48. - name: Assemble buildkit-win.zip
  49. run: mvn -B clean package -DskipTests --file main/pom.xml --resume-from=buildkit -Prelease,windows
  50. - name: Upload buildkit-win.zip
  51. uses: actions/upload-artifact@v1
  52. with:
  53. name: buildkit-win.zip
  54. path: main/buildkit/target/buildkit-win.zip
  55. release:
  56. name: Draft a Release on GitHub Releases
  57. runs-on: ubuntu-latest
  58. needs: build
  59. if: startsWith(github.ref, 'refs/tags/')
  60. steps:
  61. - name: Download buildkit-linux.zip
  62. uses: actions/download-artifact@v1
  63. with:
  64. name: buildkit-linux.zip
  65. path: .
  66. - name: Download buildkit-mac.zip
  67. uses: actions/download-artifact@v1
  68. with:
  69. name: buildkit-mac.zip
  70. path: .
  71. - name: Download buildkit-win.zip
  72. uses: actions/download-artifact@v1
  73. with:
  74. name: buildkit-win.zip
  75. path: .
  76. - name: Create Release
  77. id: create_release
  78. uses: actions/create-release@v1
  79. env:
  80. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  81. with:
  82. tag_name: ${{ github.ref }}
  83. release_name: ${{ github.ref }}
  84. body: |
  85. :construction: Work in Progress
  86. draft: true
  87. prerelease: false
  88. - name: Upload buildkit-linux.zip to GitHub Releases
  89. uses: actions/upload-release-asset@v1.0.1
  90. env:
  91. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  92. with:
  93. upload_url: ${{ steps.create_release.outputs.upload_url }}
  94. asset_path: buildkit-linux.zip
  95. asset_name: buildkit-linux.zip
  96. asset_content_type: application/zip
  97. - name: Upload buildkit-mac.zip to GitHub Releases
  98. uses: actions/upload-release-asset@v1.0.1
  99. env:
  100. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  101. with:
  102. upload_url: ${{ steps.create_release.outputs.upload_url }}
  103. asset_path: buildkit-mac.zip
  104. asset_name: buildkit-mac.zip
  105. asset_content_type: application/zip
  106. - name: Upload buildkit-win.zip to GitHub Releases
  107. uses: actions/upload-release-asset@v1.0.1
  108. env:
  109. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  110. with:
  111. upload_url: ${{ steps.create_release.outputs.upload_url }}
  112. asset_path: buildkit-win.zip
  113. asset_name: buildkit-win.zip
  114. asset_content_type: application/zip