Use "cross" to cross-compile reqwest for Android. The job currently errors out because the default linker doesn't know what to do with object files generated for Android.
264 lines
7.1 KiB
YAML
264 lines
7.1 KiB
YAML
name: CI
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- master
|
|
|
|
env:
|
|
REQWEST_TEST_BODY_FULL: 1
|
|
RUST_BACKTRACE: 1
|
|
|
|
jobs:
|
|
style:
|
|
name: Check Style
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v1
|
|
|
|
- name: Install rust
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
components: rustfmt
|
|
profile: minimal
|
|
override: true
|
|
|
|
- name: cargo fmt -- --check
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: fmt
|
|
args: -- --check
|
|
|
|
build:
|
|
name: ${{ matrix.name }}
|
|
needs: [style]
|
|
|
|
runs-on: ${{ matrix.os || 'ubuntu-latest' }}
|
|
|
|
# The build matrix does not yet support 'allow failures' at job level.
|
|
# See `jobs.nightly` for the active nightly job definition.
|
|
strategy:
|
|
matrix:
|
|
name:
|
|
- linux / stable
|
|
- linux / beta
|
|
# - linux / nightly
|
|
- macOS / stable
|
|
- windows / stable-x86_64-msvc
|
|
- windows / stable-i686-msvc
|
|
- windows / stable-x86_64-gnu
|
|
- windows / stable-i686-gnu
|
|
- "feat.: default-tls disabled"
|
|
- "feat.: rustls-tls"
|
|
- "feat.: rustls-tls-manual-roots"
|
|
- "feat.: native-tls"
|
|
- "feat.: default-tls and rustls-tls"
|
|
- "feat.: cookies"
|
|
- "feat.: blocking"
|
|
- "feat.: gzip"
|
|
- "feat.: brotli"
|
|
- "feat.: json"
|
|
- "feat.: multipart"
|
|
- "feat.: stream"
|
|
- "feat.: socks/default-tls"
|
|
- "feat.: socks/rustls-tls"
|
|
- "feat.: trust-dns"
|
|
|
|
include:
|
|
- name: linux / stable
|
|
test-features: "--features __internal_proxy_sys_no_cache"
|
|
- name: linux / beta
|
|
rust: beta
|
|
test-features: "--features __internal_proxy_sys_no_cache"
|
|
# - name: linux / nightly
|
|
# rust: nightly
|
|
# test-features: "--features __internal_proxy_sys_no_cache"
|
|
- name: macOS / stable
|
|
os: macOS-latest
|
|
test-features: "--features __internal_proxy_sys_no_cache"
|
|
|
|
- name: windows / stable-x86_64-msvc
|
|
os: windows-latest
|
|
target: x86_64-pc-windows-msvc
|
|
features: "--features blocking,gzip,brotli,json,multipart"
|
|
- name: windows / stable-i686-msvc
|
|
os: windows-latest
|
|
target: i686-pc-windows-msvc
|
|
features: "--features blocking,gzip,brotli,json,multipart"
|
|
- name: windows / stable-x86_64-gnu
|
|
os: windows-latest
|
|
rust: stable-x86_64-pc-windows-gnu
|
|
target: x86_64-pc-windows-gnu
|
|
features: "--features blocking,gzip,brotli,json,multipart"
|
|
- name: windows / stable-i686-gnu
|
|
os: windows-latest
|
|
rust: stable-i686-pc-windows-gnu
|
|
target: i686-pc-windows-gnu
|
|
features: "--features blocking,gzip,brotli,json,multipart"
|
|
|
|
- name: "feat.: default-tls disabled"
|
|
features: "--no-default-features"
|
|
- name: "feat.: rustls-tls"
|
|
features: "--no-default-features --features rustls-tls"
|
|
- name: "feat.: rustls-tls-manual-roots"
|
|
features: "--no-default-features --features rustls-tls-manual-roots"
|
|
- name: "feat.: native-tls"
|
|
features: "--features native-tls"
|
|
- name: "feat.: default-tls and rustls-tls"
|
|
features: "--features rustls-tls"
|
|
- name: "feat.: cookies"
|
|
features: "--features cookies"
|
|
- name: "feat.: blocking"
|
|
features: "--features blocking"
|
|
- name: "feat.: gzip"
|
|
features: "--features gzip"
|
|
- name: "feat.: brotli"
|
|
features: "--features brotli"
|
|
- name: "feat.: json"
|
|
features: "--features json"
|
|
- name: "feat.: multipart"
|
|
features: "--features multipart"
|
|
- name: "feat.: stream"
|
|
features: "--features stream"
|
|
- name: "feat.: socks/default-tls"
|
|
features: "--features socks"
|
|
- name: "feat.: socks/rustls-tls"
|
|
features: "--features socks,rustls-tls"
|
|
- name: "feat.: trust-dns"
|
|
features: "--features trust-dns"
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v1
|
|
|
|
- name: Install rust
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: ${{ matrix.rust || 'stable' }}
|
|
target: ${{ matrix.target }}
|
|
profile: minimal
|
|
override: true
|
|
|
|
- name: Build
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: build
|
|
args: ${{ matrix.features }}
|
|
|
|
- name: Test
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: test
|
|
args: ${{ matrix.features }} ${{ matrix.test-features }} -- --test-threads=1
|
|
|
|
# Separate build job for nightly because of the missing feature for allowed failures at
|
|
# job level. See `jobs.build.strategy.matrix`.
|
|
nightly:
|
|
name: linux / nightly
|
|
needs: [style]
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v1
|
|
|
|
- name: Install rust
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: nightly
|
|
profile: minimal
|
|
override: true
|
|
|
|
- name: Build
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: build
|
|
|
|
- name: Test
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: test
|
|
args: --features __internal_proxy_sys_no_cache -- --test-threads=1
|
|
|
|
minversion:
|
|
name: Minimum version ${{ matrix.rust }}
|
|
needs: [style]
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
matrix:
|
|
rust: [1.45.2]
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v1
|
|
|
|
- name: Install rust
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: ${{ matrix.rust }}
|
|
profile: minimal
|
|
override: true
|
|
|
|
- name: Check
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: check
|
|
|
|
android:
|
|
name: Android
|
|
needs: [style]
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v1
|
|
|
|
- name: Install rust
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
target: aarch64-linux-android
|
|
profile: minimal
|
|
override: true
|
|
|
|
- name: Build
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
use-cross: true
|
|
command: build
|
|
# disable default-tls feature since cross-compiling openssl is dragons
|
|
args: --target aarch64-linux-android --no-default-features
|
|
|
|
wasm:
|
|
name: WASM
|
|
needs: [style]
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v1
|
|
|
|
- name: Install rust
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
target: wasm32-unknown-unknown
|
|
profile: minimal
|
|
override: true
|
|
|
|
- name: Check
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: check
|
|
args: --target wasm32-unknown-unknown
|