CI #375
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
schedule: | |
- cron: "00 19 * * *" # run ci periodically at 3 am | |
pull_request: | |
branches: [main] | |
jobs: | |
lint: | |
name: Check Lint & Format | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Install Pip | |
run: sudo apt install pip | |
- name: Install Hatch | |
run: pip install hatch | |
- name: Generate API | |
uses: ./.github/workflows/protobuf | |
- name: Run lint & fmt | |
run: hatch run lint:all ./client | |
test: | |
name: Test Validation | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
- name: Install Pip | |
run: sudo apt install pip | |
- name: Generate API | |
uses: ./.github/workflows/protobuf | |
- name: Install Hatch | |
run: pip install hatch==1.7.0 | |
- name: Start the cluster | |
run: ./scripts/quick_start.sh | |
- name: Run test | |
run: hatch run cov | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: ./coverage.xml | |
fail_ci_if_error: true | |
verbose: true | |
mock: | |
name: Test Mock Sample Validation | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
path: py-xline | |
- name: Checkout mock xline | |
uses: actions/checkout@v4 | |
with: | |
repository: xline-kv/mock-xline | |
path: mock-xline | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
- name: Install Pip | |
run: sudo apt install pip | |
- name: Setup Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.21 | |
- name: Generate API | |
run: | | |
cd py-xline | |
python3 -m pip install grpcio grpcio-tools | |
git submodule init | |
git submodule update | |
make | |
- name: Install Hatch | |
run: pip install hatch==1.7.0 | |
- name: Start the cluster | |
run: | | |
cd mock-xline | |
./scripts/quick_start.sh | |
- name: Run tests | |
run: | | |
cd py-xline | |
hatch run test ./src/curp/ -v | |
commit: | |
name: Commit Message Validation | |
runs-on: ubuntu-latest | |
if: ${{ github.event_name != 'schedule' }} | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
- run: git show-ref | |
- uses: Swatinem/rust-cache@v2 | |
- uses: actions-rs/[email protected] | |
with: | |
crate: git-cz | |
version: latest | |
- name: Validate commit messages | |
run: git-cz check ${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }} | |
spell-check: | |
name: Spell Check | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Actions Repository | |
uses: actions/checkout@v2 | |
- name: Check Spelling | |
uses: crate-ci/typos@master |