build.yml 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. name: Build
  2. on:
  3. push:
  4. branches:
  5. - main
  6. - release/*
  7. workflow_dispatch:
  8. jobs:
  9. assemble:
  10. uses: ./.github/workflows/reusable-assemble.yml
  11. secrets:
  12. GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
  13. GE_CACHE_USERNAME: ${{ secrets.GE_CACHE_USERNAME }}
  14. GE_CACHE_PASSWORD: ${{ secrets.GE_CACHE_PASSWORD }}
  15. test:
  16. uses: ./.github/workflows/reusable-test.yml
  17. secrets:
  18. GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
  19. GE_CACHE_USERNAME: ${{ secrets.GE_CACHE_USERNAME }}
  20. GE_CACHE_PASSWORD: ${{ secrets.GE_CACHE_PASSWORD }}
  21. test-latest-deps:
  22. # release branches are excluded
  23. # because any time a new library version is released to maven central it can fail
  24. # which requires unnecessary release branch maintenance, especially for patches
  25. if: ${{ !startsWith(github.ref_name, 'v') }}
  26. uses: ./.github/workflows/reusable-test-latest-deps.yml
  27. secrets:
  28. GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
  29. GE_CACHE_USERNAME: ${{ secrets.GE_CACHE_USERNAME }}
  30. GE_CACHE_PASSWORD: ${{ secrets.GE_CACHE_PASSWORD }}
  31. smoke-test:
  32. uses: ./.github/workflows/reusable-smoke-test.yml
  33. secrets:
  34. GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
  35. GE_CACHE_USERNAME: ${{ secrets.GE_CACHE_USERNAME }}
  36. GE_CACHE_PASSWORD: ${{ secrets.GE_CACHE_PASSWORD }}
  37. muzzle:
  38. # release branches are excluded
  39. # because any time a new library version is released to maven central it can fail
  40. # which requires unnecessary release branch maintenance, especially for patches
  41. if: ${{ !startsWith(github.ref_name, 'v') }}
  42. uses: ./.github/workflows/reusable-muzzle.yml
  43. gradle-plugins:
  44. uses: ./.github/workflows/reusable-gradle-plugins.yml
  45. examples:
  46. uses: ./.github/workflows/reusable-examples.yml
  47. markdown-link-check:
  48. # release branches are excluded to avoid unnecessary maintenance if external links break
  49. # (and also because the README.md javaagent download link has to be updated on release branches
  50. # before the release download has been published)
  51. if: ${{ !startsWith(github.ref_name, 'v') }}
  52. uses: ./.github/workflows/reusable-markdown-link-check.yml
  53. misspell-check:
  54. # release branches are excluded to avoid unnecessary maintenance if new misspellings are added
  55. # to the misspell dictionary
  56. if: ${{ !startsWith(github.ref_name, 'v') }}
  57. uses: ./.github/workflows/reusable-misspell-check.yml
  58. publish-snapshots:
  59. needs:
  60. # intentionally not blocking snapshot publishing on test-latest-deps, muzzle,
  61. # markdown-link-check, or misspell-check
  62. - assemble
  63. - test
  64. - smoke-test
  65. - gradle-plugins
  66. - examples
  67. runs-on: ubuntu-latest
  68. if: ${{ github.repository == 'open-telemetry/opentelemetry-java-instrumentation' }}
  69. steps:
  70. - uses: actions/checkout@v3
  71. - name: Set up JDK for running Gradle
  72. uses: actions/setup-java@v2
  73. with:
  74. distribution: temurin
  75. java-version: 17
  76. - name: Build and publish artifact snapshots
  77. env:
  78. GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
  79. SONATYPE_USER: ${{ secrets.SONATYPE_USER }}
  80. SONATYPE_KEY: ${{ secrets.SONATYPE_KEY }}
  81. GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
  82. GPG_PASSWORD: ${{ secrets.GPG_PASSWORD }}
  83. uses: gradle/gradle-build-action@v2
  84. with:
  85. arguments: assemble publishToSonatype
  86. - name: Build and publish gradle plugin snapshots
  87. env:
  88. GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
  89. SONATYPE_USER: ${{ secrets.SONATYPE_USER }}
  90. SONATYPE_KEY: ${{ secrets.SONATYPE_KEY }}
  91. GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
  92. GPG_PASSWORD: ${{ secrets.GPG_PASSWORD }}
  93. uses: gradle/gradle-build-action@v2
  94. with:
  95. arguments: build publishToSonatype
  96. build-root-directory: gradle-plugins