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