diff --git a/.github/workflows/general.yml b/.github/workflows/general.yml index 12db195..4827afa 100644 --- a/.github/workflows/general.yml +++ b/.github/workflows/general.yml @@ -28,8 +28,13 @@ jobs: POSTGRES_DB: postgres ports: - 5432:5432 + env: + SQLX_VERSION: 0.5.5 + SQLX_FEATURES: postgres steps: - - uses: actions/checkout@v2 + - name: Checkout repository + uses: actions/checkout@v2 + - name: Cache dependencies id: cache-dependencies uses: actions/cache@v2 @@ -39,17 +44,42 @@ jobs: ~/.cargo/git target key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - uses: actions-rs/toolchain@v1 + + - 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 @@ -80,19 +110,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: toolchain: stable components: clippy 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 @@ -109,6 +168,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 @@ -119,11 +181,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: