diff --git a/.github/workflows/ci-nightly.yml b/.github/workflows/ci-nightly.yml new file mode 100644 index 00000000..d882a43d --- /dev/null +++ b/.github/workflows/ci-nightly.yml @@ -0,0 +1,67 @@ +name: CI (nightly) + +on: + schedule: [cron: "40 1 * * *"] + +jobs: + build_and_test: + strategy: + fail-fast: false + matrix: + version: [nightly] + + name: ${{ matrix.version }} + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Install Rust (${{ matrix.version }}) + uses: actions-rust-lang/setup-rust-toolchain@v1.6.0 + with: + toolchain: ${{ matrix.version }} + + - name: Install DB CLI tools + run: | + cargo install sqlx-cli --no-default-features --features=rustls,sqlite + cargo install diesel_cli --no-default-features --features sqlite + + - name: Create Test DBs + env: + DATABASE_URL: sqlite://./todo.db + run: | + sudo apt-get update && sudo apt-get install sqlite3 + sqlx database create + chmod a+rwx ./todo.db + sqlx migrate run --source=./basics/todo/migrations + + - name: cargo check + run: cargo check --workspace --bins --examples --tests + timeout-minutes: 30 + + - name: Start Redis + uses: supercharge/redis-github-action@1.8.0 + with: + redis-version: 6 + + - name: cargo test + run: cargo test --workspace --all-features --no-fail-fast --exclude=diesel-example -- --nocapture + timeout-minutes: 30 + + - name: cargo test (diesel) + env: + DATABASE_URL: test.db + run: | + cd databases/diesel + diesel migration run + chmod a+rwx test.db + cargo test -p=diesel-example --no-fail-fast -- --nocapture + timeout-minutes: 10 + + - name: Install cargo-ci-cache-clean + uses: taiki-e/install-action@v2.23.2 + with: + tool: cargo-ci-cache-clean + + - name: CI cache clean + run: cargo-ci-cache-clean diff --git a/.github/workflows/linux.yml b/.github/workflows/ci.yml similarity index 82% rename from .github/workflows/linux.yml rename to .github/workflows/ci.yml index b3b1044c..0a694164 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/ci.yml @@ -1,8 +1,10 @@ -name: CI (Linux) +name: CI on: pull_request: types: [opened, synchronize, reopened] + merge_group: + types: [checks_requested] push: branches: [master] @@ -11,7 +13,7 @@ jobs: strategy: fail-fast: false matrix: - version: [stable, nightly] + version: [stable] name: ${{ matrix.version }} runs-on: ubuntu-latest @@ -43,7 +45,7 @@ jobs: timeout-minutes: 30 - name: Start Redis - uses: supercharge/redis-github-action@1.7.0 + uses: supercharge/redis-github-action@1.8.0 with: redis-version: 6 @@ -61,5 +63,10 @@ jobs: cargo test -p=diesel-example --no-fail-fast -- --nocapture timeout-minutes: 10 - - name: Clear the cargo caches - run: cargo install cargo-cache --version=0.8.3 --no-default-features --features=ci-autoclean && cargo-cache + - name: Install cargo-ci-cache-clean + uses: taiki-e/install-action@v2.23.2 + with: + tool: cargo-ci-cache-clean + + - name: CI cache clean + run: cargo-ci-cache-clean diff --git a/Cargo.lock b/Cargo.lock index 99b9148b..6cfa7aff 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -153,9 +153,9 @@ dependencies = [ [[package]] name = "actix-http" -version = "3.4.0" +version = "3.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92ef85799cba03f76e4f7c10f533e66d87c9a7e7055f3391f09000ad8351bc9" +checksum = "129d4c88e98860e1758c5de288d1632b07970a16d59bdf7b8d66053d582bb71f" dependencies = [ "actix-codec", "actix-rt", @@ -1190,9 +1190,9 @@ dependencies = [ [[package]] name = "aws-config" -version = "1.0.3" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "004dc45f6b869e6a70725df448004a720b7f52f6607d55d8815cbd5448f86def" +checksum = "11382bd8ac4c6c182a9775990935f96c916a865f1414486595f18eb8cfa9d90b" dependencies = [ "aws-credential-types", "aws-http", @@ -1201,7 +1201,7 @@ dependencies = [ "aws-sdk-ssooidc", "aws-sdk-sts", "aws-smithy-async", - "aws-smithy-http 0.60.0", + "aws-smithy-http", "aws-smithy-json", "aws-smithy-runtime", "aws-smithy-runtime-api", @@ -1221,9 +1221,9 @@ dependencies = [ [[package]] name = "aws-credential-types" -version = "1.0.3" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfa51c87f10211f37cd78e6d01d6f18b3f96a086906ed361d11e04ac53e29508" +checksum = "70a1629320d319dc715c6189b172349186557e209d2a7b893ff3d14efd33a47c" dependencies = [ "aws-smithy-async", "aws-smithy-runtime-api", @@ -1233,9 +1233,9 @@ dependencies = [ [[package]] name = "aws-http" -version = "0.60.0" +version = "0.60.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "361c4310fdce94328cc2d1ca0c8a48c13f43009c61d3367585685a50ca8c66b6" +checksum = "30e4199d5d62ab09be6a64650c06cc5c4aa45806fed4c74bc4a5c8eaf039a6fa" dependencies = [ "aws-smithy-runtime-api", "aws-smithy-types", @@ -1249,16 +1249,16 @@ dependencies = [ [[package]] name = "aws-runtime" -version = "1.0.3" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce0953f7fc1c4428511345e28ea3e98c8b59c9e91eafae30bf76d71d70642693" +checksum = "87116d357c905b53f1828d15366363fd27b330a0393cbef349e653f686d36bad" dependencies = [ "aws-credential-types", "aws-http", "aws-sigv4", "aws-smithy-async", "aws-smithy-eventstream", - "aws-smithy-http 0.60.0", + "aws-smithy-http", "aws-smithy-runtime-api", "aws-smithy-types", "aws-types", @@ -1271,9 +1271,9 @@ dependencies = [ [[package]] name = "aws-sdk-s3" -version = "1.5.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "959a7325827d882819a2ac77e27e26626b9713b9cfec44686785e0db6e73388f" +checksum = "56e78d98df174c479a7bb6a065a3314ccefe029c0c4a1cc49c0c012eea144264" dependencies = [ "aws-credential-types", "aws-http", @@ -1282,7 +1282,7 @@ dependencies = [ "aws-smithy-async", "aws-smithy-checksums", "aws-smithy-eventstream", - "aws-smithy-http 0.60.0", + "aws-smithy-http", "aws-smithy-json", "aws-smithy-runtime", "aws-smithy-runtime-api", @@ -1294,22 +1294,22 @@ dependencies = [ "http-body 0.4.5", "once_cell", "percent-encoding", - "regex", + "regex-lite", "tracing", "url", ] [[package]] name = "aws-sdk-sso" -version = "1.4.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e0b81eaef9eb951061b5a58f660815430e3f04eacaa4b2318e7474b0b7cbf17" +checksum = "86b1779a72c60d45e5699512310d7f6fb965fecc8f7419ce1b993b716f0026fd" dependencies = [ "aws-credential-types", "aws-http", "aws-runtime", "aws-smithy-async", - "aws-smithy-http 0.60.0", + "aws-smithy-http", "aws-smithy-json", "aws-smithy-runtime", "aws-smithy-runtime-api", @@ -1317,21 +1317,22 @@ dependencies = [ "aws-types", "bytes 1.5.0", "http 0.2.9", - "regex", + "once_cell", + "regex-lite", "tracing", ] [[package]] name = "aws-sdk-ssooidc" -version = "1.4.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e322a916694038a7972a3bb12181151c1645914443a2c3be6379b27533bbb99" +checksum = "90fb130cc2a21a2a6ef2b7730565cffb447aebb18c9a468e56ffb5cc97bfc077" dependencies = [ "aws-credential-types", "aws-http", "aws-runtime", "aws-smithy-async", - "aws-smithy-http 0.60.0", + "aws-smithy-http", "aws-smithy-json", "aws-smithy-runtime", "aws-smithy-runtime-api", @@ -1339,21 +1340,22 @@ dependencies = [ "aws-types", "bytes 1.5.0", "http 0.2.9", - "regex", + "once_cell", + "regex-lite", "tracing", ] [[package]] name = "aws-sdk-sts" -version = "1.4.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbee86e8d9b1be709bd0f38b9ab3f196e39b0b6f3262a0a919a9d30f25debd94" +checksum = "d27259dcd835b6069260edec09487383f40f45c1cc7f02c74258eff8a22555a4" dependencies = [ "aws-credential-types", "aws-http", "aws-runtime", "aws-smithy-async", - "aws-smithy-http 0.60.0", + "aws-smithy-http", "aws-smithy-json", "aws-smithy-query", "aws-smithy-runtime", @@ -1362,19 +1364,20 @@ dependencies = [ "aws-smithy-xml", "aws-types", "http 0.2.9", - "regex", + "once_cell", + "regex-lite", "tracing", ] [[package]] name = "aws-sigv4" -version = "1.0.3" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bcbad6e0f130232b22e4b4e28834348ce5b79c23b5059b387c08fd0dc8f876" +checksum = "d222297ca90209dc62245f0a490355795f29de362eb5c19caea4f7f55fe69078" dependencies = [ "aws-credential-types", "aws-smithy-eventstream", - "aws-smithy-http 0.60.0", + "aws-smithy-http", "aws-smithy-runtime-api", "aws-smithy-types", "bytes 1.5.0", @@ -1386,7 +1389,6 @@ dependencies = [ "once_cell", "p256 0.11.1", "percent-encoding", - "regex", "ring 0.17.5", "sha2", "subtle", @@ -1397,9 +1399,9 @@ dependencies = [ [[package]] name = "aws-smithy-async" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8251646e230593f141a6df2421f5c9cebae4b7b5f874482164ccc9885a662b5d" +checksum = "1e9f65000917e3aa94c259d67fe01fa9e4cd456187d026067d642436e6311a81" dependencies = [ "futures-util", "pin-project-lite 0.2.13", @@ -1408,11 +1410,11 @@ dependencies = [ [[package]] name = "aws-smithy-checksums" -version = "0.60.0" +version = "0.60.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5a373ec01aede3dd066ec018c1bc4e8f5dd11b2c11c59c8eef1a5c68101f397" +checksum = "4c2a63681f82fb85ca58d566534b7dc619c782fee0c61c1aa51e2b560c21cb4f" dependencies = [ - "aws-smithy-http 0.60.0", + "aws-smithy-http", "aws-smithy-types", "bytes 1.5.0", "crc32c", @@ -1429,9 +1431,9 @@ dependencies = [ [[package]] name = "aws-smithy-eventstream" -version = "0.60.0" +version = "0.60.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c669e1e5fc0d79561bf7a122b118bd50c898758354fe2c53eb8f2d31507cbc3" +checksum = "a85e16fa903c70c49ab3785e5f4ac2ad2171b36e0616f321011fa57962404bb6" dependencies = [ "aws-smithy-types", "bytes 1.5.0", @@ -1440,9 +1442,9 @@ dependencies = [ [[package]] name = "aws-smithy-http" -version = "0.60.0" +version = "0.60.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b1de8aee22f67de467b2e3d0dd0fb30859dc53f579a63bd5381766b987db644" +checksum = "e4e816425a6b9caea4929ac97d0cb33674849bd5f0086418abc0d02c63f7a1bf" dependencies = [ "aws-smithy-eventstream", "aws-smithy-runtime-api", @@ -1459,40 +1461,20 @@ dependencies = [ "tracing", ] -[[package]] -name = "aws-smithy-http" -version = "0.61.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e68d7a4a9b8be1342066dd8b26c925e79f4e399a7e57ee22f9d162eb041d592" -dependencies = [ - "aws-smithy-runtime-api", - "aws-smithy-types", - "bytes 1.5.0", - "bytes-utils", - "futures-core", - "http 0.2.9", - "http-body 0.4.5", - "once_cell", - "percent-encoding", - "pin-project-lite 0.2.13", - "pin-utils", - "tracing", -] - [[package]] name = "aws-smithy-json" -version = "0.60.0" +version = "0.60.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a46dd338dc9576d6a6a5b5a19bd678dcad018ececee11cf28ecd7588bd1a55c" +checksum = "8ab3f6d49e08df2f8d05e1bb5b68998e1e67b76054d3c43e7b954becb9a5e9ac" dependencies = [ "aws-smithy-types", ] [[package]] name = "aws-smithy-query" -version = "0.60.0" +version = "0.60.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feb5b8c7a86d4b6399169670723b7e6f21a39fc833a30f5c5a2f997608178129" +checksum = "0f94a7a3aa509ff9e8b8d80749851d04e5eee0954c43f2e7d6396c4740028737" dependencies = [ "aws-smithy-types", "urlencoding", @@ -1500,12 +1482,12 @@ dependencies = [ [[package]] name = "aws-smithy-runtime" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de8c54dd9c5a159013f1e6885cb7c1ae8fc98dc286d2aebe71737effef28e37" +checksum = "8da5b0a3617390e769576321816112f711c13d7e1114685e022505cf51fe5e48" dependencies = [ "aws-smithy-async", - "aws-smithy-http 0.61.0", + "aws-smithy-http", "aws-smithy-runtime-api", "aws-smithy-types", "bytes 1.5.0", @@ -1525,9 +1507,9 @@ dependencies = [ [[package]] name = "aws-smithy-runtime-api" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a55ed8f64f72162056db15e05394e9aa2b5a58a0b5ebeab5694f9a463b79bea8" +checksum = "2404c9eb08bfe9af255945254d9afc69a367b7ee008b8db75c05e3bca485fc65" dependencies = [ "aws-smithy-async", "aws-smithy-types", @@ -1541,9 +1523,9 @@ dependencies = [ [[package]] name = "aws-smithy-types" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6d0b5ba0f92811d45954c61e3ada057d2a09ee0357403cf86ece562e5fa8268" +checksum = "2aba8136605d14ac88f57dc3a693a9f8a4eab4a3f52bc03ff13746f0cd704e97" dependencies = [ "base64-simd", "bytes 1.5.0", @@ -1564,18 +1546,18 @@ dependencies = [ [[package]] name = "aws-smithy-xml" -version = "0.60.0" +version = "0.60.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ec40d74a67fd395bc3f6b4ccbdf1543672622d905ef3f979689aea5b730cb95" +checksum = "2e8f03926587fc881b12b102048bb04305bf7fb8c83e776f0ccc51eaa2378263" dependencies = [ "xmlparser", ] [[package]] name = "aws-types" -version = "1.0.3" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faa59f6f26a3472ca2ce7e7802d037a0a9a7ac23de5761eadd9b68f31ac4fd21" +checksum = "4e5d5ee29077e0fcd5ddd0c227b521a33aaf02434b7cdba1c55eec5c1f18ac47" dependencies = [ "aws-credential-types", "aws-smithy-async", @@ -2076,9 +2058,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.10" +version = "4.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fffed7514f420abec6d183b1d3acfd9099c79c3a10a06ade4f8203f1411272" +checksum = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2" dependencies = [ "clap_builder", "clap_derive", @@ -2086,9 +2068,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.9" +version = "4.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63361bae7eef3771745f02d8d892bec2fee5f6e34af316ba556e7f97a7069ff1" +checksum = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb" dependencies = [ "anstream", "anstyle", @@ -2635,9 +2617,9 @@ dependencies = [ [[package]] name = "deadpool-postgres" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40b75ba49590d27f677d3bebaf76cd15889ca8b308bc7ba99bfa25f1d7269c13" +checksum = "bda39fa1cfff190d8924d447ad04fd22772c250438ca5ce1dfb3c80621c05aaa" dependencies = [ "deadpool", "serde", @@ -5233,9 +5215,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl" -version = "0.10.60" +version = "0.10.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79a4c6c3a2b158f7f8f2a2fc5a969fa3a068df6fc9dbb4a43845436e3af7c800" +checksum = "8cde4d2d9200ad5909f8dac647e29482e07c3a35de8a13fce7c9c7747ad9f671" dependencies = [ "bitflags 2.4.1", "cfg-if 1.0.0", @@ -5265,9 +5247,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.96" +version = "0.9.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3812c071ba60da8b5677cc12bcb1d42989a65553772897a7e0355545a819838f" +checksum = "c1665caf8ab2dc9aef43d1c0023bd904633a6a05cb30b0ad59bec2ae986e57a7" dependencies = [ "cc", "libc", @@ -5784,9 +5766,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4fdd22f3b9c31b53c060df4a0613a1c7f062d4115a2b984dd15b1858f7e340d" +checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a" dependencies = [ "bytes 1.5.0", "prost-derive", @@ -5794,9 +5776,9 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "265baba7fabd416cf5078179f7d2cbeca4ce7a9041111900675ea7c4cb8a4c32" +checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e" dependencies = [ "anyhow", "itertools", @@ -6109,6 +6091,12 @@ dependencies = [ "regex-syntax", ] +[[package]] +name = "regex-lite" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b661b2f27137bdbc16f00eda72866a92bb28af1753ffbd56744fb6e2e9cd8e" + [[package]] name = "regex-syntax" version = "0.8.2" @@ -9268,20 +9256,19 @@ checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" [[package]] name = "zstd" -version = "0.12.4" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" +checksum = "bffb3309596d527cfcba7dfc6ed6052f1d39dfbd7c867aa2e865e4a449c10110" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "6.0.6" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" +checksum = "43747c7422e2924c11144d5229878b98180ef8b06cca4ab5af37afc8a8d8ea3e" dependencies = [ - "libc", "zstd-sys", ] diff --git a/Cargo.toml b/Cargo.toml index 64b38853..6746d533 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -79,7 +79,7 @@ actix-broker = "0.4" actix-codec = "0.5" actix-cors = "0.6" actix-files = "0.6" -actix-http = "3.4" +actix-http = "3.5" actix-identity = "0.6" actix-multipart = "0.6" actix-multipart-derive = "0.6" diff --git a/databases/postgres/Cargo.toml b/databases/postgres/Cargo.toml index 81f0e281..c277a533 100644 --- a/databases/postgres/Cargo.toml +++ b/databases/postgres/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" [dependencies] actix-web.workspace = true config = "0.13" -deadpool-postgres = { version = "0.11", features = ["serde"] } +deadpool-postgres = { version = "0.12", features = ["serde"] } derive_more.workspace = true dotenvy.workspace = true serde = { version = "1.0.137", features = ["derive"] }