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 e2e -- --ignored