name: Build and Release on: push: tags: - 'v*' workflow_dispatch: jobs: build-macos: runs-on: macos-latest steps: - uses: actions/checkout@v4 - name: Install Rust uses: dtolnay/rust-toolchain@stable - name: Build release binary run: cargo build --release - name: Package binary run: | mkdir -p dist/mt5-quant-macos cp target/release/mt5-quant dist/mt5-quant-macos/ cp -r config dist/mt5-quant-macos/ cp README.md dist/mt5-quant-macos/ cp WINDSURF_SETUP.md dist/mt5-quant-macos/ cd dist tar -czf mt5-quant-macos-arm64.tar.gz mt5-quant-macos - name: Upload artifact uses: actions/upload-artifact@v4 with: name: macos-binary path: dist/mt5-quant-macos-arm64.tar.gz build-linux: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install Rust uses: dtolnay/rust-toolchain@stable - name: Build release binary run: cargo build --release - name: Package binary run: | mkdir -p dist/mt5-quant-linux cp target/release/mt5-quant dist/mt5-quant-linux/ cp -r config dist/mt5-quant-linux/ cp README.md dist/mt5-quant-linux/ cp WINDSURF_SETUP.md dist/mt5-quant-linux/ cd dist tar -czf mt5-quant-linux-x64.tar.gz mt5-quant-linux - name: Upload artifact uses: actions/upload-artifact@v4 with: name: linux-binary path: dist/mt5-quant-linux-x64.tar.gz release: needs: [build-macos, build-linux] runs-on: ubuntu-latest if: startsWith(github.ref, 'refs/tags/v') permissions: contents: write steps: - uses: actions/checkout@v4 - name: Download macOS artifact uses: actions/download-artifact@v4 with: name: macos-binary path: dist - name: Download Linux artifact uses: actions/download-artifact@v4 with: name: linux-binary path: dist - name: Create Release uses: softprops/action-gh-release@v2 with: files: | dist/mt5-quant-macos-arm64.tar.gz dist/mt5-quant-linux-x64.tar.gz draft: false prerelease: false generate_release_notes: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}