mirror of
				https://github.com/ClementTsang/bottom.git
				synced 2025-10-30 18:54:04 +01:00 
			
		
		
		
	ci: Add initial github actions ci
This commit is contained in:
		
							parent
							
								
									e04ce4fa1b
								
							
						
					
					
						commit
						e8238daa64
					
				
							
								
								
									
										194
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										194
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,194 @@ | |||||||
|  | # CI pipeline based on: | ||||||
|  | # - https://github.com/heim-rs/heim/blob/master/.github/workflows/ci.yml | ||||||
|  | # - https://github.com/BurntSushi/ripgrep/blob/master/.github/workflows/ci.yml | ||||||
|  | 
 | ||||||
|  | name: ci | ||||||
|  | on: | ||||||
|  |   workflow_dispatch: | ||||||
|  |   pull_request: | ||||||
|  |   push: | ||||||
|  |     branches: | ||||||
|  |       - master | ||||||
|  |     schedule: | ||||||
|  |       - cron: "0 5 * * *" | ||||||
|  | 
 | ||||||
|  | jobs: | ||||||
|  |   # Check rustfmt | ||||||
|  |   rustfmt: | ||||||
|  |     runs-on: ${{ matrix.os }} | ||||||
|  |     strategy: | ||||||
|  |       matrix: | ||||||
|  |         os: | ||||||
|  |           - ubuntu-latest | ||||||
|  |           - macOS-latest | ||||||
|  |           - windows-latest | ||||||
|  |     steps: | ||||||
|  |       - uses: actions/checkout@v2 | ||||||
|  |       - uses: actions-rs/toolchain@v1 | ||||||
|  |         with: | ||||||
|  |           profile: minimal | ||||||
|  |           toolchain: stable | ||||||
|  |           override: true | ||||||
|  |           components: rustfmt | ||||||
|  |       - run: cargo fmt --all -- --check | ||||||
|  | 
 | ||||||
|  |   # Check clippy. | ||||||
|  |   clippy: | ||||||
|  |     runs-on: ${{ matrix.os }} | ||||||
|  |     strategy: | ||||||
|  |       matrix: | ||||||
|  |         os: | ||||||
|  |           - ubuntu-latest | ||||||
|  |           - macOS-latest | ||||||
|  |           - windows-latest | ||||||
|  |     steps: | ||||||
|  |       - uses: actions/checkout@v2 | ||||||
|  |       - name: Cache cargo build target | ||||||
|  |         uses: actions/cache@v1 | ||||||
|  |         with: | ||||||
|  |           path: target | ||||||
|  |           key: clippy-${{ runner.os }}-${{ hashFiles('**/Cargo.toml') }} | ||||||
|  | 
 | ||||||
|  |       - uses: actions-rs/toolchain@v1 | ||||||
|  |         with: | ||||||
|  |           profile: minimal | ||||||
|  |           toolchain: stable | ||||||
|  |           override: true | ||||||
|  |           components: clippy | ||||||
|  |       - run: cargo clippy --all-targets --workspace -- -D warnings | ||||||
|  | 
 | ||||||
