You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

67 lines
2.2 KiB

3 years ago
3 years ago
  1. name: "docker: build latest container"
  2. on:
  3. push:
  4. tags:
  5. - '*'
  6. workflow_dispatch: {}
  7. permissions:
  8. contents: read
  9. jobs:
  10. build-latest-container:
  11. runs-on: [ubuntu-latest]
  12. steps:
  13. -
  14. name: Checkout
  15. uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v2
  16. -
  17. name: Docker meta
  18. id: docker_meta
  19. uses: docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81 # v3
  20. with:
  21. images: |
  22. chrislusf/seaweedfs
  23. ghcr.io/chrislusf/seaweedfs
  24. tags: |
  25. type=raw,value=latest
  26. labels: |
  27. org.opencontainers.image.title=seaweedfs
  28. org.opencontainers.image.description=SeaweedFS is a distributed storage system for blobs, objects, files, and data lake, to store and serve billions of files fast!
  29. org.opencontainers.image.vendor=Chris Lu
  30. -
  31. name: Set up QEMU
  32. uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v1
  33. -
  34. name: Set up Docker Buildx
  35. uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v1
  36. with:
  37. buildkitd-flags: "--debug"
  38. -
  39. name: Login to Docker Hub
  40. if: github.event_name != 'pull_request'
  41. uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 # v1
  42. with:
  43. username: ${{ secrets.DOCKER_USERNAME }}
  44. password: ${{ secrets.DOCKER_PASSWORD }}
  45. -
  46. name: Login to GHCR
  47. if: github.event_name != 'pull_request'
  48. uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 # v1
  49. with:
  50. registry: ghcr.io
  51. username: ${{ secrets.GHCR_USERNAME }}
  52. password: ${{ secrets.GHCR_TOKEN }}
  53. -
  54. name: Build
  55. uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v2
  56. with:
  57. context: ./docker
  58. push: ${{ github.event_name != 'pull_request' }}
  59. file: ./docker/Dockerfile.go_build
  60. platforms: linux/amd64, linux/arm, linux/arm64, linux/386
  61. tags: ${{ steps.docker_meta.outputs.tags }}
  62. labels: ${{ steps.docker_meta.outputs.labels }}