mirror of https://github.com/fafhrd91/actix-web
				
				
				
			
		
			
				
	
	
		
			122 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
| name: CI
 | |
| 
 | |
| on:
 | |
|   pull_request:
 | |
|     types: [opened, synchronize, reopened]
 | |
|   merge_group:
 | |
|     types: [checks_requested]
 | |
|   push:
 | |
|     branches: [master]
 | |
| 
 | |
| permissions:
 | |
|   contents: read
 | |
| 
 | |
| concurrency:
 | |
|   group: ${{ github.workflow }}-${{ github.ref }}
 | |
|   cancel-in-progress: true
 | |
| 
 | |
| jobs:
 | |
|   read_msrv:
 | |
|     name: Read MSRV
 | |
|     uses: actions-rust-lang/msrv/.github/workflows/msrv.yml@8b553824444060021f2843d7b4d803f3624d15e5 # v0.1.0
 | |
| 
 | |
|   build_and_test:
 | |
|     needs: read_msrv
 | |
| 
 | |
|     strategy:
 | |
|       fail-fast: false
 | |
|       matrix:
 | |
|         # prettier-ignore
 | |
|         target:
 | |
|           - { name: Linux, os: ubuntu-latest, triple: x86_64-unknown-linux-gnu }
 | |
|           - { name: macOS, os: macos-latest, triple: x86_64-apple-darwin }
 | |
|           - { name: Windows, os: windows-latest, triple: x86_64-pc-windows-msvc }
 | |
|         version:
 | |
|           - { name: msrv, version: "${{ needs.read_msrv.outputs.msrv }}" }
 | |
|           - { name: stable, version: stable }
 | |
| 
 | |
|     name: ${{ matrix.target.name }} / ${{ matrix.version.name }}
 | |
|     runs-on: ${{ matrix.target.os }}
 | |
| 
 | |
|     steps:
 | |
|       - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
 | |
| 
 | |
|       - name: Install nasm
 | |
|         if: matrix.target.os == 'windows-latest'
 | |
|         uses: ilammy/setup-nasm@72793074d3c8cdda771dba85f6deafe00623038b # v1.5.2
 | |
| 
 | |
|       - name: Install OpenSSL
 | |
|         if: matrix.target.os == 'windows-latest'
 | |
|         shell: bash
 | |
|         run: |
 | |
|           set -e
 | |
|           choco install openssl --version=1.1.1.2100 -y --no-progress
 | |
|           echo 'OPENSSL_DIR=C:\Program Files\OpenSSL' >> $GITHUB_ENV
 | |
|           echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV          
 | |
| 
 | |
|       - name: Setup mold linker
 | |
|         if: matrix.target.os == 'ubuntu-latest'
 | |
|         uses: rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
 | |
| 
 | |
|       - name: Install Rust (${{ matrix.version.name }})
 | |
|         uses: actions-rust-lang/setup-rust-toolchain@1780873c7b576612439a134613cc4cc74ce5538c # v1.15.2
 | |
|         with:
 | |
|           toolchain: ${{ matrix.version.version }}
 | |
| 
 | |
|       - name: Install just, cargo-hack, cargo-nextest, cargo-ci-cache-clean
 | |
|         uses: taiki-e/install-action@e43a5023a747770bfcb71ae048541a681714b951 # v2.62.33
 | |
|         with:
 | |
|           tool: just,cargo-hack,cargo-nextest,cargo-ci-cache-clean
 | |
| 
 | |
|       - name: workaround MSRV issues
 | |
|         if: matrix.version.name == 'msrv'
 | |
|         run: just downgrade-for-msrv
 | |
| 
 | |
|       - name: check minimal
 | |
|         run: just check-min
 | |
| 
 | |
|       - name: check default
 | |
|         run: just check-default
 | |
| 
 | |
|       - name: tests
 | |
|         timeout-minutes: 60
 | |
|         run: just test
 | |
| 
 | |
|       - name: CI cache clean
 | |
|         run: cargo-ci-cache-clean
 | |
| 
 | |
|   io-uring:
 | |
|     name: io-uring tests
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
 | |
| 
 | |
|       - name: Install Rust
 | |
|         uses: actions-rust-lang/setup-rust-toolchain@1780873c7b576612439a134613cc4cc74ce5538c # v1.15.2
 | |
|         with:
 | |
|           toolchain: nightly
 | |
| 
 | |
|       - name: tests (io-uring)
 | |
|         timeout-minutes: 60
 | |
|         run: >
 | |
|           sudo bash -c "ulimit -Sl 512 && ulimit -Hl 512 && PATH=$PATH:/usr/share/rust/.cargo/bin && RUSTUP_TOOLCHAIN=stable cargo test --lib --tests -p=actix-files --all-features"          
 | |
| 
 | |
|   rustdoc:
 | |
|     name: doc tests
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
 | |
| 
 | |
|       - name: Install Rust (nightly)
 | |
|         uses: actions-rust-lang/setup-rust-toolchain@1780873c7b576612439a134613cc4cc74ce5538c # v1.15.2
 | |
|         with:
 | |
|           toolchain: nightly
 | |
| 
 | |
|       - name: Install just
 | |
|         uses: taiki-e/install-action@e43a5023a747770bfcb71ae048541a681714b951 # v2.62.33
 | |
|         with:
 | |
|           tool: just
 | |
| 
 | |
|       - name: doc tests
 | |
|         run: just test-docs
 |