# This is a basic workflow to help you get started with Actions name: "go: build versioned binaries" on: release: types: [created] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: build-release-binaries: runs-on: ubuntu-latest strategy: matrix: goos: [linux, windows, darwin, freebsd, netbsd, openbsd] goarch: [amd64, arm, arm64, 386] exclude: - goarch: arm goos: darwin - goarch: 386 goos: darwin - goarch: arm goos: windows - goarch: arm64 goos: windows # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v2 - name: Go Release Binaries uses: wangyoucao577/go-release-action@v1.20 with: github_token: ${{ secrets.GITHUB_TOKEN }} goos: ${{ matrix.goos }} goarch: ${{ matrix.goarch }} overwrite: true pre_command: export CGO_ENABLED=0 # build_flags: -tags 5BytesOffset # optional, default is ldflags: -extldflags -static -X github.com/chrislusf/seaweedfs/weed/util.COMMIT=${{github.sha}} # Where to run `go build .` project_path: weed binary_name: weed asset_name: "${{ matrix.goos }}_${{ matrix.goarch }}" - name: Go Release Large Disk Binaries uses: wangyoucao577/go-release-action@v1.20 with: github_token: ${{ secrets.GITHUB_TOKEN }} goos: ${{ matrix.goos }} goarch: ${{ matrix.goarch }} overwrite: true pre_command: export CGO_ENABLED=0 build_flags: -tags 5BytesOffset # optional, default is ldflags: -extldflags -static -X github.com/chrislusf/seaweedfs/weed/util.COMMIT=${{github.sha}} # Where to run `go build .` project_path: weed binary_name: weed asset_name: "${{ matrix.goos }}_${{ matrix.goarch }}_large_disk" build-latest-docker-image: runs-on: [ubuntu-latest] steps: - name: Checkout uses: actions/checkout@v2 - name: Docker meta id: docker_meta uses: docker/metadata-action@v3 with: images: | chrislusf/seaweedfs ghcr.io/chrislusf/seaweedfs tags: | type=raw,value=latest labels: | org.opencontainers.image.title=seaweedfs org.opencontainers.image.vendor=Chris Lu - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 with: buildkitd-flags: "--debug" - name: Login to Docker Hub if: github.event_name != 'pull_request' uses: docker/login-action@v1 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Login to GHCR if: github.event_name != 'pull_request' uses: docker/login-action@v1 with: registry: ghcr.io username: ${{ secrets.GHCR_USERNAME }} password: ${{ secrets.GHCR_TOKEN }} - name: Build uses: docker/build-push-action@v2 with: context: ./docker push: ${{ github.event_name != 'pull_request' }} file: ./docker/Dockerfile platforms: linux/amd64, linux/arm, linux/arm64, linux/386 tags: ${{ steps.docker_meta.outputs.tags }} labels: ${{ steps.docker_meta.outputs.labels }}