Skip to content

minor refactoring and fixes: dev module (#373) #184

minor refactoring and fixes: dev module (#373)

minor refactoring and fixes: dev module (#373) #184

name: CLI Continuous Integration (Compilation tests for variations of Actix + Sqlite)
on:
workflow_dispatch:
push:
branches:
- "main"
paths:
- "**.rs"
- "Cargo.lock"
- "Cargo.toml"
pull_request:
paths:
- "**.rs"
- "Cargo.lock"
- "Cargo.toml"
env:
CARGO_TERM_COLOR: always
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse
concurrency:
group: CI-AS-${{ github.ref }}
cancel-in-progress: true
jobs:
# naming convention is: [backend]-[database]-[plugins]
Actix-Sqlite-None:
name: Actix w/ Sqlite and no plugins
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.4
- uses: rui314/setup-mold@v1
- run: rustup install stable
- run: rustup update
- uses: actions/cache@v4.0.2
with:
path: |
.cargo/.build
key: ${{ runner.os }}-cargo-cli-AS-${{ hashFiles('**/Cargo.lock') }}
- run: git config --global user.name test
- run: git config --global user.email example@email.com
- run: cargo run --bin create-rust-app -- create -c -d sqlite -b actix-web test-project
- name: test test-project
working-directory: ./test-project
run: |
printf "// @generated automatically by Diesel CLI.\ndiesel::table! {\n todos (id) {\n id -> Int4,\n text -> Text,\n created_at -> Timestamp,\n updated_at -> Timestamp,\n }\n}" >> ./backend/schema.rs
sed -i 's/create-rust-app = {/create-rust-app = { path = "..\/create-rust-app", /' ./Cargo.toml
cargo dsync
cargo check
Actix-Sqlite-All:
# needs: [Actix-Sqlite-None]
name: Actix w/ Sqlite and all valid plugins
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.4
- uses: rui314/setup-mold@v1
- run: rustup install stable
- run: rustup update
- uses: actions/cache@v4.0.2
with:
path: |
.cargo/.build
key: ${{ runner.os }}-cargo-cli-AS-all-${{ hashFiles('**/Cargo.lock') }}
- run: git config --global user.name test
- run: git config --global user.email example@email.com
- run: cargo run --bin create-rust-app -- create -c -d sqlite -b actix-web --plugins=auth,container,graphql,storage,utoipa test-project
- name: test test-project
working-directory: ./test-project
run: |
printf "// @generated automatically by Diesel CLI.\ndiesel::table! {\n todos (id) {\n id -> Int4,\n text -> Text,\n created_at -> Timestamp,\n updated_at -> Timestamp,\n }\n}" >> ./backend/schema.rs
sed -i 's/create-rust-app]/create-rust-app]\npath = "..\/create-rust-app"/' Cargo.toml
cargo dsync
cargo check
# Actix-Sqlite-Container:
# needs: [Actix-Sqlite-None]
# name: Actix w/ Sqlite and the container plugin
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4.1.4
# - uses: rui314/setup-mold@v1
# - run: rustup install stable
# - run: rustup update
# - uses: actions/cache@v4.0.2
# with:
# path: |
# **/.cargo/.build
# **/target
# key: ${{ runner.os }}-cargo-cli-AS-${{ hashFiles('**/Cargo.lock') }}
# - run: git config --global user.name test
# - run: git config --global user.email example@email.com
# - uses: actions-rs/cargo@v1.0.3
# with:
# command: run
# args: --bin create-rust-app -- create -c -d sqlite -b actix-web --plugins=container test-project
# - run: cd test-project && printf "// @generated automatically by Diesel CLI.\ndiesel::table! {\n todos (id) {\n id -> Int4,\n text -> Text,\n created_at -> Timestamptz,\n updated_at -> Timestamptz,\n }\n}" >> ./backend/schema.rs && cargo dsync && cargo check
#
# Actix-Sqlite-Auth:
# needs: [Actix-Sqlite-None]
# name: Actix w/ Sqlite and the auth plugin
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4.1.4
# - uses: rui314/setup-mold@v1
# - run: rustup install stable
# - run: rustup update
# - uses: actions/cache@v4.0.2
# with:
# path: |
# **/.cargo/.build
# **/target
# key: ${{ runner.os }}-cargo-cli-AS-${{ hashFiles('**/Cargo.lock') }}
# - run: git config --global user.name test
# - run: git config --global user.email example@email.com
# - uses: actions-rs/cargo@v1.0.3
# with:
# command: run
# args: --bin create-rust-app -- create -c -d sqlite -b actix-web --plugins=auth test-project
# - run: cd test-project && printf "// @generated automatically by Diesel CLI.\ndiesel::table! {\n todos (id) {\n id -> Int4,\n text -> Text,\n created_at -> Timestamptz,\n updated_at -> Timestamptz,\n }\n}" >> ./backend/schema.rs && cargo dsync && cargo check
#
# Actix-Sqlite-Storage:
# needs: [Actix-Sqlite-None]
# name: Actix w/ Sqlite and the storage plugin
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4.1.4
# - uses: rui314/setup-mold@v1
# - run: rustup install stable
# - run: rustup update
# - uses: actions/cache@v4.0.2
# with:
# path: |
# **/.cargo/.build
# **/target
# key: ${{ runner.os }}-cargo-cli-AS-${{ hashFiles('**/Cargo.lock') }}
# - run: git config --global user.name test
# - run: git config --global user.email example@email.com
# - uses: actions-rs/cargo@v1.0.3
# with:
# command: run
# args: --bin create-rust-app -- create -c -d sqlite -b actix-web --plugins=storage test-project
# - run: cd test-project && printf "// @generated automatically by Diesel CLI.\ndiesel::table! {\n todos (id) {\n id -> Int4,\n text -> Text,\n created_at -> Timestamptz,\n updated_at -> Timestamptz,\n }\n}" >> ./backend/schema.rs && cargo dsync && cargo check
#
# Actix-Sqlite-GraphQL:
# needs: [Actix-Sqlite-None]
# name: Actix w/ Sqlite and the graphql plugin
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4.1.4
# - uses: rui314/setup-mold@v1
# - run: rustup install stable
# - run: rustup update
# - uses: actions/cache@v4.0.2
# with:
# path: |
# **/.cargo/.build
# **/target
# key: ${{ runner.os }}-cargo-cli-AS-${{ hashFiles('**/Cargo.lock') }}
# - run: git config --global user.name test
# - run: git config --global user.email example@email.com
# - uses: actions-rs/cargo@v1.0.3
# with:
# command: run
# args: --bin create-rust-app -- create -c -d sqlite -b actix-web --plugins=graphql,auth test-project
# - run: cd test-project && printf "// @generated automatically by Diesel CLI.\ndiesel::table! {\n todos (id) {\n id -> Int4,\n text -> Text,\n created_at -> Timestamptz,\n updated_at -> Timestamptz,\n }\n}" >> ./backend/schema.rs && cargo dsync && cargo check
#
# Actix-Sqlite-Utoipa:
# needs: [Actix-Sqlite-None]
# name: Actix w/ Sqlite and the utoipa plugin
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4.1.4
# - uses: rui314/setup-mold@v1
# - run: rustup install stable
# - run: rustup update
# - uses: actions/cache@v4.0.2
# with:
# path: |
# **/.cargo/.build
# **/target
# key: ${{ runner.os }}-cargo-cli-AS-${{ hashFiles('**/Cargo.lock') }}
# - run: git config --global user.name test
# - run: git config --global user.email example@email.com
# - uses: actions-rs/cargo@v1.0.3
# with:
# command: run
# args: --bin create-rust-app -- create -c -d sqlite -b actix-web --plugins=auth,utoipa test-project
# - run: cd test-project && printf "// @generated automatically by Diesel CLI.\ndiesel::table! {\n todos (id) {\n id -> Int4,\n text -> Text,\n created_at -> Timestamptz,\n updated_at -> Timestamptz,\n }\n}" >> ./backend/schema.rs
# - run: cd test-project && cargo dsync
# - uses: actions-rs/cargo@v1.0.3
# with:
# command: build