diff --git a/.github/workflows/general.yml b/.github/workflows/general.yml index 73122d1..ce4a76b 100644 --- a/.github/workflows/general.yml +++ b/.github/workflows/general.yml @@ -28,19 +28,56 @@ jobs: POSTGRES_DB: postgres ports: - 5432:5432 + env: + SQLX_VERSION: 0.5.5 + SQLX_FEATURES: postgres steps: - - uses: actions/checkout@v2 - - uses: actions-rs/toolchain@v1 + - name: Checkout repository + uses: actions/checkout@v2 + - name: Cache dependencies + id: cache-dependencies + uses: actions/cache@v2 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + target + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + - name: Install stable toolchain + uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true + + - name: Cache sqlx-cli + uses: actions/cache@v2 + id: cache-sqlx + with: + path: | + ~/.cargo/bin/sqlx + key: ${{ runner.os }}-sqlx-${{ env.SQLX_VERSION }}-${{ env.SQLX_FEATURES }} + + - name: Install sqlx-cli + uses: actions-rs/cargo@v1 + if: steps.cache-sqlx.outputs.cache-hit == false + with: + command: install + args: > + sqlx-cli + --force + --version=${{ env.SQLX_VERSION }} + --features=${{ env.SQLX_FEATURES }} + --no-default-features + --locked + - name: Migrate database run: | sudo apt-get install libpq-dev -y - cargo install --version=0.5.5 --locked sqlx-cli --no-default-features --features postgres SKIP_DOCKER=true ./scripts/init_db.sh - - uses: actions-rs/cargo@v1 + + - name: Run cargo test + uses: actions-rs/cargo@v1 with: command: test @@ -71,19 +108,48 @@ jobs: POSTGRES_DB: postgres ports: - 5432:5432 + env: + SQLX_VERSION: 0.5.5 + SQLX_FEATURES: postgres steps: - - uses: actions/checkout@v2 - - uses: actions-rs/toolchain@v1 + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Install stable toolchain + uses: actions-rs/toolchain@v1 with: components: clippy toolchain: stable override: true + + - name: Cache sqlx-cli + uses: actions/cache@v2 + id: cache-sqlx + with: + path: | + ~/.cargo/bin/sqlx + key: ${{ runner.os }}-sqlx-${{ env.SQLX_VERSION }}-${{ env.SQLX_FEATURES }} + + - name: Install sqlx-cli + uses: actions-rs/cargo@v1 + if: steps.cache-sqlx.outputs.cache-hit == false + with: + command: install + args: > + sqlx-cli + --force + --version=${{ env.SQLX_VERSION }} + --features=${{ env.SQLX_FEATURES }} + --no-default-features + --locked + - name: Migrate database run: | sudo apt-get install libpq-dev -y - cargo install --version=0.5.5 --locked sqlx-cli --no-default-features --features postgres SKIP_DOCKER=true ./scripts/init_db.sh - - uses: actions-rs/clippy-check@v1 + + - name: Run clippy + uses: actions-rs/clippy-check@v1 with: token: ${{ secrets.GITHUB_TOKEN }} args: -- -D warnings @@ -100,6 +166,9 @@ jobs: POSTGRES_DB: postgres ports: - 5432:5432 + env: + SQLX_VERSION: 0.5.5 + SQLX_FEATURES: postgres steps: - name: Checkout repository uses: actions/checkout@v2 @@ -110,11 +179,32 @@ jobs: toolchain: stable override: true + - name: Cache sqlx-cli + uses: actions/cache@v2 + id: cache-sqlx + with: + path: | + ~/.cargo/bin/sqlx + key: ${{ runner.os }}-sqlx-${{ env.SQLX_VERSION }}-${{ env.SQLX_FEATURES }} + + - name: Install sqlx-cli + uses: actions-rs/cargo@v1 + if: steps.cache-sqlx.outputs.cache-hit == false + with: + command: install + args: > + sqlx-cli + --force + --version=${{ env.SQLX_VERSION }} + --features=${{ env.SQLX_FEATURES }} + --no-default-features + --locked + - name: Migrate database run: | sudo apt-get install libpq-dev -y - cargo install --version=0.5.5 --locked sqlx-cli --no-default-features --features postgres SKIP_DOCKER=true ./scripts/init_db.sh + - name: Run cargo-tarpaulin uses: actions-rs/tarpaulin@v0.1 with: