54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
| 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            
 |