on: - push - workflow_dispatch name: CI jobs: lint_and_test: name: lint and test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable with: components: clippy, rustfmt - uses: Swatinem/rust-cache@v2 - run: cargo clippy --all-features -- -D warnings - run: cargo check --workspace --all-features - run: cargo test --all-targets - run: cargo fmt --all -- --check build_package: needs: lint_and_test if: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/build-') }} name: Build package env: RUSTFLAGS: "-C strip=debuginfo" strategy: matrix: os: - ubuntu-latest - macos-latest # - windows-latest runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable with: toolchain: stable - uses: Swatinem/rust-cache@v2 - run: cargo build --release - name: prepare release artifact shell: bash run: | mkdir -p target/{bin,man} cp target/release/*.1 target/man cp target/release/git-{mob,solo,{add,edit,delete}-coauthor} target/bin - uses: actions/upload-artifact@v4 with: name: git-mob-${{ matrix.os }} path: | target/bin target/man