build-and-push-release-image.yml 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. name: build-and-push-release-image
  2. on:
  3. push:
  4. branches:
  5. # Run on pushing branches like `release/1.0.0`
  6. - "release/*.*.*"
  7. jobs:
  8. build-and-push-release-image:
  9. runs-on: ubuntu-latest
  10. steps:
  11. - uses: actions/checkout@v3
  12. - name: Set up QEMU
  13. uses: docker/setup-qemu-action@v2
  14. - name: Extract build args
  15. # Extract version from branch name
  16. # Example: branch name `release/1.0.0` sets up env.VERSION=1.0.0
  17. run: |
  18. echo "VERSION=${GITHUB_REF_NAME#release/}" >> $GITHUB_ENV
  19. - name: Login to Docker Hub
  20. uses: docker/login-action@v2
  21. with:
  22. username: neosmemo
  23. password: ${{ secrets.DOCKER_NEOSMEMO_TOKEN }}
  24. - name: Set up Docker Buildx
  25. id: buildx
  26. uses: docker/setup-buildx-action@v2
  27. with:
  28. install: true
  29. version: v0.9.1
  30. - name: Build and Push
  31. id: docker_build
  32. uses: docker/build-push-action@v3
  33. with:
  34. context: ./
  35. file: ./Dockerfile
  36. platforms: linux/amd64,linux/arm64
  37. push: true
  38. tags: neosmemo/memos:latest, neosmemo/memos:${{ env.VERSION }}