Switch to rustls as the default (#83)

Added the new features to the linux build-matrix and the windows and macos build only build the default rustls feature. Only the rustls matrix-items will have their wheels and artifacts publiced.
This commit is contained in:
Erwin Kroon 2021-09-30 18:45:33 +02:00 committed by GitHub
parent 2183332de9
commit 92e1e2408e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 106 additions and 41 deletions

View File

@ -3,6 +3,7 @@ name: columnq-cli release
on:
push:
paths:
- '.github/workflows/columnq_cli_release.yml'
- 'columnq/**'
- 'columnq-cli/**'
- 'Cargo.lock'
@ -117,15 +118,19 @@ jobs:
needs: validate-release-tag
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
platform: [
{ manylinux: '2010', target: "x86_64-unknown-linux-musl", image_tag: "x86_64-musl", features: "simd" },
{ manylinux: '2010', target: "x86_64-unknown-linux-musl", image_tag: "x86_64-musl", features: "simd,rustls", upload: "true" },
{ manylinux: '2010', target: "x86_64-unknown-linux-musl", image_tag: "x86_64-musl", features: "simd,native-tls-vendored", upload: "false" },
# { manylinux: '2010', target: "i686-unknown-linux-musl", image_tag: "i686-musl", features: "" },
{ manylinux: '2014', target: "aarch64-unknown-linux-musl", image_tag: "aarch64-musl", features: "" },
{ manylinux: '2014', target: "armv7-unknown-linux-musleabihf", image_tag: "armv7-musleabihf", features: "" },
{ manylinux: '2014', target: "aarch64-unknown-linux-musl", image_tag: "aarch64-musl", features: "rustls", upload: "true" },
{ manylinux: '2014', target: "aarch64-unknown-linux-musl", image_tag: "aarch64-musl", features: "native-tls-vendored", upload: "false" },
{ manylinux: '2014', target: "armv7-unknown-linux-musleabihf", image_tag: "armv7-musleabihf", features: "rustls", upload: "true" },
{ manylinux: '2014', target: "armv7-unknown-linux-musleabihf", image_tag: "armv7-musleabihf", features: "native-tls-vendored", upload: "false" },
]
container:
image: docker://benfred/rust-musl-cross:${{ matrix.platform.image_tag }}
image: docker://messense/rust-musl-cross:${{ matrix.platform.image_tag }}
env:
RUSTUP_HOME: /root/.rustup
CARGO_HOME: /root/.cargo
@ -140,20 +145,22 @@ jobs:
rustup default nightly-${{ env.RUST_TC_NIGHTLY_VER }}
- name: Build Wheels
run: |
pip3 install 'maturin<0.12'
sudo python3 -m pip install 'maturin<0.12'
maturin build -m columnq-cli/Cargo.toml -b bin --no-sdist --release -o dist \
--target ${{ matrix.platform.target }} --manylinux ${{ matrix.platform.manylinux }} \
--cargo-extra-args="--features=${{ matrix.platform.features }}"
--cargo-extra-args="--no-default-features --features=${{ matrix.platform.features }}"
- name: Upload wheels
uses: actions/upload-artifact@v2
if: "matrix.platform.upload == 'true'"
with:
name: wheels
path: dist
- name: Archive binary
if: "matrix.platform.upload == 'true'"
run: tar czvf target/release/columnq-cli.tar.gz -C target/${{ matrix.platform.target }}/release columnq
- name: Upload binary to GitHub Release
uses: svenstaro/upload-release-action@v2
if: "startsWith(github.ref, 'refs/tags/')"
if: "startsWith(github.ref, 'refs/tags/') && matrix.platform.upload == 'true'"
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
asset_name: columnq-cli-${{ matrix.platform.target }}.tar.gz
@ -178,4 +185,4 @@ jobs:
TWINE_PASSWORD: ${{ secrets.COLUMNQ_CLI_PYPI_TOKEN }}
run: |
pip install --upgrade twine
twine upload --skip-existing *
twine upload --skip-existing *

View File

@ -3,6 +3,7 @@ name: roapi-http release
on:
push:
paths:
- '.github/workflows/roapi_http_release.yml'
- 'columnq/**'
- 'roapi-http/**'
- 'Cargo.lock'
@ -118,15 +119,19 @@ jobs:
needs: validate-release-tag
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
platform: [
{ manylinux: '2010', target: "x86_64-unknown-linux-musl", image_tag: "x86_64-musl", features: "simd" },
{ manylinux: '2010', target: "x86_64-unknown-linux-musl", image_tag: "x86_64-musl", features: "simd,rustls", upload: "true" },
{ manylinux: '2010', target: "x86_64-unknown-linux-musl", image_tag: "x86_64-musl", features: "simd,native-tls-vendored", upload: "false" },
# { manylinux: '2010', target: "i686-unknown-linux-musl", image_tag: "i686-musl", features: "" },
{ manylinux: '2014', target: "aarch64-unknown-linux-musl", image_tag: "aarch64-musl", features: "" },
{ manylinux: '2014', target: "armv7-unknown-linux-musleabihf", image_tag: "armv7-musleabihf", features: "" },
{ manylinux: '2014', target: "aarch64-unknown-linux-musl", image_tag: "aarch64-musl", features: "rustls", upload: "true"},
{ manylinux: '2014', target: "aarch64-unknown-linux-musl", image_tag: "aarch64-musl", features: "native-tls-vendored", upload: "false" },
{ manylinux: '2014', target: "armv7-unknown-linux-musleabihf", image_tag: "armv7-musleabihf", features: "rustls", upload: "true" },
{ manylinux: '2014', target: "armv7-unknown-linux-musleabihf", image_tag: "armv7-musleabihf", features: "native-tls-vendored", upload: "false" },
]
container:
image: docker://benfred/rust-musl-cross:${{ matrix.platform.image_tag }}
image: docker://messense/rust-musl-cross:${{ matrix.platform.image_tag }}
env:
RUSTUP_HOME: /root/.rustup
CARGO_HOME: /root/.cargo
@ -141,18 +146,22 @@ jobs:
rustup default nightly-${{ env.RUST_TC_NIGHTLY_VER }}
- name: Build Wheels
run: |
pip3 install 'maturin<0.12'
maturin build -m roapi-http/Cargo.toml -b bin --no-sdist --release -o dist --target ${{ matrix.platform.target }} --manylinux ${{ matrix.platform.manylinux }} --cargo-extra-args="--features=${{ matrix.platform.features }}"
sudo python3 -m pip install 'maturin<0.12'
maturin build -m roapi-http/Cargo.toml -b bin --no-sdist --release -o dist \
--target ${{ matrix.platform.target }} --manylinux ${{ matrix.platform.manylinux }} \
--cargo-extra-args="--no-default-features --features=${{ matrix.platform.features }}"
- name: Upload wheels
uses: actions/upload-artifact@v2
if: "matrix.platform.upload == 'true'"
with:
name: wheels
path: dist
- name: Archive binary
if: "matrix.platform.upload == 'true'"
run: tar czvf target/release/roapi-http.tar.gz -C target/${{ matrix.platform.target }}/release roapi-http
- name: Upload binary to GitHub Release
uses: svenstaro/upload-release-action@v2
if: "startsWith(github.ref, 'refs/tags/')"
if: "startsWith(github.ref, 'refs/tags/') && matrix.platform.upload == 'true'"
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
asset_name: roapi-http-${{ matrix.platform.target }}.tar.gz

74
Cargo.lock generated
View File

@ -201,7 +201,7 @@ dependencies = [
"serde_json",
"serde_urlencoded 0.7.0",
"smallvec",
"socket2",
"socket2 0.3.19",
"time 0.2.25",
"url",
]
@ -551,6 +551,8 @@ dependencies = [
"deltalake",
"futures",
"graphql-parser",
"hyper-rustls",
"hyper-tls",
"lazy_static",
"log",
"pretty_assertions",
@ -1253,9 +1255,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
[[package]]
name = "hyper"
version = "0.14.4"
version = "0.14.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e8e946c2b1349055e0b72ae281b238baf1a3ea7307c7e9f9d64673bdd9c26ac7"
checksum = "8bf09f61b52cfcf4c00de50df88ae423d6c02354e385a86341133b5338630ad1"
dependencies = [
"bytes",
"futures-channel",
@ -1268,7 +1270,7 @@ dependencies = [
"httpdate",
"itoa",
"pin-project",
"socket2",
"socket2 0.4.2",
"tokio",
"tower-service",
"tracing",
@ -1582,7 +1584,7 @@ version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a33c1b55807fbed163481b5ba66db4b2fa6cde694a5027be10fb724206c5897"
dependencies = [
"socket2",
"socket2 0.3.19",
"winapi",
]
@ -1608,9 +1610,9 @@ dependencies = [
[[package]]
name = "native-tls"
version = "0.2.7"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8d96b2e1c8da3957d58100b09f102c6d9cfdfced01b7ec5a8974044bb09dbd4"
checksum = "48ba9f7719b5a0f42f338907614285fb5fd70e53858141f69898a1fb7203b24d"
dependencies = [
"lazy_static",
"libc",
@ -1755,9 +1757,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
[[package]]
name = "openssl"
version = "0.10.33"
version = "0.10.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a61075b62a23fef5a29815de7536d940aa35ce96d18ce0cc5076272db678a577"
checksum = "8d9facdb76fec0b73c406f125d44d86fdad818d66fef0531eec9233ca425ff4a"
dependencies = [
"bitflags",
"cfg-if 1.0.0",
@ -1774,14 +1776,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
[[package]]
name = "openssl-sys"
version = "0.9.61"
name = "openssl-src"
version = "111.16.0+1.1.1l"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "313752393519e876837e09e1fa183ddef0be7735868dced3196f4472d536277f"
checksum = "7ab2173f69416cf3ec12debb5823d244127d23a9b127d5a5189aa97c5fa2859f"
dependencies = [
"cc",
]
[[package]]
name = "openssl-sys"
version = "0.9.67"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "69df2d8dfc6ce3aaf44b40dec6f487d5a886516cf6879c49e98e0710f310a058"
dependencies = [
"autocfg",
"cc",
"libc",
"openssl-src",
"pkg-config",
"vcpkg",
]
@ -1929,9 +1941,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
[[package]]
name = "pkg-config"
version = "0.3.19"
version = "0.3.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"
checksum = "7c9b1041b4387893b91ee6746cddfc28516aff326a3519fb2adf820932c5e6cb"
[[package]]
name = "ppv-lite86"
@ -2148,9 +2160,9 @@ dependencies = [
[[package]]
name = "reqwest"
version = "0.11.2"
version = "0.11.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bf12057f289428dbf5c591c74bf10392e4a8003f993405a902f20117019022d4"
checksum = "246e9f61b9bb77df069a947682be06e31ac43ea37862e244a69f177694ea6d22"
dependencies = [
"base64",
"bytes",
@ -2160,6 +2172,7 @@ dependencies = [
"http",
"http-body",
"hyper",
"hyper-rustls",
"hyper-tls",
"ipnet",
"js-sys",
@ -2169,15 +2182,18 @@ dependencies = [
"native-tls",
"percent-encoding",
"pin-project-lite",
"rustls",
"serde",
"serde_json",
"serde_urlencoded 0.7.0",
"tokio",
"tokio-native-tls",
"tokio-rustls",
"url",
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
"webpki-roots",
"winreg",
]
@ -2230,6 +2246,7 @@ dependencies = [
"futures",
"http",
"hyper",
"hyper-rustls",
"hyper-tls",
"lazy_static",
"log",
@ -2255,6 +2272,7 @@ dependencies = [
"futures",
"http",
"hyper",
"hyper-rustls",
"hyper-tls",
"lazy_static",
"log",
@ -2723,6 +2741,16 @@ dependencies = [
"winapi",
]
[[package]]
name = "socket2"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516"
dependencies = [
"libc",
"winapi",
]
[[package]]
name = "spin"
version = "0.5.2"
@ -3202,9 +3230,9 @@ dependencies = [
[[package]]
name = "vcpkg"
version = "0.2.11"
version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb"
checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
[[package]]
name = "vec_map"
@ -3328,6 +3356,15 @@ dependencies = [
"untrusted",
]
[[package]]
name = "webpki-roots"
version = "0.21.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940"
dependencies = [
"webpki",
]
[[package]]
name = "winapi"
version = "0.3.9"
@ -3395,6 +3432,7 @@ dependencies = [
"http",
"hyper",
"hyper-rustls",
"hyper-tls",
"log",
"percent-encoding",
"rustls",

View File

@ -12,7 +12,7 @@ name = "columnq"
path = "src/main.rs"
[dependencies]
columnq = { path = "../columnq", version = "0" }
columnq = { path = "../columnq", version = "0", default-features = false }
serde_json = "*"
log = "0"
@ -24,6 +24,9 @@ clap = { version = ">=3.0.0-beta.2,<4", features = ["color"] }
dirs = { version = "3" }
[features]
default = ["rustls"]
rustls = ["columnq/rustls"]
native-tls-vendored = ["columnq/native-tls-vendored"]
simd = ["columnq/simd"]
[dev-dependencies]

View File

@ -19,26 +19,28 @@ regex = "1"
lazy_static = "1"
graphql-parser = "0"
sqlparser = "0.10"
yup-oauth2 = "5"
yup-oauth2 = { version = "5.1", default-features = false }
thiserror = "1"
serde_json = "1"
serde_derive = "1"
serde = "1"
uriparse = "0"
bytes = { version = "1" }
reqwest = { version = "0.11", features = ["blocking", "json"] }
reqwest = { version = "0.11", default-features = false, features = ["blocking", "json"] }
tokio = "1"
futures = "0.3"
# S3
rusoto_core = { version = "0.47" }
rusoto_s3 = { version = "0.47" }
rusoto_core = { version = "0.47", default-features = false }
rusoto_s3 = { version = "0.47", default-features = false }
rusoto_credential = { version = "0.47" }
rusoto_sts = { version = "0.47" }
rusoto_sts = { version = "0.47", default-features = false }
hyper-tls = { version = "0.5.0", default-features = false, features = ["vendored"], optional = true }
hyper-rustls = { version = "0.22.1", default-features = false, optional = true }
deltalake = { version = "0", features = ["s3", "datafusion-ext"] }
deltalake = { version = "0", default-features = false, features = ["datafusion-ext"] }
[dev-dependencies]
anyhow = "1"
@ -47,4 +49,7 @@ tempdir = "0"
pretty_assertions = "*"
[features]
default = ["rustls"]
rustls = ["reqwest/rustls-tls", "rusoto_core/rustls", "rusoto_core/rustls", "rusoto_sts/rustls", "deltalake/s3-rustls", "yup-oauth2/hyper-rustls"]
native-tls-vendored = ["reqwest/native-tls-vendored", "hyper-tls/vendored", "rusoto_core/native-tls", "rusoto_s3/native-tls", "rusoto_sts/native-tls", "deltalake/s3", "yup-oauth2/hyper-tls"]
simd = ["datafusion/simd"]

View File

@ -15,7 +15,7 @@ name = "roapi-http"
path = "src/main.rs"
[dependencies]
columnq = { path = "../columnq", version = "0" }
columnq = { path = "../columnq", version = "0", default-features = false }
# all actix dependencies are patched to use git source until actix-web 4.x lands
actix-web = "4.0.0-beta.4"
@ -35,6 +35,9 @@ thiserror = "1"
anyhow = "1"
[features]
default = ["rustls"]
rustls = ["columnq/rustls"]
native-tls-vendored = ["columnq/native-tls-vendored"]
simd = ["columnq/simd"]
[dev-dependencies]