mirror of https://github.com/rwf2/Rocket.git
Move examples to their own workspace.
This allows us to test all of the "core" crates (and the guide) by testing the root workspace, and all of the examples by testing in the examples workspace.
This commit is contained in:
parent
4e06ee64aa
commit
17dd8dafd0
|
@ -19,6 +19,7 @@ jobs:
|
|||
test:
|
||||
- { name: Debug, flag: }
|
||||
- { name: Contrib, flag: "--contrib" }
|
||||
- { name: Examples, flag: "--examples" }
|
||||
toolchain: [stable]
|
||||
allow-failures: [false]
|
||||
include:
|
||||
|
@ -32,11 +33,7 @@ jobs:
|
|||
allow-failures: false
|
||||
- toolchain: nightly
|
||||
os: { name: Linux, distro: ubuntu-latest }
|
||||
test: { name: Debug, flag: }
|
||||
allow-failures: true
|
||||
- toolchain: nightly
|
||||
os: { name: Linux, distro: ubuntu-latest }
|
||||
test: { name: Contrib, flag: "--contrib" }
|
||||
test: { name: Debug, flag: "--all" }
|
||||
allow-failures: true
|
||||
|
||||
continue-on-error: ${{ matrix.allow-failures }}
|
||||
|
|
32
Cargo.toml
32
Cargo.toml
|
@ -6,36 +6,4 @@ members = [
|
|||
"contrib/lib",
|
||||
"contrib/codegen",
|
||||
"site/tests",
|
||||
"examples/cookies",
|
||||
"examples/errors",
|
||||
"examples/forms",
|
||||
"examples/hello_person",
|
||||
"examples/query_params",
|
||||
"examples/hello_world",
|
||||
"examples/manual_routes",
|
||||
"examples/optional_redirect",
|
||||
"examples/redirect",
|
||||
"examples/static_files",
|
||||
"examples/todo",
|
||||
"examples/content_types",
|
||||
"examples/ranking",
|
||||
"examples/testing",
|
||||
"examples/request_local_state",
|
||||
"examples/request_guard",
|
||||
"examples/stream",
|
||||
"examples/json",
|
||||
"examples/msgpack",
|
||||
"examples/handlebars_templates",
|
||||
"examples/tera_templates",
|
||||
"examples/config",
|
||||
"examples/raw_upload",
|
||||
"examples/pastebin",
|
||||
"examples/state",
|
||||
"examples/managed_queue",
|
||||
"examples/uuid",
|
||||
"examples/session",
|
||||
"examples/raw_sqlite",
|
||||
"examples/tls",
|
||||
"examples/fairings",
|
||||
"examples/hello_2018",
|
||||
]
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
[workspace]
|
||||
members = [
|
||||
"cookies",
|
||||
"errors",
|
||||
"forms",
|
||||
"hello_person",
|
||||
"query_params",
|
||||
"hello_world",
|
||||
"manual_routes",
|
||||
"optional_redirect",
|
||||
"redirect",
|
||||
"static_files",
|
||||
"todo",
|
||||
"content_types",
|
||||
"ranking",
|
||||
"testing",
|
||||
"request_local_state",
|
||||
"request_guard",
|
||||
"stream",
|
||||
"json",
|
||||
"msgpack",
|
||||
"handlebars_templates",
|
||||
"tera_templates",
|
||||
"config",
|
||||
"raw_upload",
|
||||
"pastebin",
|
||||
"state",
|
||||
"managed_queue",
|
||||
"uuid",
|
||||
"session",
|
||||
"raw_sqlite",
|
||||
"tls",
|
||||
"fairings",
|
||||
"hello_2018",
|
||||
]
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "config"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "content_types"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "cookies"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "errors"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "fairings"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "forms"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "handlebars_templates"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "hello_2018"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "hello_person"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "hello_world"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "json"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "managed_queue"
|
||||
version = "0.0.0"
|
||||
workspace = "../.."
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "manual_routes"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "msgpack"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "optional_redirect"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "pastebin"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "query_params"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "ranking"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "raw_sqlite"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "raw_upload"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "redirect"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "request_guard"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "request_local_state"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "session"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "state"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "static_files"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "stream"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "tera_templates"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "testing"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "tls"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "todo"
|
||||
version = "0.0.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "uuid"
|
||||
version = "0.1.0"
|
||||
workspace = "../../"
|
||||
workspace = "../"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
|
|
|
@ -73,14 +73,12 @@ function test_contrib() {
|
|||
echo ":: Building and testing contrib [default]..."
|
||||
|
||||
pushd "${CONTRIB_LIB_ROOT}" > /dev/null 2>&1
|
||||
|
||||
$CARGO test $@
|
||||
|
||||
for feature in "${FEATURES[@]}"; do
|
||||
echo ":: Building and testing contrib [${feature}]..."
|
||||
$CARGO test --no-default-features --features "${feature}" $@
|
||||
done
|
||||
|
||||
popd > /dev/null 2>&1
|
||||
}
|
||||
|
||||
|
@ -91,7 +89,6 @@ function test_core() {
|
|||
)
|
||||
|
||||
pushd "${CORE_LIB_ROOT}" > /dev/null 2>&1
|
||||
|
||||
echo ":: Building and testing core [no features]..."
|
||||
$CARGO test --no-default-features $@
|
||||
|
||||
|
@ -99,36 +96,27 @@ function test_core() {
|
|||
echo ":: Building and testing core [${feature}]..."
|
||||
$CARGO test --no-default-features --features "${feature}" $@
|
||||
done
|
||||
|
||||
popd > /dev/null 2>&1
|
||||
}
|
||||
|
||||
function test_examples() {
|
||||
for dir in $(find "${EXAMPLES_DIR}" -maxdepth 1 -mindepth 1 -type d); do
|
||||
echo ":: Building and testing example [${dir#"${EXAMPLES_DIR}/"}]..."
|
||||
echo ":: Building and testing examples..."
|
||||
|
||||
pushd "${dir}" > /dev/null 2>&1
|
||||
$CARGO test $@
|
||||
popd > /dev/null 2>&1
|
||||
done
|
||||
}
|
||||
|
||||
function test_guide() {
|
||||
echo ":: Building and testing guide..."
|
||||
|
||||
pushd "${GUIDE_TESTS_ROOT}" > /dev/null 2>&1
|
||||
$CARGO test $@
|
||||
pushd "${EXAMPLES_DIR}" > /dev/null 2>&1
|
||||
# Rust compiles Rocket once with the `secrets` feature enabled, so when run
|
||||
# in production, we need a secret key or tests will fail needlessly. We
|
||||
# ensure in core that secret key failing/not failing works as expected.
|
||||
ROCKET_SECRET_KEY="itlYmFR2vYKrOmFhupMIn/hyB6lYCCTXz4yaQX89XVg=" \
|
||||
$CARGO test --all $@
|
||||
popd > /dev/null 2>&1
|
||||
}
|
||||
|
||||
function test_default() {
|
||||
for project in "${ALL_PROJECT_DIRS[@]}"; do
|
||||
echo ":: Building and testing ${project#"${PROJECT_ROOT}/"}..."
|
||||
echo ":: Building and testing core libraries..."
|
||||
|
||||
pushd "${project}" > /dev/null 2>&1
|
||||
$CARGO test --all-features $@
|
||||
pushd "${PROJET_ROOT}" > /dev/null 2>&1
|
||||
$CARGO test --all --all-features $@
|
||||
popd > /dev/null 2>&1
|
||||
done
|
||||
}
|
||||
|
||||
if [[ $1 == +* ]]; then
|
||||
|
@ -138,7 +126,7 @@ fi
|
|||
|
||||
# The kind of test we'll be running.
|
||||
TEST_KIND="default"
|
||||
KINDS=("contrib" "core" "examples" "guide" "all")
|
||||
KINDS=("contrib" "core" "examples" "default" "all")
|
||||
|
||||
if [[ " ${KINDS[@]} " =~ " ${1#"--"} " ]]; then
|
||||
TEST_KIND=${1#"--"}
|
||||
|
@ -165,24 +153,16 @@ if ! $CARGO update ; then
|
|||
fi
|
||||
|
||||
case $TEST_KIND in
|
||||
contrib) test_contrib $@ ;;
|
||||
core) test_core $@ ;;
|
||||
contrib) test_contrib $@ ;;
|
||||
examples) test_examples $@ ;;
|
||||
guide) test_guide $@ ;;
|
||||
default)
|
||||
test_examples $@ & examples=$!
|
||||
test_default $@ & default=$!
|
||||
test_guide $@ & guide=$!
|
||||
|
||||
wait $examples && wait $default && wait $guide
|
||||
;;
|
||||
default) test_default $@ ;;
|
||||
all)
|
||||
test_core $@ & core=$!
|
||||
test_contrib $@ & contrib=$!
|
||||
test_examples $@ & examples=$!
|
||||
test_default $@ & default=$!
|
||||
test_guide $@ & guide=$!
|
||||
|
||||
wait $core && wait $contrib && wait $examples && wait $default && wait $guide
|
||||
wait $core && wait $contrib && wait $examples && wait $default
|
||||
;;
|
||||
esac
|
||||
|
|
Loading…
Reference in New Issue