name: Release on: push: tags: - "[0-9]+.*" jobs: create-release: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - uses: taiki-e/create-gh-release-action@v1 with: # Create a draft release so we can add the changelog before publishing it # so the changelog is included in the release email draft: true env: # (required) GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} upload-assets: strategy: fail-fast: false matrix: include: # Targets that match the OS of the runner. - target: x86_64-unknown-linux-gnu os: ubuntu-22.04 - target: x86_64-apple-darwin os: macos-13 - target: x86_64-pc-windows-msvc os: windows-latest # Targets using cross-compilation (upload-rust-binary-action # detects that they need cross). - target: x86_64-unknown-linux-musl os: ubuntu-22.04 - target: aarch64-unknown-linux-gnu os: ubuntu-22.04 - target: aarch64-apple-darwin os: macos-latest runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - uses: taiki-e/upload-rust-binary-action@v1 with: bin: difft # (optional) On which platform to distribute the `.tar.gz` file. tar: unix # (optional) On which platform to distribute the `.zip` file. zip: windows # (optional) Target triple, default is host triple. target: ${{ matrix.target }} env: # (required) GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} push_crates_io: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - uses: katyo/publish-crates@v2 with: registry-token: ${{ secrets.CARGO_REGISTRY_TOKEN }}