mirror of
https://github.com/pezkuwichain/pezkuwi-telemetry.git
synced 2026-04-22 10:18:03 +00:00
150 lines
3.5 KiB
YAML
150 lines
3.5 KiB
YAML
name: Backend CI
|
|
|
|
on:
|
|
push:
|
|
paths:
|
|
- '.github/workflows/backend.yml'
|
|
- 'backend/**'
|
|
- '!frontend/**'
|
|
|
|
env:
|
|
CARGO_TERM_COLOR: always
|
|
|
|
defaults:
|
|
run:
|
|
working-directory: ./backend
|
|
|
|
jobs:
|
|
build:
|
|
name: Check Code
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2.3.4
|
|
|
|
- name: Install Rust stable toolchain
|
|
uses: actions-rs/toolchain@v1.0.7
|
|
with:
|
|
profile: minimal
|
|
toolchain: stable
|
|
override: true
|
|
|
|
- name: Rust Cache
|
|
uses: Swatinem/rust-cache@v1.3.0
|
|
with:
|
|
working-directory: backend
|
|
|
|
- name: Build
|
|
run: cargo check --all-targets
|
|
|
|
docker:
|
|
name: Push tagged images to docker
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2.3.4
|
|
|
|
- name: Login to Dockerhub
|
|
uses: docker/login-action@v1
|
|
with:
|
|
username: ${{ secrets.DOCKER_USERNAME }}
|
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
|
|
- name: Build and push template image for tagged commit
|
|
uses: docker/build-push-action@v2 # https://github.com/docker/build-push-action
|
|
with:
|
|
context: './backend'
|
|
push: ${{ startsWith(github.ref, 'refs/tags/') }}
|
|
tags: parity/substrate-telemetry-backend:latest
|
|
# add_git_labels: true
|
|
|
|
fmt:
|
|
name: Run rustfmt
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2.3.4
|
|
|
|
- name: Install Rust stable toolchain
|
|
uses: actions-rs/toolchain@v1.0.7
|
|
with:
|
|
profile: minimal
|
|
toolchain: stable
|
|
override: true
|
|
components: clippy, rustfmt
|
|
|
|
- name: Rust Cache
|
|
uses: Swatinem/rust-cache@v1.3.0
|
|
with:
|
|
working-directory: backend
|
|
|
|
- name: Cargo fmt
|
|
run: cargo fmt --all -- --check
|
|
|
|
docs:
|
|
name: Check Documentation
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2.3.4
|
|
|
|
- name: Install Rust stable toolchain
|
|
uses: actions-rs/toolchain@v1.0.7
|
|
with:
|
|
profile: minimal
|
|
toolchain: stable
|
|
override: true
|
|
|
|
- name: Rust Cache
|
|
uses: Swatinem/rust-cache@v1.3.0
|
|
with:
|
|
working-directory: backend
|
|
|
|
- name: Check internal documentation links
|
|
run: RUSTDOCFLAGS="--deny broken_intra_doc_links" cargo doc --verbose --workspace --no-deps --document-private-items
|
|
|
|
tests:
|
|
name: Run tests
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2.3.4
|
|
|
|
- name: Install Rust stable toolchain
|
|
uses: actions-rs/toolchain@v1.0.7
|
|
with:
|
|
profile: minimal
|
|
toolchain: stable
|
|
override: true
|
|
|
|
- name: Rust Cache
|
|
uses: Swatinem/rust-cache@v1.3.0
|
|
with:
|
|
working-directory: backend
|
|
|
|
- name: Cargo test
|
|
run: cargo test --verbose --jobs 1
|
|
|
|
e2e:
|
|
name: Run potentially brittle E2E tests
|
|
continue-on-error: true
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2.3.4
|
|
|
|
- name: Install Rust stable toolchain
|
|
uses: actions-rs/toolchain@v1.0.7
|
|
with:
|
|
profile: minimal
|
|
toolchain: stable
|
|
override: true
|
|
|
|
- name: Rust Cache
|
|
uses: Swatinem/rust-cache@v1.3.0
|
|
with:
|
|
working-directory: backend
|
|
|
|
- name: Cargo test
|
|
run: cargo test --verbose --jobs 1 --features e2e 'e2e'
|