name: release on: push: branches: - main paths-ignore: - '_docs/**' - '_examples/**' - 'README*.md' jobs: release: runs-on: ubuntu-latest outputs: tag_name: ${{ steps.create_release.outputs.tag_name }} upload_url: ${{ steps.create_release.outputs.upload_url }} steps: - uses: actions/checkout@v3 - uses: actions/setup-go@v3 with: go-version: '^1.19' - uses: release-drafter/release-drafter@v5 id: create_release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # build-cli: # runs-on: ubuntu-latest # needs: [ release ] # steps: # - uses: actions/checkout@v3 # - uses: actions/setup-go@v3 # with: # go-version: '^1.19' # cache: true # - name: Build # env: # VERSION: ${{ needs.release.outputs.tag_name }} # run: | # mkdir -p dist/zip # goos_arr=(windows darwin linux) # goarch_arr=(386 amd64 arm64) # export CGO_ENABLED=0 # for goos in "${goos_arr[@]}"; do # for goarch in "${goarch_arr[@]}"; do # dir="dist/gopeed-$VERSION-$goos-$goarch/" # (GOOS=$goos GOARCH=$goarch go build -tags nosqlite -ldflags="-s -w" -o $dir github.com/monkeyWie/gopeed/cmd/gopeed \ # && cd $dir \ # && zip -r ../zip/gopeed-cli-$VERSION-$goos-$goarch.zip * \ # && cd ../..) \ # || true # done # done # - name: Upload # uses: shogo82148/actions-upload-release-asset@v1 # with: # upload_url: ${{ needs.release.outputs.upload_url }} # asset_path: dist/zip/* # overwrite: true build-macos-arm64-lib: runs-on: ubuntu-latest needs: [ release ] steps: - uses: actions/checkout@v3 - uses: actions/setup-go@v3 with: go-version: '^1.19' cache: true - run: mkdir -p ~/image-cache - id: image-cache uses: actions/cache@v3 with: path: ~/image-cache key: image-cache-xgo-v1.19 - if: steps.image-cache.outputs.cache-hit != 'true' run: | docker pull techknowlogick/xgo:go-1.19.x docker save -o ~/image-cache/xgo.tar techknowlogick/xgo:go-1.19.x - if: steps.image-cache.outputs.cache-hit == 'true' run: docker load -i ~/image-cache/xgo.tar - name: Build run: | go install src.techknowlogick.com/xgo@latest xgo --targets=darwin/arm64 -tags="nosqlite" -ldflags="-w -s" -buildmode=c-shared -pkg=bind/desktop -out=libgopeed . mv libgopeed-*.dylib libgopeed.dylib - uses: actions/upload-artifact@v3 with: name: macos-arm64-lib path: libgopeed.dylib build-macos: runs-on: macos-latest needs: [ release, build-macos-arm64-lib ] steps: - uses: actions/checkout@v3 - uses: actions/setup-go@v3 with: go-version: '^1.19' cache: true - uses: actions/setup-node@v3 with: node-version: 16 - uses: subosito/flutter-action@v2 - name: Install appdmg run: npm install -g appdmg - uses: actions/download-artifact@v3 with: name: macos-arm64-lib path: ui/flutter/macos/Frameworks - name: Build env: VERSION: ${{ needs.release.outputs.tag_name }} run: | PROJECT_DIR=$(pwd) cd ui/flutter flutter config --enable-macos-desktop flutter build macos cd build/macos/Build/Products/Release cat>appdmg.json<