push.yml 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. name: Build and Release (1.16)
  2. on:
  3. push:
  4. paths:
  5. - '**.gradle'
  6. - '**.properties'
  7. - '**/src/**'
  8. branches:
  9. - "1.16"
  10. workflow_dispatch:
  11. inputs:
  12. norelease:
  13. description: 'Do not publish'
  14. required: true
  15. default: 'false'
  16. jobs:
  17. build:
  18. name: "Build and Release"
  19. runs-on: ubuntu-20.04
  20. if: |
  21. !contains(github.event.head_commit.message, '[ci skip]')
  22. steps:
  23. - uses: actions/checkout@v2
  24. - name: Set up JDK 17
  25. uses: actions/setup-java@v2
  26. with:
  27. java-version: 17
  28. distribution: 'temurin'
  29. - name: Validate Gradle Wrapper
  30. uses: gradle/wrapper-validation-action@v1
  31. - name: Verify license using Licenser
  32. uses: gradle/gradle-build-action@v2
  33. with:
  34. arguments: licenseCheck
  35. - name: Setup and Build with Gradle
  36. uses: gradle/gradle-build-action@v2
  37. with:
  38. arguments: build --stacktrace --no-daemon
  39. - name: Setting mod version
  40. run: |
  41. cat $GITHUB_WORKSPACE/gradle.properties | grep ^archives_base_name= >> $GITHUB_ENV
  42. cat $GITHUB_WORKSPACE/gradle.properties | grep ^minecraft_version= >> $GITHUB_ENV
  43. cat $GITHUB_WORKSPACE/gradle.properties | grep ^base_version= >> $GITHUB_ENV
  44. - name: Create package name
  45. run: echo "package_name=[$minecraft_version] $archives_base_name-$base_version.${{ github.run_number }}" >> $GITHUB_ENV
  46. - uses: actions/upload-artifact@v2
  47. with:
  48. name: ${{ env.package_name }}
  49. path: |
  50. **/build/libs/
  51. !build/libs/
  52. !**/*-dev.jar
  53. !**/*-shadow.jar
  54. !**/*-transformProduction*.jar
  55. !**/testmod*/
  56. - name: Release to Maven, CurseForge and Modrinth
  57. uses: gradle/gradle-build-action@v2
  58. if: |
  59. !contains(github.event.head_commit.message, '[norelease]') && github.event.inputs.norelease != 'true'
  60. env:
  61. # currently unused, may want to use these for changelogs though!
  62. # GIT_COMMIT: ${{ github.event.after }}
  63. # GIT_PREVIOUS_COMMIT: ${{ github.event.before }}
  64. MAVEN_PASS: ${{ secrets.MAVEN_PASS }}
  65. CURSE_API_KEY: ${{ secrets.CURSE_API_KEY }}
  66. MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }}
  67. with:
  68. arguments: publish curseforge modrinth --stacktrace --no-daemon