Files
pezkuwi-telemetry/.github/workflows/backend.yml
T

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'