build.yml 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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: Cache/Restore yarn cache
  18. uses: actions/cache@v1
  19. with:
  20. path: /usr/local/share/.cache/yarn
  21. key: ${{ runner.os }}-yarn-${{ matrix.node-version }}-${{ hashFiles('**/yarn.lock') }}
  22. restore-keys: |
  23. ${{ runner.os }}-yarn-${{ matrix.node-version }}-
  24. - name: Set up Docker Buildx
  25. uses: crazy-max/ghaction-docker-buildx@v1.0.4
  26. - name: Login to docker.io registry
  27. run: |
  28. echo ${{ secrets. DOCKER_REGISTRY_PASSWORD }} | docker login --username wsmoogle --password-stdin
  29. - name: Build Docker Image
  30. run: |
  31. CACHE_REF=weseek/growi-cache:3${{ env.SUFFIX }}
  32. docker buildx build \
  33. --tag growi${{ env.SUFFIX }} \
  34. --build-arg flavor=${{ matrix.flavor }} \
  35. --platform linux/amd64 \
  36. --load \
  37. --cache-from=type=registry,ref=$CACHE_REF \
  38. --cache-to=type=registry,ref=$CACHE_REF,mode=max \
  39. --file ./docker/Dockerfile .
  40. - name: Get SemVer
  41. run: |
  42. semver=`npm run version --silent`
  43. echo ::set-env name=SEMVER::$semver
  44. - name: Docker Tags by SemVer
  45. uses: weseek/ghaction-docker-tags-by-semver@v1.0.5
  46. with:
  47. source: growi${{ env.SUFFIX }}
  48. target: weseek/growi
  49. semver: ${{ env.SEMVER }}
  50. suffix: ${{ env.SUFFIX }}
  51. additional-tags: 'latest'
  52. publish: true
  53. publish-desc:
  54. runs-on: ubuntu-latest
  55. needs: build
  56. steps:
  57. - uses: actions/checkout@v1
  58. - name: Update Docker Hub Description
  59. uses: peter-evans/dockerhub-description@v2.1.0
  60. env:
  61. DOCKERHUB_USERNAME: wsmoogle
  62. DOCKERHUB_PASSWORD: ${{ secrets.DOCKER_REGISTRY_PASSWORD }}
  63. DOCKERHUB_REPOSITORY: weseek/growi
  64. README_FILEPATH: ./docker/README.md