main.yml 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. name: Java
  2. on:
  3. push:
  4. branches: [ master ]
  5. pull_request:
  6. branches: [ master ]
  7. jobs:
  8. build:
  9. name: Build
  10. runs-on: ubuntu-latest
  11. steps:
  12. - name: Check out code
  13. uses: actions/checkout@v4
  14. - name: Set up JDK 1.8
  15. uses: actions/setup-java@v2
  16. with:
  17. version: 1.8
  18. jdk: true
  19. - name: Dump Github context
  20. env:
  21. GITHUB_CONTEXT: '${{ toJSON(github) }}'
  22. run: |
  23. echo " hello ${{ github.event.commits[0].id }}"
  24. - name: Cache local Maven repository
  25. uses: actions/cache@v2
  26. with:
  27. path: ~/.m2/repository
  28. key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
  29. restore-keys: |
  30. ${{ runner.os }}-maven-
  31. - uses: actions/cache@v2
  32. with:
  33. path: |
  34. ~/.gradle/caches
  35. ~/.gradle/wrapper
  36. key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
  37. restore-keys: |
  38. ${{ runner.os }}-gradle-
  39. - name: Build with Gradle
  40. run: |
  41. chmod +x gradlew
  42. ./gradlew build
  43. - name: Extract files from jar
  44. run: |
  45. mkdir -p build/libs
  46. - name: build docker image and push
  47. env:
  48. DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
  49. DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
  50. DOCKER_REGISTRY: ${{ secrets.DOCKER_REGISTRY }}
  51. run: |
  52. docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} ${{ secrets.DOCKER_REGISTRY }}
  53. - name: set buildx
  54. uses: crazy-max/ghaction-docker-buildx@v1
  55. with:
  56. buildx-version: latest
  57. - name: push docker image
  58. run: |
  59. cd build && \
  60. fullCommit="${{ github.event.commits[0].id }}" && \
  61. docker buildx build \
  62. --platform linux/amd64,linux/arm64,linux/arm/v7 \
  63. --tag ${{ secrets.DOCKER_REGISTRY }}/{{ github.repository.owner.login }}/{{ github.repository.name }}:${{ fullCommit: 0:7 }} \
  64. --progress=plain \
  65. --file Dockerfile . \
  66. --output "type=image,push=true"
  67. --push
  68. - name: deploy to docker