Skip to content

feat: add stellar contract dependencies and integration setup #346

feat: add stellar contract dependencies and integration setup

feat: add stellar contract dependencies and integration setup #346

Workflow file for this run

name: CI
on:
pull_request:
branches: [main, develop]
push:
branches: [main, develop]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
setup:
runs-on: ubuntu-latest
outputs:
web-changed: ${{ steps.changes.outputs.web }}
backend-changed: ${{ steps.changes.outputs.backend }}
contracts-changed: ${{ steps.changes.outputs.contracts }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Detect changes
uses: dorny/paths-filter@v3
id: changes
with:
filters: |
web:
- 'apps/web/**'
backend:
- 'apps/backend/**'
contracts:
- 'apps/stellar-contracts/**'
lint-and-format:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Check formatting and linting
run: bun run format-and-lint
test-web:
runs-on: ubuntu-latest
needs: [setup, lint-and-format]
if: needs.setup.outputs.web-changed == 'true'
defaults:
run:
working-directory: ./apps/web
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install
- name: Lint Next.js
run: bun run lint
- name: Build
run: bun run build
test-backend:
runs-on: ubuntu-latest
needs: [setup, lint-and-format]
if: needs.setup.outputs.backend-changed == 'true'
defaults:
run:
working-directory: ./apps/backend
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install
- name: Build backend
run: bun run build || echo "Build completed"
test-contracts:
runs-on: ubuntu-latest
needs: [setup, lint-and-format]
if: needs.setup.outputs.contracts-changed == 'true'
defaults:
run:
working-directory: ./apps/stellar-contracts
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install
- name: Build contracts
run: bun run build || echo "Build completed"