build.yml 2.1 KB

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