name: Build Docker Images on: workflow_dispatch: inputs: tag: description: "The tag version you want to build" jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 - name: Setup Docker Buildx uses: docker/setup-buildx-action@v3 - name: Setup QEMU for Docker Buildx uses: docker/setup-qemu-action@v3 - name: Login to GitHub Container Registry uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: Docker metadata id: metadata uses: docker/metadata-action@v5 with: images: ghcr.io/sagernet/sing-box - name: Get tag to build id: tag run: | echo "latest=ghcr.io/sagernet/sing-box:latest" >> $GITHUB_OUTPUT if [[ -z "${{ github.event.inputs.tag }}" ]]; then echo "versioned=ghcr.io/sagernet/sing-box:${{ github.ref_name }}" >> $GITHUB_OUTPUT else echo "versioned=ghcr.io/sagernet/sing-box:${{ github.event.inputs.tag }}" >> $GITHUB_OUTPUT fi - name: Build and release Docker images uses: docker/build-push-action@v5 with: platforms: linux/386,linux/amd64,linux/arm64,linux/s390x target: dist build-args: | BUILDKIT_CONTEXT_KEEP_GIT_DIR=1 tags: | ${{ steps.tag.outputs.latest }} ${{ steps.tag.outputs.versioned }} push: true