Clarify where optional features should be enabled (#2706) #210
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@v2 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- uses: Swatinem/rust-cache@v1 | |
with: | |
key: sqlx-cli | |
- uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: > | |
-p sqlx-cli | |
--bin sqlx | |
--release | |
--no-default-features | |
--features mysql,postgres,sqlite | |
env: | |
RUSTFLAGS: -D warnings | |
- uses: actions/upload-artifact@v3 | |
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@v3 | |
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@v2 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- uses: Swatinem/rust-cache@v1 | |
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) | |
uses: actions-rs/cargo@v1 | |
env: | |
DATABASE_URL: mysql://root:password@localhost:3306/todos?ssl-mode=disabled | |
with: | |
# TODO: test full CLI | |
command: run | |
args: -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@v3 | |
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@v2 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- uses: Swatinem/rust-cache@v1 | |
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) | |
uses: actions-rs/cargo@v1 | |
env: | |
DATABASE_URL: postgres://postgres:password@localhost:5432/axum-social | |
with: | |
command: check | |
args: -p sqlx-example-postgres-axum-social | |
- name: Axum Social with Tests (Test) | |
uses: actions-rs/cargo@v1 | |
env: | |
DATABASE_URL: postgres://postgres:password@localhost:5432/axum-social | |
with: | |
command: test | |
args: -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) | |
uses: actions-rs/cargo@v1 | |
with: | |
command: check | |
args: -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) | |
uses: actions-rs/cargo@v1 | |
env: | |
DATABASE_URL: postgres://postgres:password@localhost:5432/files | |
with: | |
command: run | |
args: -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) | |
uses: actions-rs/cargo@v1 | |
env: | |
DATABASE_URL: postgres://postgres:password@localhost:5432/json | |
with: | |
command: run | |
args: -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) | |
uses: actions-rs/cargo@v1 | |
env: | |
DATABASE_URL: postgres://postgres:password@localhost:5432/listen | |
with: | |
command: run | |
args: -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) | |
uses: actions-rs/cargo@v1 | |
env: | |
DATABASE_URL: postgres://postgres:password@localhost:5432/mockable-todos | |
with: | |
# TODO: test full CLI | |
command: run | |
args: -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) | |
uses: actions-rs/cargo@v1 | |
env: | |
DATABASE_URL: postgres://postgres:password@localhost:5432/todos | |
with: | |
# TODO: test full CLI | |
command: run | |
args: -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) | |
uses: actions-rs/cargo@v1 | |
env: | |
DATABASE_URL: postgres://postgres:password@localhost:5432/txn | |
with: | |
command: run | |
args: -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@v3 | |
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@v2 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- uses: Swatinem/rust-cache@v1 | |
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) | |
uses: actions-rs/cargo@v1 | |
env: | |
DATABASE_URL: sqlite://todos.sqlite | |
with: | |
command: run | |
args: -p sqlx-example-sqlite-todos |