aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/binaries_release.yml
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2021-09-05 23:08:34 -0700
committerChris Lu <chris.lu@gmail.com>2021-09-05 23:08:34 -0700
commitd869a07cd2b2e9cc22e7e87f7f001be84712fe9c (patch)
tree311e868424a52b26683306fd0bf940a897f29577 /.github/workflows/binaries_release.yml
parent705285ec603c19a2b5da9dee5fcea12ed4d671c9 (diff)
downloadseaweedfs-d869a07cd2b2e9cc22e7e87f7f001be84712fe9c.tar.xz
seaweedfs-d869a07cd2b2e9cc22e7e87f7f001be84712fe9c.zip
clean up
Diffstat (limited to '.github/workflows/binaries_release.yml')
-rw-r--r--.github/workflows/binaries_release.yml116
1 files changed, 116 insertions, 0 deletions
diff --git a/.github/workflows/binaries_release.yml b/.github/workflows/binaries_release.yml
new file mode 100644
index 000000000..4ce94b765
--- /dev/null
+++ b/.github/workflows/binaries_release.yml
@@ -0,0 +1,116 @@
+# 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 }}