name: Create release on: push: tags: - "v*" env: SCCACHE_GHA_ENABLED: "true" RUSTC_WRAPPER: "sccache" jobs: create-release: name: Create release runs-on: ubuntu-latest outputs: upload_url: "${{ steps.create_release.outputs.upload_url }}" steps: - id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.ref }} release_name: ${{ github.ref }} draft: true prerelease: false build-linux: name: Linux binary needs: create-release runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable id: setup_rust - uses: actions/cache@v3 with: path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ key: "cargo-build-linux-${{ steps.setup_rust.outputs.cachekey }}" - name: Run sccache-cache uses: mozilla-actions/sccache-action@v0.0.3 - run: cargo build --release --locked - run: strip target/release/obsidian-export - uses: actions/upload-artifact@v3 with: name: Linux binary path: target/release/obsidian-export retention-days: 7 - uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} asset_path: target/release/obsidian-export asset_name: obsidian-export_Linux-x86_64.bin asset_content_type: application/octet-stream build-windows: name: Windows binary needs: create-release runs-on: windows-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable id: setup_rust - uses: actions/cache@v3 with: path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ key: "cargo-build-linux-${{ steps.setup_rust.outputs.cachekey }}" - name: Run sccache-cache uses: mozilla-actions/sccache-action@v0.0.3 - run: cargo build --release --locked - run: strip target/release/obsidian-export.exe - uses: actions/upload-artifact@v3 with: name: Windows binary path: target/release/obsidian-export.exe retention-days: 7 - uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} asset_path: target/release/obsidian-export.exe asset_name: obsidian-export_Windows-x64_64.exe asset_content_type: application/octet-stream build-macos: name: Mac OS binary needs: create-release runs-on: macos-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable id: setup_rust - uses: actions/cache@v3 with: path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ key: "cargo-build-linux-${{ steps.setup_rust.outputs.cachekey }}" - name: Run sccache-cache uses: mozilla-actions/sccache-action@v0.0.3 - run: cargo build --release --locked - run: strip target/release/obsidian-export - uses: actions/upload-artifact@v3 with: name: MacOS binary path: target/release/obsidian-export retention-days: 7 - uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} asset_path: target/release/obsidian-export asset_name: obsidian-export_MacOS-x86_64.bin asset_content_type: application/octet-stream