|  |   # Compile test. | ||||||
|  |   compile: | ||||||
|  |     name: ${{ matrix.toolchain }} / ${{ matrix.triple.target }} | ||||||
|  |     needs: [rustfmt, clippy] | ||||||
|  |     runs-on: ${{ matrix.triple.os }} | ||||||
|  |     strategy: | ||||||
|  |       fail-fast: false | ||||||
|  |       matrix: | ||||||
|  |         triple: | ||||||
|  |           # Standard x86-64 stuff, stable | ||||||
|  |           - { | ||||||
|  |               os: "ubuntu-latest", | ||||||
|  |               target: "x86_64-unknown-linux-gnu", | ||||||
|  |               cross: false, | ||||||
|  |               rust: stable, | ||||||
|  |             } | ||||||
|  |           - { | ||||||
|  |               os: "ubuntu-latest", | ||||||
|  |               target: "i686-unknown-linux-gnu", | ||||||
|  |               cross: true, | ||||||
|  |               rust: stable, | ||||||
|  |             } | ||||||
|  |           - { | ||||||
|  |               os: "ubuntu-latest", | ||||||
|  |               target: "x86_64-unknown-linux-musl", | ||||||
|  |               cross: false, | ||||||
|  |               rust: stable, | ||||||
|  |             } | ||||||
|  |           - { | ||||||
|  |               os: "ubuntu-latest", | ||||||
|  |               target: "i686-unknown-linux-musl", | ||||||
|  |               cross: true, | ||||||
|  |               rust: stable, | ||||||
|  |             } | ||||||
|  |           - { | ||||||
|  |               os: "macOS-latest", | ||||||
|  |               target: "x86_64-apple-darwin", | ||||||
|  |               cross: false, | ||||||
|  |               rust: stable, | ||||||
|  |             } | ||||||
|  |           - { | ||||||
|  |               os: "windows-latest", | ||||||
|  |               target: "x86_64-pc-windows-msvc", | ||||||
|  |               cross: false, | ||||||
|  |               rust: stable, | ||||||
|  |             } | ||||||
|  |           - { os: "windows-latest", target: "i686-pc-windows-gnu", cross: true } | ||||||
|  |           - { | ||||||
|  |               os: "windows-latest", | ||||||
|  |               target: "x86_64-pc-windows-gnu", | ||||||
|  |               cross: false, | ||||||
|  |               rust: stable, | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |           # aarch64 | ||||||
|  |           - { | ||||||
|  |               os: "ubuntu-latest", | ||||||
|  |               target: "aarch64-unknown-linux-gnu", | ||||||
|  |               cross: true, | ||||||
|  |               rust: stable, | ||||||
|  |             } | ||||||
|  |           - { | ||||||
|  |               os: "ubuntu-latest", | ||||||
|  |               target: "aarch64-unknown-linux-musl", | ||||||
|  |               cross: true, | ||||||
|  |               rust: stable, | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |           # armv7 | ||||||
|  |           - { | ||||||
|  |               os: "ubuntu-latest", | ||||||
|  |               target: "armv7-unknown-linux-gnueabihf", | ||||||
|  |               cross: true, | ||||||
|  |               rust: stable, | ||||||
|  |             } | ||||||
|  |           - { | ||||||
|  |               os: "ubuntu-latest", | ||||||
|  |               target: "armv7-unknown-linux-musleabihf", | ||||||
|  |               cross: true, | ||||||
|  |               rust: stable, | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |           # PowerPC 64 LE | ||||||
|  |           - { | ||||||
|  |               os: "ubuntu-latest", | ||||||
|  |               target: "powerpc64le-unknown-linux-gnu", | ||||||
|  |               cross: true, | ||||||
|  |               rust: stable, | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |     steps: | ||||||
|  |       - uses: actions/checkout@v2 | ||||||
|  | 
 | ||||||
|  |       - name: Install toolchain | ||||||
|  |         uses: actions-rs/toolchain@v1 | ||||||
|  |         with: | ||||||
|  |           profile: minimal | ||||||
|  |           toolchain: ${{ matrix.toolchain }} | ||||||
|  |           override: true | ||||||
|  | 
 | ||||||
|  |       - name: Check | ||||||
|  |         uses: actions-rs/cargo@v1 | ||||||
|  |         with: | ||||||
|  |           command: check | ||||||
|  |           args: --all-targets --verbose | ||||||
|  |           use-cross: ${{ matrix.triple.cross }} | ||||||
|  | 
 | ||||||
|  |   tests: | ||||||
|  |     needs: [compile] | ||||||
|  |     name: Test ${{ matrix.os }} | ||||||
|  |     runs-on: ${{ matrix.os }} | ||||||
|  |     continue-on-error: true | ||||||
|  |     strategy: | ||||||
|  |       fail-fast: false | ||||||
|  |       matrix: | ||||||
|  |         os: | ||||||
|  |           - ubuntu-latest | ||||||
|  |           - macOS-latest | ||||||
|  |           - windows-latest | ||||||
|  |       toolchain: | ||||||
|  |         - stable | ||||||
|  |     steps: | ||||||
|  |       - uses: actions/checkout@v2 | ||||||
|  |       - name: Install toolchain | ||||||
|  |         uses: actions-rs/toolchain@v1 | ||||||
|  |         with: | ||||||
|  |           profile: minimal | ||||||
|  |           toolchain: ${{ matrix.toolchain }} | ||||||
|  |           override: true | ||||||
|  | 
 | ||||||
|  |       - name: Run tests | ||||||
|  |         run: cargo test --no-fail-fast | ||||||
|  |         env: | ||||||
|  |           CARGO_HUSKY_DONT_INSTALL_HOOKS: true | ||||||
|  |           RUST_BACKTRACE: full | ||||||
							
								
								
									
										0
									
								
								.github/workflows/deployment.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								.github/workflows/deployment.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user