Debian bookworm ships with 1.63, and since the change is trivial, there's little reason to not support people running mempool on Debian.
103 lines
3.0 KiB
YAML
103 lines
3.0 KiB
YAML
name: CI Pipeline for the Backend and Frontend
|
|
|
|
on:
|
|
pull_request:
|
|
types: [opened, review_requested, synchronize]
|
|
|
|
jobs:
|
|
backend:
|
|
if: "!contains(github.event.pull_request.labels.*.name, 'ops') && !contains(github.head_ref, 'ops/')"
|
|
strategy:
|
|
matrix:
|
|
node: ["16", "17", "18", "20"]
|
|
flavor: ["dev", "prod"]
|
|
fail-fast: false
|
|
runs-on: "ubuntu-latest"
|
|
|
|
name: Backend (${{ matrix.flavor }}) - node ${{ matrix.node }}
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
path: ${{ matrix.node }}/${{ matrix.flavor }}
|
|
|
|
- name: Setup Node
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: ${{ matrix.node }}
|
|
registry-url: "https://registry.npmjs.org"
|
|
|
|
- name: Install 1.63.x Rust toolchain
|
|
uses: dtolnay/rust-toolchain@1.63
|
|
|
|
- name: Install
|
|
if: ${{ matrix.flavor == 'dev'}}
|
|
run: npm ci
|
|
working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/backend
|
|
|
|
- name: Install (Prod dependencies only)
|
|
if: ${{ matrix.flavor == 'prod'}}
|
|
run: npm ci --omit=dev --omit=optional
|
|
working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/backend
|
|
|
|
- name: Lint
|
|
if: ${{ matrix.flavor == 'dev'}}
|
|
run: npm run lint
|
|
working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/backend
|
|
|
|
- name: Unit Tests
|
|
if: ${{ matrix.flavor == 'dev'}}
|
|
run: npm run test:ci
|
|
working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/backend
|
|
|
|
- name: Build
|
|
run: npm run build
|
|
working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/backend
|
|
|
|
frontend:
|
|
if: "!contains(github.event.pull_request.labels.*.name, 'ops') && !contains(github.head_ref, 'ops/')"
|
|
strategy:
|
|
matrix:
|
|
node: ["16", "17", "18", "20"]
|
|
flavor: ["dev", "prod"]
|
|
fail-fast: false
|
|
runs-on: "ubuntu-latest"
|
|
|
|
name: Frontend (${{ matrix.flavor }}) - node ${{ matrix.node }}
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
path: ${{ matrix.node }}/${{ matrix.flavor }}
|
|
|
|
- name: Setup Node
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: ${{ matrix.node }}
|
|
registry-url: "https://registry.npmjs.org"
|
|
|
|
- name: Install (Prod dependencies only)
|
|
run: npm ci --omit=dev --omit=optional
|
|
if: ${{ matrix.flavor == 'prod'}}
|
|
working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/frontend
|
|
|
|
- name: Install
|
|
if: ${{ matrix.flavor == 'dev'}}
|
|
run: npm ci
|
|
working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/frontend
|
|
|
|
- name: Lint
|
|
if: ${{ matrix.flavor == 'dev'}}
|
|
run: npm run lint
|
|
working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/frontend
|
|
|
|
# - name: Test
|
|
# run: npm run test
|
|
|
|
- name: Build
|
|
run: npm run build
|
|
working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/frontend
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|