aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMatthew (mbg) <[email protected]>2024-03-01 15:43:49 -0800
committerGitHub <[email protected]>2024-03-01 15:43:49 -0800
commitc523748c3e6e8b8ee21584bd3d647fdfaf32d1d3 (patch)
tree1a2ec17939b5f9cdfdce4a8c91497b9d243873b2
parent8dc94d6cc4c28799d2f0cdaa9eaaacc6f9b109eb (diff)
downloadpingora-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.yml8
-rw-r--r--.github/workflows/build.yml68
-rw-r--r--.github/workflows/docs.yml34
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