diff options
author | Matthew (mbg) <[email protected]> | 2024-03-01 15:43:49 -0800 |
---|---|---|
committer | GitHub <[email protected]> | 2024-03-01 15:43:49 -0800 |
commit | c523748c3e6e8b8ee21584bd3d647fdfaf32d1d3 (patch) | |
tree | 1a2ec17939b5f9cdfdce4a8c91497b9d243873b2 | |
parent | 8dc94d6cc4c28799d2f0cdaa9eaaacc6f9b109eb (diff) | |
download | pingora-c523748c3e6e8b8ee21584bd3d647fdfaf32d1d3.tar.gz pingora-c523748c3e6e8b8ee21584bd3d647fdfaf32d1d3.zip |
ci: add github workflows (#3)
Add CI workflows for docs, compile, test, and audit. Dependabot also
included.
-rw-r--r-- | .github/dependabot.yml | 8 | ||||
-rw-r--r-- | .github/workflows/build.yml | 68 | ||||
-rw-r--r-- | .github/workflows/docs.yml | 34 |
3 files changed, 110 insertions, 0 deletions
diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..1332f8e --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,8 @@ +version: 2 +updates: +- package-ecosystem: cargo + directory: "/" + schedule: + interval: daily + time: "13:00" + open-pull-requests-limit: 10 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..6e91352 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,68 @@ +on: [push, pull_request] + +name: build + +jobs: + pingora: + strategy: + matrix: + # TODO: add nightly + toolchain: [stable] + profile: [minimal, default] + runs-on: ubuntu-latest + # Only run on "pull_request" event for external PRs. This is to avoid + # duplicate builds for PRs created from internal branches. + if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository + steps: + - name: Checkout sources + uses: actions/checkout@v3 + with: + submodules: 'recursive' + + - name: Install build dependencies + run: | + sudo apt update + sudo apt install -y cmake libclang-dev wget gnupg ca-certificates lsb-release --no-install-recommends + # openresty is used for convenience in tests as a server. + wget -O - https://openresty.org/package/pubkey.gpg | sudo gpg --dearmor -o /usr/share/keyrings/openresty.gpg + echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/openresty.gpg] http://openresty.org/package/ubuntu $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/openresty.list > /dev/null + sudo apt update + sudo apt install -y openresty --no-install-recommends + + - name: Install toolchain + uses: actions-rs/toolchain@v1 + with: + toolchain: ${{ matrix.toolchain }} + profile: ${{ matrix.profile }} + components: rustfmt, clippy + override: true + default: true + + - name: Run cargo fmt + uses: actions-rs/cargo@v1 + with: + command: fmt + args: -- --check + + - name: Run cargo test + uses: actions-rs/cargo@v1 + with: + command: test + args: --verbose --lib --bins --tests --no-fail-fast + + # Need to run doc tests separately. + # (https://github.com/rust-lang/cargo/issues/6669) + - name: Run cargo doc test + uses: actions-rs/cargo@v1 + with: + command: test + args: --verbose --doc + + - name: Run cargo clippy + uses: actions-rs/cargo@v1 + with: + command: clippy + args: --all-targets --all -- --deny=warnings + + - name: Run cargo audit + uses: actions-rust-lang/audit@v1 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..32d1fac --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,34 @@ +on: + push: + branches: + - master + +name: Docs + +jobs: + docs: + runs-on: ubuntu-latest + steps: + - name: Checkout sources + uses: actions/checkout@v3 + with: + submodules: 'recursive' + + - name: Install build dependencies + run: | + sudo apt update + sudo apt install -y cmake libclang-dev + + - name: Install stable toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + default: true + + - name: Run cargo doc + uses: actions-rs/cargo@v1 + with: + command: doc + args: --no-deps --all-features |