| 
						
						
							
								
							
						
						
					 | 
					@ -20,6 +20,7 @@ on: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					jobs: | 
					 | 
					 | 
					jobs: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  build: | 
					 | 
					 | 
					  build: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    runs-on: ubuntu-20.04 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    # Make warnings errors, this is to prevent warnings slipping through. | 
					 | 
					 | 
					    # Make warnings errors, this is to prevent warnings slipping through. | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    # This is done globally to prevent rebuilds when the RUSTFLAGS env variable changes. | 
					 | 
					 | 
					    # This is done globally to prevent rebuilds when the RUSTFLAGS env variable changes. | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    env: | 
					 | 
					 | 
					    env: | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -28,118 +29,169 @@ jobs: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      fail-fast: false | 
					 | 
					 | 
					      fail-fast: false | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      matrix: | 
					 | 
					 | 
					      matrix: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        channel: | 
					 | 
					 | 
					        channel: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					          - stable | 
					 | 
					 | 
					          - "rust-toolchain" # The version defined in rust-toolchain | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					        target-triple: | 
					 | 
					 | 
					          - "1.59.0" # The supported MSRV | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					          - x86_64-unknown-linux-gnu | 
					 | 
					 | 
					
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					        include: | 
					 | 
					 | 
					    name: Build and Test ${{ matrix.channel }} | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					          - target-triple: x86_64-unknown-linux-gnu | 
					 | 
					 | 
					
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					 | 
					 | 
					            host-triple: x86_64-unknown-linux-gnu | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            features: [sqlite,mysql,postgresql,enable_mimalloc] # Remember to update the `cargo test` to match the amount of features | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            channel: stable | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            os: ubuntu-20.04 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            ext: "" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    name: Building ${{ matrix.channel }}-${{ matrix.target-triple }} | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    runs-on: ${{ matrix.os }} | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					    steps: | 
					 | 
					 | 
					    steps: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      # Checkout the repo | 
					 | 
					 | 
					      # Checkout the repo | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					      - name: Checkout | 
					 | 
					 | 
					      - name: "Checkout" | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 | 
					 | 
					 | 
					        uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      # End Checkout the repo | 
					 | 
					 | 
					      # End Checkout the repo | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      # Install musl-tools when needed | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      - name: Install musl tools | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        run: sudo apt-get update && sudo apt-get install -y --no-install-recommends musl-dev musl-tools cmake | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        if: matrix.target-triple == 'x86_64-unknown-linux-musl' | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      # End Install musl-tools when needed | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      # Install dependencies | 
					 | 
					 | 
					      # Install dependencies | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					      - name: Install dependencies Ubuntu | 
					 | 
					 | 
					      - name: "Install dependencies Ubuntu" | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					        run: sudo apt-get update && sudo apt-get install -y --no-install-recommends openssl sqlite build-essential libmariadb-dev-compat libpq-dev libssl-dev pkgconf | 
					 | 
					 | 
					        run: sudo apt-get update && sudo apt-get install -y --no-install-recommends openssl sqlite build-essential libmariadb-dev-compat libpq-dev libssl-dev pkg-config | 
				
			
			
				
				
			
		
	
		
		
			
				
					 | 
					 | 
					        if: startsWith( matrix.os, 'ubuntu' ) | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					      # End Install dependencies | 
					 | 
					 | 
					      # End Install dependencies | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      # Enable Rust Caching | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      - uses: Swatinem/rust-cache@842ef286fff290e445b90b4002cc9807c3669641 # v1.3.0 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      # End Enable Rust Caching | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      # Uses the rust-toolchain file to determine version | 
					 | 
					 | 
					      # Uses the rust-toolchain file to determine version | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					      - name: 'Install ${{ matrix.channel }}-${{ matrix.host-triple }} for target: ${{ matrix.target-triple }}' | 
					 | 
					 | 
					      - name: "Install rust-toolchain version" | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        uses: actions-rs/toolchain@b2417cde72dcf67f306c0ae8e0828a81bf0b189f # v1.0.6 | 
					 | 
					 | 
					        uses: actions-rs/toolchain@b2417cde72dcf67f306c0ae8e0828a81bf0b189f # v1.0.6 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        if: ${{ matrix.channel == 'rust-toolchain' }} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        with: | 
					 | 
					 | 
					        with: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          profile: minimal | 
					 | 
					 | 
					          profile: minimal | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          target: ${{ matrix.target-triple }} | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          components: clippy, rustfmt | 
					 | 
					 | 
					          components: clippy, rustfmt | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      # End Uses the rust-toolchain file to determine version | 
					 | 
					 | 
					      # End Uses the rust-toolchain file to determine version | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      # Install the MSRV channel to be used | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      - name: "Install MSRV version" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        uses: actions-rs/toolchain@b2417cde72dcf67f306c0ae8e0828a81bf0b189f # v1.0.6 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        if: ${{ matrix.channel != 'rust-toolchain' }} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        with: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          profile: minimal | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          override: true | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          toolchain: ${{ matrix.channel }} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      # End Install the MSRV channel to be used | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      # Enable Rust Caching | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      - uses: Swatinem/rust-cache@6720f05bc48b77f96918929a9019fb2203ff71f8 # v2.0.0 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      # End Enable Rust Caching | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      # Show environment | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      - name: "Show environment" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        run: | | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          rustc -vV | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          cargo -vV | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      # End Show environment | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      # Run cargo tests (In release mode to speed up future builds) | 
					 | 
					 | 
					      # Run cargo tests (In release mode to speed up future builds) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      # First test all features together, afterwards test them separately. | 
					 | 
					 | 
					      # First test all features together, afterwards test them separately. | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					      - name: "`cargo test --release --features ${{ join(matrix.features, ',') }} --target ${{ matrix.target-triple }}`" | 
					 | 
					 | 
					      - name: "test features: sqlite,mysql,postgresql,enable_mimalloc" | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        id: test_sqlite_mysql_postgresql_mimalloc | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        uses: actions-rs/cargo@844f36862e911db73fe0815f00a4a2602c279505 # v1.0.3 | 
					 | 
					 | 
					        uses: actions-rs/cargo@844f36862e911db73fe0815f00a4a2602c279505 # v1.0.3 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        if: $${{ always() }} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        with: | 
					 | 
					 | 
					        with: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          command: test | 
					 | 
					 | 
					          command: test | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					          args: --release --features ${{ join(matrix.features, ',') }} --target ${{ matrix.target-triple }} | 
					 | 
					 | 
					          args: --release --features sqlite,mysql,postgresql,enable_mimalloc | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					      # Test single features | 
					 | 
					 | 
					
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					      # 0: sqlite | 
					 | 
					 | 
					      - name: "test features: sqlite,mysql,postgresql" | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					      - name: "`cargo test --release --features ${{ matrix.features[0] }} --target ${{ matrix.target-triple }}`" | 
					 | 
					 | 
					        id: test_sqlite_mysql_postgresql | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        uses: actions-rs/cargo@844f36862e911db73fe0815f00a4a2602c279505 # v1.0.3 | 
					 | 
					 | 
					        uses: actions-rs/cargo@844f36862e911db73fe0815f00a4a2602c279505 # v1.0.3 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        if: $${{ always() }} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        with: | 
					 | 
					 | 
					        with: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          command: test | 
					 | 
					 | 
					          command: test | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					          args: --release --features ${{ matrix.features[0] }} --target ${{ matrix.target-triple }} | 
					 | 
					 | 
					          args: --release --features sqlite,mysql,postgresql | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					        if: ${{ matrix.features[0] != '' }} | 
					 | 
					 | 
					
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					      # 1: mysql | 
					 | 
					 | 
					      - name: "test features: sqlite" | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					      - name: "`cargo test --release --features ${{ matrix.features[1] }} --target ${{ matrix.target-triple }}`" | 
					 | 
					 | 
					        id: test_sqlite | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        uses: actions-rs/cargo@844f36862e911db73fe0815f00a4a2602c279505 # v1.0.3 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        if: $${{ always() }} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        with: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          command: test | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          args: --release --features sqlite | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      - name: "test features: mysql" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        id: test_mysql | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        uses: actions-rs/cargo@844f36862e911db73fe0815f00a4a2602c279505 # v1.0.3 | 
					 | 
					 | 
					        uses: actions-rs/cargo@844f36862e911db73fe0815f00a4a2602c279505 # v1.0.3 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        if: $${{ always() }} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        with: | 
					 | 
					 | 
					        with: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          command: test | 
					 | 
					 | 
					          command: test | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					          args: --release --features ${{ matrix.features[1] }} --target ${{ matrix.target-triple }} | 
					 | 
					 | 
					          args: --release --features mysql | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					        if: ${{ matrix.features[1] != '' }} | 
					 | 
					 | 
					
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					      # 2: postgresql | 
					 | 
					 | 
					      - name: "test features: postgresql" | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					      - name: "`cargo test --release --features ${{ matrix.features[2] }} --target ${{ matrix.target-triple }}`" | 
					 | 
					 | 
					        id: test_postgresql | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        uses: actions-rs/cargo@844f36862e911db73fe0815f00a4a2602c279505 # v1.0.3 | 
					 | 
					 | 
					        uses: actions-rs/cargo@844f36862e911db73fe0815f00a4a2602c279505 # v1.0.3 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        if: $${{ always() }} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        with: | 
					 | 
					 | 
					        with: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          command: test | 
					 | 
					 | 
					          command: test | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					          args: --release --features ${{ matrix.features[2] }} --target ${{ matrix.target-triple }} | 
					 | 
					 | 
					          args: --release --features postgresql | 
				
			
			
				
				
			
		
	
		
		
			
				
					 | 
					 | 
					        if: ${{ matrix.features[2] != '' }} | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					      # End Run cargo tests | 
					 | 
					 | 
					      # End Run cargo tests | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      # Run cargo clippy, and fail on warnings (In release mode to speed up future builds) | 
					 | 
					 | 
					      # Run cargo clippy, and fail on warnings (In release mode to speed up future builds) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					      - name: "`cargo clippy --release --features ${{ join(matrix.features, ',') }} --target ${{ matrix.target-triple }}`" | 
					 | 
					 | 
					      - name: "clippy features: sqlite,mysql,postgresql,enable_mimalloc" | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        id: clippy | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        uses: actions-rs/cargo@844f36862e911db73fe0815f00a4a2602c279505 # v1.0.3 | 
					 | 
					 | 
					        uses: actions-rs/cargo@844f36862e911db73fe0815f00a4a2602c279505 # v1.0.3 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        if: ${{ always() && matrix.channel == 'rust-toolchain' }} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        with: | 
					 | 
					 | 
					        with: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          command: clippy | 
					 | 
					 | 
					          command: clippy | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					          args: --release --features ${{ join(matrix.features, ',') }} --target ${{ matrix.target-triple }} -- -D warnings | 
					 | 
					 | 
					          args: --release --features sqlite,mysql,postgresql,enable_mimalloc -- -D warnings | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					      # End Run cargo clippy | 
					 | 
					 | 
					      # End Run cargo clippy | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					      # Run cargo fmt | 
					 | 
					 | 
					      # Run cargo fmt (Only run on rust-toolchain defined version) | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					      - name: '`cargo fmt`' | 
					 | 
					 | 
					      - name: "check formatting" | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        id: formatting | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        uses: actions-rs/cargo@844f36862e911db73fe0815f00a4a2602c279505 # v1.0.3 | 
					 | 
					 | 
					        uses: actions-rs/cargo@844f36862e911db73fe0815f00a4a2602c279505 # v1.0.3 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        if: ${{ always() && matrix.channel == 'rust-toolchain' }} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        with: | 
					 | 
					 | 
					        with: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          command: fmt | 
					 | 
					 | 
					          command: fmt | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          args: --all -- --check | 
					 | 
					 | 
					          args: --all -- --check | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      # End Run cargo fmt | 
					 | 
					 | 
					      # End Run cargo fmt | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					      # Build the binary | 
					 | 
					 | 
					      # Check for any previous failures, if there are stop, else continue. | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					      - name: "`cargo build --release --features ${{ join(matrix.features, ',') }} --target ${{ matrix.target-triple }}`" | 
					 | 
					 | 
					      # This is useful so all test/clippy/fmt actions are done, and they can all be addressed | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      - name: "Some checks failed" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        if: ${{ failure() }} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        run: | | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          echo "### :x: Checks Failed!" >> $GITHUB_STEP_SUMMARY | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          echo "" >> $GITHUB_STEP_SUMMARY | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          echo "|Job|Status|" >> $GITHUB_STEP_SUMMARY | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          echo "|---|------|" >> $GITHUB_STEP_SUMMARY | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          echo "|test (sqlite,mysql,postgresql,enable_mimalloc)|${{ steps.test_sqlite_mysql_postgresql_mimalloc.outcome }}|" >> $GITHUB_STEP_SUMMARY | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          echo "|test (sqlite,mysql,postgresql)|${{ steps.test_sqlite_mysql_postgresql.outcome }}|" >> $GITHUB_STEP_SUMMARY | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          echo "|test (sqlite)|${{ steps.test_sqlite.outcome }}|" >> $GITHUB_STEP_SUMMARY | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          echo "|test (mysql)|${{ steps.test_mysql.outcome }}|" >> $GITHUB_STEP_SUMMARY | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          echo "|test (postgresql)|${{ steps.test_postgresql.outcome }}|" >> $GITHUB_STEP_SUMMARY | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          echo "|clippy (sqlite,mysql,postgresql,enable_mimalloc)|${{ steps.clippy.outcome }}|" >> $GITHUB_STEP_SUMMARY | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          echo "|fmt|${{ steps.formatting.outcome }}|" >> $GITHUB_STEP_SUMMARY | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          echo "" >> $GITHUB_STEP_SUMMARY | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          echo "Please check the failed jobs and fix where needed." >> $GITHUB_STEP_SUMMARY | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          echo "" >> $GITHUB_STEP_SUMMARY | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          exit 1 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      # Check for any previous failures, if there are stop, else continue. | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      # This is useful so all test/clippy/fmt actions are done, and they can all be addressed | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      - name: "All checks passed" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        if: ${{ success() }} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        run: | | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          echo "### :tada: Checks Passed!" >> $GITHUB_STEP_SUMMARY | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          echo "" >> $GITHUB_STEP_SUMMARY | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      # Build the binary to upload to the artifacts | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      - name: "build features: sqlite,mysql,postgresql" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        uses: actions-rs/cargo@844f36862e911db73fe0815f00a4a2602c279505 # v1.0.3 | 
					 | 
					 | 
					        uses: actions-rs/cargo@844f36862e911db73fe0815f00a4a2602c279505 # v1.0.3 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        if: ${{ matrix.channel == 'rust-toolchain' }} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        with: | 
					 | 
					 | 
					        with: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          command: build | 
					 | 
					 | 
					          command: build | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					          args: --release --features ${{ join(matrix.features, ',') }} --target ${{ matrix.target-triple }} | 
					 | 
					 | 
					          args: --release --features sqlite,mysql,postgresql | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					      # End Build the binary | 
					 | 
					 | 
					      # End Build the binary | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      # Upload artifact to Github Actions | 
					 | 
					 | 
					      # Upload artifact to Github Actions | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					      - name: Upload artifact | 
					 | 
					 | 
					      - name: "Upload artifact" | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 | 
					 | 
					 | 
					        uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        if: ${{ matrix.channel == 'rust-toolchain' }} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        with: | 
					 | 
					 | 
					        with: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					          name: vaultwarden-${{ matrix.target-triple }}${{ matrix.ext }} | 
					 | 
					 | 
					          name: vaultwarden | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					          path: target/${{ matrix.target-triple }}/release/vaultwarden${{ matrix.ext }} | 
					 | 
					 | 
					          path: target/${{ matrix.target-triple }}/release/vaultwarden | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					      # End Upload artifact to Github Actions | 
					 | 
					 | 
					      # End Upload artifact to Github Actions | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
					 | 
					
  |