build.yml 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. name: Release Docker Images
  2. on:
  3. push:
  4. tags:
  5. - v3.*.*
  6. jobs:
  7. build:
  8. runs-on: ubuntu-latest
  9. strategy:
  10. matrix:
  11. flavor: [default, nocdn]
  12. steps:
  13. - uses: actions/checkout@v1
  14. - name: Determine suffix
  15. run: |
  16. [[ ${{ matrix.flavor }} = "nocdn" ]] && suffix="-nocdn" || suffix=""
  17. echo ::set-env name=SUFFIX::$suffix
  18. - name: Set up Docker Buildx
  19. uses: crazy-max/ghaction-docker-buildx@v1.0.4
  20. - name: Login to docker.io registry
  21. run: |
  22. echo ${{ secrets. DOCKER_REGISTRY_PASSWORD }} | docker login --username wsmoogle --password-stdin
  23. - name: Build Docker Image
  24. run: |
  25. CACHE_REF=weseek/growi-cache:3${{ env.SUFFIX }}
  26. docker buildx build \
  27. --tag growi${{ env.SUFFIX }} \
  28. --build-arg flavor=${{ matrix.flavor }} \
  29. --platform linux/amd64 \
  30. --load \
  31. --cache-from=type=registry,ref=$CACHE_REF \
  32. --cache-to=type=registry,ref=$CACHE_REF,mode=max \
  33. --file ./docker/Dockerfile .
  34. - name: Get SemVer
  35. run: |
  36. semver=`npm run version --silent`
  37. echo ::set-env name=SEMVER::$semver
  38. - name: Docker Tags by SemVer
  39. uses: weseek/ghaction-docker-tags-by-semver@v1.0.5
  40. with:
  41. source: growi${{ env.SUFFIX }}
  42. target: weseek/growi
  43. semver: ${{ env.SEMVER }}
  44. suffix: ${{ env.SUFFIX }}
  45. additional-tags: 'latest'
  46. publish: true
  47. publish-desc:
  48. runs-on: ubuntu-latest
  49. needs: build
  50. steps:
  51. - uses: actions/checkout@v1
  52. - name: Update Docker Hub Description
  53. uses: peter-evans/dockerhub-description@v2.1.0
  54. env:
  55. DOCKERHUB_USERNAME: wsmoogle
  56. DOCKERHUB_PASSWORD: ${{ secrets.DOCKER_REGISTRY_PASSWORD }}
  57. DOCKERHUB_REPOSITORY: weseek/growi
  58. README_FILEPATH: ./docker/README.md