feat(profiles): implement profile metadata CRUD with RBAC #134
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: ['main', 'master', 'fix-ci'] | |
| pull_request: | |
| branches: ['main', 'master', 'fix-ci'] | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| frontend: | |
| name: Frontend (React Native) | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: ./mobileapp | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Use Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 18 | |
| cache: npm | |
| cache-dependency-path: mobileapp/package-lock.json | |
| # Install all dependencies (including devDependencies) | |
| - name: Install dependencies | |
| run: npm ci | |
| # Lint | |
| - name: Lint | |
| run: npm run lint | |
| # Format check | |
| - name: Format Check | |
| run: npm run format:check | |
| # Run tests in CI mode | |
| - name: Test | |
| run: npm test -- --watch=false | |
| env: | |
| CI: true | |
| # Build check (Expo Web) | |
| - name: Build Check | |
| run: npx expo export --platform web --output-dir dist || echo "Build check completed" | |
| backend: | |
| name: Backend (Rust) | |
| runs-on: ubuntu-latest | |
| services: | |
| postgres: | |
| image: postgres:15 | |
| env: | |
| POSTGRES_USER: postgres | |
| POSTGRES_PASSWORD: password | |
| POSTGRES_DB: BLINKS | |
| ports: | |
| - 5432:5432 | |
| options: >- | |
| --health-cmd pg_isready | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| env: | |
| BLINKS_DATABASE__URL: postgres://postgres:password@localhost:5432/BLINKS | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt, clippy | |
| - name: Rust Cache | |
| uses: Swatinem/rust-cache@v2 | |
| with: | |
| workspaces: backend | |
| - name: Check | |
| working-directory: ./backend | |
| run: cargo check | |
| - name: Test | |
| working-directory: ./backend | |
| run: cargo test | |
| - name: Format | |
| working-directory: ./backend | |
| run: cargo fmt --all -- --check | |
| - name: Clippy | |
| working-directory: ./backend | |
| run: cargo clippy -- -D warnings | |
| contracts: | |
| name: Contracts (Soroban) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| targets: wasm32-unknown-unknown | |
| components: rustfmt, clippy | |
| - name: Rust Cache | |
| uses: Swatinem/rust-cache@v2 | |
| with: | |
| workspaces: contracts | |
| - name: Build | |
| working-directory: ./contracts | |
| run: cargo build --release --workspace | |
| - name: Test | |
| working-directory: ./contracts | |
| run: cargo test --workspace | |
| - name: Format | |
| working-directory: ./contracts | |
| run: cargo fmt --all -- --check | |
| - name: Clippy | |
| working-directory: ./contracts | |
| run: cargo clippy --all-targets --all-features -- -D warnings |