From fe13a2836fce478e7cd04ffd0f562f19caebf727 Mon Sep 17 00:00:00 2001 From: Shehab Ali Tweel Date: Fri, 18 Apr 2025 10:21:15 +0200 Subject: [PATCH] optimize workflows Linting, building and schema checking are now seperate jobs, able to be run in parallel --- .github/workflows/backend.yml | 76 ++++++++++++++++++++++++---------- .github/workflows/frontend.yml | 8 +++- 2 files changed, 62 insertions(+), 22 deletions(-) diff --git a/.github/workflows/backend.yml b/.github/workflows/backend.yml index 0c1327f4..3a565fec 100644 --- a/.github/workflows/backend.yml +++ b/.github/workflows/backend.yml @@ -4,20 +4,63 @@ on: push: branches: - main + paths: + - 'backend/**' + - '.github/workflows/backend.yml' pull_request: branches: - main paths: - 'backend/**' + - '.github/workflows/backend.yml' env: CARGO_TERM_COLOR: always jobs: + build: runs-on: ubuntu-latest - container: rust:1.86-bullseye + + defaults: + run: + working-directory: ./backend + + steps: + - uses: actions/checkout@v4 + + - name: Install Rust toolchain + uses: actions-rust-lang/setup-rust-toolchain@v1 + + - name: Build + run: cargo build + + - name: Run tests + run: cargo test + + lint: + runs-on: ubuntu-latest + + defaults: + run: + working-directory: ./backend + + steps: + - uses: actions/checkout@v4 + + - name: Install Rust toolchain + uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + components: clippy + + - name: Check clippy for new warnings + run: cargo clippy + + + schema-check: + runs-on: ubuntu-latest + # container: rust:1.86-bullseye defaults: run: working-directory: ./backend @@ -28,6 +71,8 @@ jobs: env: POSTGRES_USER: arcadia POSTGRES_PASSWORD: password + ports: + - 5432:5432 options: >- --health-cmd pg_isready --health-interval 10s @@ -35,28 +80,17 @@ jobs: --health-retries 5 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v4 - - name: Install Rust toolchain - uses: actions-rust-lang/setup-rust-toolchain@v1 - with: - components: clippy + - name: Install Rust toolchain + uses: actions-rust-lang/setup-rust-toolchain@v1 - - name: Check clippy for new warnings - run: cargo clippy + - name: Setup env + run: cp -f .env.ci .env - - name: Setup env - run: cp -f .env.ci .env + - name: Install sqlx + run: cargo install sqlx-cli - - name: Build - run: cargo build - - - name: Run tests - run: cargo test - - - name: Install sqlx - run: cargo install sqlx-cli - - - name: Ensure schema and query metadata are in sync - run: cargo sqlx prepare --check + - name: Ensure schema and query metadata are in sync + run: cargo sqlx prepare --check diff --git a/.github/workflows/frontend.yml b/.github/workflows/frontend.yml index 9137c117..5a9adf4a 100644 --- a/.github/workflows/frontend.yml +++ b/.github/workflows/frontend.yml @@ -4,14 +4,18 @@ on: push: branches: - main + paths: + - 'frontend/**' + - '.github/workflows/frontend.yml' pull_request: branches: - main paths: - 'frontend/**' + - '.github/workflows/frontend.yml' jobs: - check-lint-format: + lint: runs-on: ubuntu-latest defaults: run: @@ -28,5 +32,7 @@ jobs: - run: npm ci - run: npm run lint + continue-on-error: true - run: npm run check-format + continue-on-error: true