rewrite use
and address implementation concerns
#6
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
name: Examples | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
- '*-dev' | |
jobs: | |
sqlx-cli: | |
name: Build SQLx CLI | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use latest Rust | |
run: rustup override set stable | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
key: sqlx-cli | |
- run: > | |
cargo build | |
-p sqlx-cli | |
--bin sqlx | |
--release | |
--no-default-features | |
--features mysql,postgres,sqlite | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: sqlx-cli | |
path: target/release/sqlx | |
mysql: | |
name: MySQL Examples | |
runs-on: ubuntu-latest | |
needs: sqlx-cli | |
services: | |
mysql: | |
image: mysql:latest | |
env: | |
MYSQL_ROOT_PASSWORD: password | |
ports: | |
- 3306:3306 | |
steps: | |
- name: Get SQLx-CLI | |
uses: actions/download-artifact@v4 | |
with: | |
name: sqlx-cli | |
# $HOME is interpreted differently by the shell | |
path: /home/runner/.local/bin | |
- run: | | |
ls -R /home/runner/.local/bin | |
chmod +x /home/runner/.local/bin/sqlx | |
echo /home/runner/.local/bin >> $GITHUB_PATH | |
sleep 10 | |
- uses: actions/checkout@v4 | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
key: mysql-examples | |
- name: Todos (Setup) | |
working-directory: examples/mysql/todos | |
env: | |
DATABASE_URL: mysql://root:password@localhost:3306/todos?ssl-mode=disabled | |
run: sqlx db setup | |
- name: Todos (Run) | |
env: | |
DATABASE_URL: mysql://root:password@localhost:3306/todos?ssl-mode=disabled | |
run: cargo run -p sqlx-example-mysql-todos | |
postgres: | |
name: PostgreSQL Examples | |
runs-on: ubuntu-latest | |
needs: sqlx-cli | |
services: | |
postgres: | |
image: postgres:latest | |
env: | |
POSTGRES_PASSWORD: password | |
ports: | |
- 5432:5432 | |
steps: | |
- name: Get SQLx-CLI | |
uses: actions/download-artifact@v4 | |
with: | |
name: sqlx-cli | |
path: /home/runner/.local/bin | |
- run: | | |
ls -R /home/runner/.local/bin | |
chmod +x $HOME/.local/bin/sqlx | |
echo $HOME/.local/bin >> $GITHUB_PATH | |
sleep 10 | |
- uses: actions/checkout@v4 | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
key: pg-examples | |
- name: Axum Social with Tests (Setup) | |
working-directory: examples/postgres/axum-social-with-tests | |
env: | |
DATABASE_URL: postgres://postgres:password@localhost:5432/axum-social | |
run: sqlx db setup | |
- name: Axum Social with Tests (Check) | |
env: | |
DATABASE_URL: postgres://postgres:password@localhost:5432/axum-social | |
run: cargo check -p sqlx-example-postgres-axum-social | |
- name: Axum Social with Tests (Test) | |
env: | |
DATABASE_URL: postgres://postgres:password@localhost:5432/axum-social | |
run: cargo test -p sqlx-example-postgres-axum-social | |
# The Chat example has an interactive TUI which is not trivial to test automatically, | |
# so we only check that it compiles. | |
- name: Chat (Check) | |
run: cargo check -p sqlx-example-postgres-chat | |
- name: Files (Setup) | |
working-directory: examples/postgres/files | |
env: | |
DATABASE_URL: postgres://postgres:password@localhost:5432/files | |
run: sqlx db setup | |
- name: Files (Run) | |
env: | |
DATABASE_URL: postgres://postgres:password@localhost:5432/files | |
run: cargo run -p sqlx-example-postgres-files | |
- name: JSON (Setup) | |
working-directory: examples/postgres/json | |
env: | |
DATABASE_URL: postgres://postgres:password@localhost:5432/json | |
run: sqlx db setup | |
- name: JSON (Run) | |
env: | |
DATABASE_URL: postgres://postgres:password@localhost:5432/json | |
run: cargo run -p sqlx-example-postgres-json | |
- name: Listen (Setup) | |
working-directory: examples/postgres/listen | |
env: | |
DATABASE_URL: postgres://postgres:password@localhost:5432/listen | |
run: sqlx db create | |
- name: Listen (Run) | |
env: | |
DATABASE_URL: postgres://postgres:password@localhost:5432/listen | |
run: cargo run -p sqlx-example-postgres-listen | |
- name: Mockable TODOs (Setup) | |
working-directory: examples/postgres/mockable-todos | |
env: | |
DATABASE_URL: postgres://postgres:password@localhost:5432/mockable-todos | |
run: sqlx db setup | |
- name: Mockable TODOs (Run) | |
env: | |
DATABASE_URL: postgres://postgres:password@localhost:5432/mockable-todos | |
run: cargo run -p sqlx-example-postgres-mockable-todos | |
- name: TODOs (Setup) | |
working-directory: examples/postgres/todos | |
env: | |
DATABASE_URL: postgres://postgres:password@localhost:5432/todos | |
run: sqlx db setup | |
- name: TODOs (Run) | |
env: | |
DATABASE_URL: postgres://postgres:password@localhost:5432/todos | |
# TODO: test full CLI | |
run: cargo run -p sqlx-example-postgres-todos | |
- name: Transaction (Setup) | |
working-directory: examples/postgres/transaction | |
env: | |
DATABASE_URL: postgres://postgres:password@localhost:5432/txn | |
run: sqlx db setup | |
- name: Transaction (Run) | |
env: | |
DATABASE_URL: postgres://postgres:password@localhost:5432/txn | |
run: cargo run -p sqlx-example-postgres-transaction | |
sqlite: | |
name: SQLite Examples | |
runs-on: ubuntu-latest | |
needs: sqlx-cli | |
steps: | |
- name: Get SQLx-CLI | |
uses: actions/download-artifact@v4 | |
with: | |
name: sqlx-cli | |
path: /home/runner/.local/bin | |
- run: | | |
ls -R /home/runner/.local/bin | |
chmod +x /home/runner/.local/bin/sqlx | |
echo /home/runner/.local/bin >> $GITHUB_PATH | |
- uses: actions/checkout@v4 | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
key: sqlite-examples | |
- name: TODOs (Setup) | |
env: | |
DATABASE_URL: sqlite://todos.sqlite | |
run: sqlx db setup --source=examples/sqlite/todos/migrations | |
- name: TODOs (Run) | |
env: | |
DATABASE_URL: sqlite://todos.sqlite | |
run: cargo run -p sqlx-example-sqlite-todos |