From 2c7400d9d8806e769825404a63fe42beda6e0249 Mon Sep 17 00:00:00 2001 From: Yiwen-Chan Date: Sat, 13 Mar 2021 18:54:43 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=A7=20=E6=B5=8B=E8=AF=95action?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/release.yml | 90 +++++++++++++++++++++++++---------- 1 file changed, 65 insertions(+), 25 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3e4e9768..534c4741 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,32 +1,72 @@ +name: Compile ZeroBot-Plugin on: + push: + branches: + - master release: - types: [created] + types: + - created + +env: + GITHUB_TOKEN: ${{ github.token }} jobs: - releases-matrix: + my-job: name: Build ZeroBot-Plugin 🚀 runs-on: ubuntu-latest - strategy: - matrix: - # build and publish in parallel: linux/386, linux/amd64, windows/386, windows/amd64, darwin/386, darwin/amd64 - goos: [linux, windows, darwin] - goarch: ["386", amd64, arm] - exclude: - - goos: darwin - goarch: arm - - goos: darwin - goarch: "386" - steps: - - uses: actions/checkout@v2 - - name: Set RELEASE_VERSION env - run: echo "RELEASE_VERSION=${GITHUB_REF:10}" >> $GITHUB_ENV - - uses: pcrbot/go-release-action@master - env: - CGO_ENABLED: 1 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - goos: ${{ matrix.goos }} - goarch: ${{ matrix.goarch }} - goversion: "https://golang.org/dl/go1.15.3.linux-amd64.tar.gz" - ldflags: -w -s -X "github.com/Yiwen-Chan/ZeroBot-Plugin/gm.Version=${{ env.RELEASE_VERSION }}" + + - name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: 1.15 + + - name: Check out code into the Go module directory + uses: actions/checkout@v2 + + - name: Cache Go + id: cache + uses: actions/cache@v2 + with: + # A list of files, directories, and wildcard patterns to cache and restore + path: ~/go/pkg/mod + key: ${{ runner.os }}-build-${{ hashFiles('**/go.sum') }} + + - name: Tidy Go modules + run: go mod tidy + + - name: Build linux + run: export GOOS=linux; export GOARCH=amd64; export CGO_ENABLED=1; go build -ldflags="-s -w -extldflags '-static'" -o artifacts/ZeroBot-Plugin-windows.exe + + - name: Build windows + run: export GOOS=windows; export GOARCH=amd64; export CGO_ENABLED=1; go build -ldflags="-s -w -extldflags '-static'" -o artifacts/ZeroBot-Plugin-linux + + - name: Upload Build Artifact + uses: actions/upload-artifact@v2 + with: + # Artifact name + name: ZeroBot-Plugin + # A file, directory or wildcard pattern that describes what to upload + path: ./artifacts + + - name: Gets latest created release info + id: latest_release_info + uses: jossef/action-latest-release-info@v1.1.0 + + - name: Upload linux asset to github release page + id: upload-release-asset + uses: actions/upload-release-asset@v1 + with: + upload_url: ${{ steps.latest_release_info.outputs.upload_url }} + asset_path: ./artifacts/ZeroBot-Plugin-linux + asset_name: ZeroBot-Plugin-linux + asset_content_type: application/zip + + - name: Upload windows asset to github release page + id: upload-release-asset + uses: actions/upload-release-asset@v1 + with: + upload_url: ${{ steps.latest_release_info.outputs.upload_url }} + asset_path: ./artifacts/ZeroBot-Plugin-windows.exe + asset_name: ZeroBot-Plugin-windows.exe + asset_content_type: application/zip \ No newline at end of file