docker.yml 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. name: Build Docker Images
  2. on:
  3. push:
  4. tags:
  5. - v*
  6. workflow_dispatch:
  7. inputs:
  8. tag:
  9. description: "The tag version you want to build"
  10. jobs:
  11. build:
  12. runs-on: ubuntu-latest
  13. steps:
  14. - name: Checkout
  15. uses: actions/checkout@v2
  16. - name: Setup Docker Buildx
  17. uses: docker/setup-buildx-action@v1
  18. - name: Setup QEMU for Docker Buildx
  19. uses: docker/setup-qemu-action@v2
  20. - name: Login to GitHub Container Registry
  21. uses: docker/login-action@v1
  22. with:
  23. registry: ghcr.io
  24. username: ${{ github.repository_owner }}
  25. password: ${{ secrets.GITHUB_TOKEN }}
  26. - name: Docker metadata
  27. id: metadata
  28. uses: docker/metadata-action@v3
  29. with:
  30. images: ghcr.io/sagernet/sing-box
  31. - name: Get tag to build
  32. id: tag
  33. run: |
  34. echo "latest=ghcr.io/sagernet/sing-box:latest" >> $GITHUB_OUTPUT
  35. if [[ -z "${{ github.event.inputs.tag }}" ]]; then
  36. echo "versioned=ghcr.io/sagernet/sing-box:${{ github.ref_name }}" >> $GITHUB_OUTPUT
  37. else
  38. echo "versioned=ghcr.io/sagernet/sing-box:${{ github.event.inputs.tag }}" >> $GITHUB_OUTPUT
  39. fi
  40. - name: Build and release Docker images
  41. uses: docker/build-push-action@v2
  42. with:
  43. platforms: linux/386,linux/amd64,linux/arm64,linux/s390x
  44. target: dist
  45. tags: |
  46. ${{ steps.tag.outputs.latest }}
  47. ${{ steps.tag.outputs.versioned }}
  48. push: true