mirror of
				https://github.com/smoltcp-rs/smoltcp.git
				synced 2025-11-04 07:12:46 +00:00 
			
		
		
		
	Add Github Actions for CI
This commit is contained in:
		
							parent
							
								
									2080152b25
								
							
						
					
					
						commit
						aafc5e79ca
					
				
							
								
								
									
										25
									
								
								.github/workflows/clippy.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								.github/workflows/clippy.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					on:
 | 
				
			||||||
 | 
					  push:
 | 
				
			||||||
 | 
					    branches: [ staging, trying, master ]
 | 
				
			||||||
 | 
					  pull_request_target:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					name: Clippy check
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  clippy:
 | 
				
			||||||
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      - uses: actions/checkout@v2
 | 
				
			||||||
 | 
					        if: github.event_name == 'pull_request_target'
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          ref: refs/pull/${{ github.event.number }}/head
 | 
				
			||||||
 | 
					      - uses: actions/checkout@v2
 | 
				
			||||||
 | 
					        if: github.event_name != 'pull_request_target'
 | 
				
			||||||
 | 
					      - uses: actions-rs/toolchain@v1
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          profile: minimal
 | 
				
			||||||
 | 
					          toolchain: stable
 | 
				
			||||||
 | 
					          override: true
 | 
				
			||||||
 | 
					          components: clippy
 | 
				
			||||||
 | 
					      - uses: actions-rs/clippy-check@v1
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          token: ${{ secrets.GITHUB_TOKEN }}
 | 
				
			||||||
							
								
								
									
										21
									
								
								.github/workflows/fuzz.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								.github/workflows/fuzz.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					on:
 | 
				
			||||||
 | 
					  push:
 | 
				
			||||||
 | 
					    branches: [ staging, trying, master ]
 | 
				
			||||||
 | 
					  pull_request:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					name: Fuzz
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  fuzz:
 | 
				
			||||||
 | 
					    runs-on: ubuntu-20.04
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      - uses: actions/checkout@v2
 | 
				
			||||||
 | 
					      - uses: actions-rs/toolchain@v1
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          profile: minimal
 | 
				
			||||||
 | 
					          toolchain: nightly
 | 
				
			||||||
 | 
					          override: true
 | 
				
			||||||
 | 
					      - name: Install cargo-fuzz
 | 
				
			||||||
 | 
					        run: cargo install cargo-fuzz
 | 
				
			||||||
 | 
					      - name: Fuzz
 | 
				
			||||||
 | 
					        run: cargo fuzz run packet_parser -- -max_len=1536 -max_total_time=30
 | 
				
			||||||
							
								
								
									
										79
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,79 @@
 | 
				
			|||||||
 | 
					on:
 | 
				
			||||||
 | 
					  push:
 | 
				
			||||||
 | 
					    branches: [ staging, trying, master ]
 | 
				
			||||||
 | 
					  pull_request:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					name: Test
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  test:
 | 
				
			||||||
 | 
					    runs-on: ubuntu-20.04
 | 
				
			||||||
 | 
					    continue-on-error: ${{ matrix.rust == 'nightly' }}
 | 
				
			||||||
 | 
					    strategy:
 | 
				
			||||||
 | 
					      matrix:
 | 
				
			||||||
 | 
					        # Test on stable, MSRV 1.36, and nightly.
 | 
				
			||||||
 | 
					        # Failure is permitted on nightly.
 | 
				
			||||||
 | 
					        rust:
 | 
				
			||||||
 | 
					          - stable
 | 
				
			||||||
 | 
					          - 1.36.0
 | 
				
			||||||
 | 
					          - nightly
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        features:
 | 
				
			||||||
 | 
					          # Test default features.
 | 
				
			||||||
 | 
					          - default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          # Test features chosen to be as orthogonal as possible.
 | 
				
			||||||
 | 
					          - std ethernet phy-raw_socket proto-ipv6 socket-udp
 | 
				
			||||||
 | 
					          - std ethernet phy-tap_interface proto-ipv6 socket-udp
 | 
				
			||||||
 | 
					          - std ethernet proto-ipv4 proto-igmp socket-raw
 | 
				
			||||||
 | 
					          - std ethernet proto-ipv4 socket-udp socket-tcp
 | 
				
			||||||
 | 
					          - std ethernet proto-ipv4 proto-dhcpv4 socket-udp
 | 
				
			||||||
 | 
					          - std ethernet proto-ipv6 socket-udp
 | 
				
			||||||
 | 
					          - std ethernet proto-ipv6 socket-tcp
 | 
				
			||||||
 | 
					          - std ethernet proto-ipv4 socket-icmp socket-tcp
 | 
				
			||||||
 | 
					          - std ethernet proto-ipv6 socket-icmp socket-tcp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          # Test features chosen to be as aggressive as possible.
 | 
				
			||||||
 | 
					          - std ethernet proto-ipv4 proto-ipv6 socket-raw socket-udp socket-tcp socket-icmp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        include:
 | 
				
			||||||
 | 
					          # Test alloc feature which requires nightly.
 | 
				
			||||||
 | 
					          - rust: nightly
 | 
				
			||||||
 | 
					            features: alloc ethernet proto-ipv4 proto-ipv6 socket-raw socket-udp socket-tcp socket-icmp
 | 
				
			||||||
 | 
					          - rust: nightly
 | 
				
			||||||
 | 
					            features: alloc proto-ipv4 proto-ipv6 socket-raw socket-udp socket-tcp socket-icmp
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      - uses: actions/checkout@v2
 | 
				
			||||||
 | 
					      - uses: actions-rs/toolchain@v1
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          profile: minimal
 | 
				
			||||||
 | 
					          toolchain: ${{ matrix.rust }}
 | 
				
			||||||
 | 
					          override: true
 | 
				
			||||||
 | 
					      - name: Run Tests
 | 
				
			||||||
 | 
					        run: cargo test --no-default-features --features "${{ matrix.features }}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  check:
 | 
				
			||||||
 | 
					    runs-on: ubuntu-20.04
 | 
				
			||||||
 | 
					    continue-on-error: ${{ matrix.rust == 'nightly' }}
 | 
				
			||||||
 | 
					    strategy:
 | 
				
			||||||
 | 
					      matrix:
 | 
				
			||||||
 | 
					        # Test on stable, MSRV 1.36, and nightly.
 | 
				
			||||||
 | 
					        # Failure is permitted on nightly.
 | 
				
			||||||
 | 
					        rust:
 | 
				
			||||||
 | 
					          - stable
 | 
				
			||||||
 | 
					          - 1.36.0
 | 
				
			||||||
 | 
					          - nightly
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        features:
 | 
				
			||||||
 | 
					          # These feature sets cannot run tests, so we only check they build.
 | 
				
			||||||
 | 
					          - ethernet proto-ipv6 proto-ipv6 proto-igmp proto-dhcpv4 socket-raw socket-udp socket-tcp socket-icmp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      - uses: actions/checkout@v2
 | 
				
			||||||
 | 
					      - uses: actions-rs/toolchain@v1
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          profile: minimal
 | 
				
			||||||
 | 
					          toolchain: ${{ matrix.rust }}
 | 
				
			||||||
 | 
					          override: true
 | 
				
			||||||
 | 
					      - name: Check
 | 
				
			||||||
 | 
					        run: cargo check --no-default-features --features "${{ matrix.features }}"
 | 
				
			||||||
@ -6,7 +6,7 @@ include complicated compile-time computations, such as macro or type tricks, eve
 | 
				
			|||||||
at cost of performance degradation.
 | 
					at cost of performance degradation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
_smoltcp_ does not need heap allocation *at all*, is [extensively documented][docs],
 | 
					_smoltcp_ does not need heap allocation *at all*, is [extensively documented][docs],
 | 
				
			||||||
and compiles on stable Rust 1.28 and later.
 | 
					and compiles on stable Rust 1.36 and later.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
_smoltcp_ achieves [~Gbps of throughput](#examplesbenchmarkrs) when tested against
 | 
					_smoltcp_ achieves [~Gbps of throughput](#examplesbenchmarkrs) when tested against
 | 
				
			||||||
the Linux TCP stack in loopback mode.
 | 
					the Linux TCP stack in loopback mode.
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user