diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
new file mode 100644
index 00000000..875ce10b
--- /dev/null
+++ b/.github/workflows/linux.yml
@@ -0,0 +1,90 @@
+name: CI (Linux)
+
+on: [push, pull_request]
+
+jobs:
+ build_and_test:
+ strategy:
+ fail-fast: false
+ matrix:
+ version:
+ - 1.39.0 # MSRV
+ - stable
+ - nightly
+
+ name: ${{ matrix.version }} - x86_64-unknown-linux-gnu
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@master
+
+ - name: Install ${{ matrix.version }}
+ uses: actions-rs/toolchain@v1
+ with:
+ toolchain: ${{ matrix.version }}-x86_64-unknown-linux-gnu
+ profile: minimal
+ override: true
+
+ - name: Generate Cargo.lock
+ uses: actions-rs/cargo@v1
+ with:
+ command: generate-lockfile
+ - name: Cache cargo registry
+ uses: actions/cache@v1
+ with:
+ path: ~/.cargo/registry
+ key: ${{ matrix.version }}-x86_64-unknown-linux-gnu-cargo-registry-trimmed-${{ hashFiles('**/Cargo.lock') }}
+ - name: Cache cargo index
+ uses: actions/cache@v1
+ with:
+ path: ~/.cargo/git
+ key: ${{ matrix.version }}-x86_64-unknown-linux-gnu-cargo-index-trimmed-${{ hashFiles('**/Cargo.lock') }}
+ - name: Cache cargo build
+ uses: actions/cache@v1
+ with:
+ path: target
+ key: ${{ matrix.version }}-x86_64-unknown-linux-gnu-cargo-build-trimmed-${{ hashFiles('**/Cargo.lock') }}
+
+ - name: check build
+ uses: actions-rs/cargo@v1
+ with:
+ command: check
+ args: --all --bins --examples --tests
+
+ - name: tests
+ uses: actions-rs/cargo@v1
+ timeout-minutes: 40
+ with:
+ command: test
+ args: --all --all-features --no-fail-fast -- --nocapture
+
+ - name: tests (actix-http)
+ uses: actions-rs/cargo@v1
+ timeout-minutes: 40
+ with:
+ command: test
+ args: --package=actix-http --no-default-features --features=rustls -- --nocapture
+
+ - name: tests (awc)
+ uses: actions-rs/cargo@v1
+ timeout-minutes: 40
+ with:
+ command: test
+ args: --package=awc --no-default-features --features=rustls -- --nocapture
+
+ - name: Generate coverage file
+ if: matrix.version == 'stable' && (github.ref == 'master' || github.event_name == 'pull_request')
+ run: |
+ cargo install cargo-tarpaulin
+ cargo tarpaulin --out Xml
+ - name: Upload to Codecov
+ if: matrix.version == 'stable' && (github.ref == 'master' || github.event_name == 'pull_request')
+ uses: codecov/codecov-action@v1
+ with:
+ token: ${{ secrets.CODECOV_TOKEN }}
+ file: cobertura.xml
+
+ - name: Clear the cargo caches
+ run: |
+ cargo install cargo-cache --no-default-features --features ci-autoclean
+ cargo-cache
diff --git a/.github/workflows/upload-doc.yml b/.github/workflows/upload-doc.yml
new file mode 100644
index 00000000..388ae370
--- /dev/null
+++ b/.github/workflows/upload-doc.yml
@@ -0,0 +1,35 @@
+name: Upload documentation
+
+on:
+ push:
+ branches:
+ - master
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ if: github.repository == 'actix/actix-web'
+
+ steps:
+ - uses: actions/checkout@master
+
+ - name: Install Rust
+ uses: actions-rs/toolchain@v1
+ with:
+ toolchain: stable-x86_64-unknown-linux-gnu
+ profile: minimal
+ override: true
+
+ - name: check build
+ uses: actions-rs/cargo@v1
+ with:
+ command: doc
+ args: --no-deps --all-features
+
+ - name: Tweak HTML
+ run: echo "" > target/doc/index.html
+
+ - name: Upload documentation
+ run: |
+ git clone https://github.com/davisp/ghp-import.git
+ ./ghp-import/ghp_import.py -n -p -f -m "Documentation upload" -r https://${{ secrets.GITHUB_TOKEN }}@github.com/"${{ github.repository }}.git" target/doc
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index f10f82a4..00000000
--- a/.travis.yml
+++ /dev/null
@@ -1,61 +0,0 @@
-language: rust
-sudo: required
-dist: trusty
-
-cache:
- # cargo: true
- apt: true
-
-matrix:
- include:
- - rust: stable
- - rust: beta
- - rust: nightly-2019-11-20
- allow_failures:
- - rust: nightly-2019-11-20
-
-env:
- global:
- # - RUSTFLAGS="-C link-dead-code"
- - OPENSSL_VERSION=openssl-1.0.2
-
-before_install:
- - sudo add-apt-repository -y ppa:0k53d-karl-f830m/openssl
- - sudo apt-get update -qq
- - sudo apt-get install -y openssl libssl-dev libelf-dev libdw-dev cmake gcc binutils-dev libiberty-dev
-
-before_cache: |
- if [[ "$TRAVIS_RUST_VERSION" == "nightly-2019-11-20" ]]; then
- RUSTFLAGS="--cfg procmacro2_semver_exempt" cargo install --version 0.6.11 cargo-tarpaulin
- fi
-
-# Add clippy
-before_script:
- - export PATH=$PATH:~/.cargo/bin
-
-script:
- - cargo update
- - cargo check --all --no-default-features
- - |
- if [[ "$TRAVIS_RUST_VERSION" == "stable" || "$TRAVIS_RUST_VERSION" == "beta" ]]; then
- cargo test --all-features --all -- --nocapture
- cd actix-http; cargo test --no-default-features --features="rustls" -- --nocapture; cd ..
- cd awc; cargo test --no-default-features --features="rustls" -- --nocapture; cd ..
- fi
-
-# Upload docs
-after_success:
- - |
- if [[ "$TRAVIS_OS_NAME" == "linux" && "$TRAVIS_PULL_REQUEST" = "false" && "$TRAVIS_BRANCH" == "master" && "$TRAVIS_RUST_VERSION" == "stable" ]]; then
- cargo doc --no-deps --all-features &&
- echo "" > target/doc/index.html &&
- git clone https://github.com/davisp/ghp-import.git &&
- ./ghp-import/ghp_import.py -n -p -f -m "Documentation upload" -r https://"$GH_TOKEN"@github.com/"$TRAVIS_REPO_SLUG.git" target/doc &&
- echo "Uploaded documentation"
- fi
- - |
- if [[ "$TRAVIS_RUST_VERSION" == "nightly-2019-11-20" ]]; then
- taskset -c 0 cargo tarpaulin --out Xml --all --all-features
- bash <(curl -s https://codecov.io/bash)
- echo "Uploaded code coverage"
- fi