build.yml 1.8 KB

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