chore: comment postgre docker initialization. #71
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# The name of your workflow. GitHub displays the names of your workflows on your repository's "Actions" tab | |
name: Rust | |
on: [push, pull_request] | |
env: | |
CARGO_TERM_COLOR: always | |
SQLX_VERSION: 0.6.2 | |
SQLX_FEATURES: "rustls,postgres" | |
# A workflow run is made up of one or more jobs, which run in parallel by default | |
# Each job runs in a runner environment specified by runs-on | |
jobs: | |
# Unique identifier of our job (`job_id`) | |
test: | |
# Sets the name `Test` for the job, which is displayed in the GitHub UI | |
name: Test | |
# Containers must run in Linux based operating systems | |
runs-on: ubuntu-latest | |
# Service containers to run with the `test` container job | |
services: | |
# Label used to access the service container | |
postgres: | |
# Docker Hub image | |
image: postgres:13.1 | |
# Set environment variables for the service container | |
env: | |
POSTGRES_USER: postgres | |
POSTGRES_PASSWORD: password | |
POSTGRES_DB: postgres | |
# Set health checks to wait until the service is ready | |
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 | |
# Map service container ports to the host ports | |
ports: | |
- 5432:5432 | |
redis: | |
image: redis:7 | |
ports: | |
- 6379:6379 | |
steps: | |
# Downloads a copy of the code in your repository before running CI tests | |
- name: Check out repository code | |
# The uses keyword specifies that this step will run v3 of the actions/checkout action. | |
# This is an action that checks out your repository onto the runner, allowing you to run scripts or other actions against your code (such as build and test tools). | |
# You should use the checkout action any time your workflow will run against the repository's code. | |
uses: actions/checkout@v3 | |
# This GitHub Action installs a Rust toolchain using rustup. It is designed for one-line concise usage and good defaults. | |
- name: Install the Rust toolchain | |
uses: dtolnay/rust-toolchain@stable | |
# This GitHub Action caches the Rust toolchain between workflow runs. It is designed for one-line concise usage and good defaults. | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
# An additional cache key that is added alongside the automatic `job`-based cache key and can be used to further differentiate jobs. default: empty | |
key: sqlx-${{ env.SQLX_VERSION }} | |
- name: Install sqlx-cli | |
run: | |
cargo install sqlx-cli | |
--version=${{ env.SQLX_VERSION }} | |
--features ${{ env.SQLX_FEATURES }} | |
--no-default-features | |
--locked | |
# The --locked flag can be used to force Cargo to use the packaged Cargo.lock file if it is available. | |
# This may be useful for ensuring reproducible builds, to use the exact same set of dependencies that were available when the package was published. | |
# It may also be useful if a newer version of a dependency is published that no longer builds on your system, or has other problems | |
- name: Install postgresql-client | |
run: sudo apt-get update && sudo apt-get install postgresql-client -y | |
- name: Migrate database | |
run: SKIP_DOCKER=true ./scripts/init_db.sh | |
- name: Check sqlx-data.json is up-to-date | |
run: | | |
cargo sqlx prepare --check -- --bin robust-rust | |
- name: Run tests | |
run: cargo test | |
fmt: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
components: rustfmt | |
- name: Enforce formatting | |
run: cargo fmt --check | |
# `clippy` container job | |
clippy: | |
name: Clippy | |
runs-on: ubuntu-latest | |
services: | |
postgres: | |
image: postgres:14 | |
env: | |
POSTGRES_USER: postgres | |
POSTGRES_PASSWORD: password | |
POSTGRES_DB: postgres | |
ports: | |
- 5432:5432 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
components: clippy | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
key: sqlx-${{ env.SQLX_VERSION }} | |
- name: Install sqlx-cli | |
run: | |
cargo install sqlx-cli | |
--version=${{ env.SQLX_VERSION }} | |
--features ${{ env.SQLX_FEATURES }} | |
--no-default-features | |
--locked | |
- name: Install postgresql-client | |
run: sudo apt-get update && sudo apt-get install postgresql-client -y | |
- name: Migrate database | |
run: SKIP_DOCKER=true ./scripts/init_db.sh | |
- name: Linting | |
run: cargo clippy -- -D warnings | |
# `coverage` container job | |
coverage: | |
name: Code coverage | |
runs-on: ubuntu-latest | |
services: | |
postgres: | |
image: postgres:14 | |
env: | |
POSTGRES_USER: postgres | |
POSTGRES_PASSWORD: password | |
POSTGRES_DB: postgres | |
ports: | |
- 5432:5432 | |
redis: | |
image: redis:7 | |
ports: | |
- 6379:6379 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- uses: dtolnay/rust-toolchain@stable | |
- name: Install postgresql-client | |
run: sudo apt-get update && sudo apt-get install postgresql-client -y | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
key: sqlx-${{ env.SQLX_VERSION }} | |
- name: Install sqlx-cli | |
run: | |
cargo install sqlx-cli | |
--version=${{ env.SQLX_VERSION }} | |
--features ${{ env.SQLX_FEATURES }} | |
--no-default-features | |
--locked | |
- name: Migrate database | |
run: SKIP_DOCKER=true ./scripts/init_db.sh | |
- name: Generate code coverage | |
run: cargo install cargo-tarpaulin && cargo tarpaulin --verbose --workspace |