Skip to content

SY-4331: Move Channel Functionality to the Service Layer #9365

SY-4331: Move Channel Functionality to the Service Layer

SY-4331: Move Channel Functionality to the Service Layer #9365

name: Test - Freighter (Python & TypeScript)
on:
pull_request:
paths:
- .github/actions/test-python/**
- .github/actions/test-typescript/**
- .github/workflows/test.freighter.yaml
- alamos/go/**
- alamos/py/**
- alamos/ts/**
- codecov.yaml
- configs/eslint/**
- configs/ts/**
- configs/vite/**
- freighter/go/**
- freighter/integration/**
- freighter/py/**
- freighter/ts/**
- package.json
- pnpm-lock.yaml
- pnpm-workspace.yaml
- pyproject.toml
- uv.lock
- uv.toml
- turbo.json
- x/go/**
- x/ts/**
push:
branches:
- main
- rc
paths:
- .github/actions/test-python/**
- .github/actions/test-typescript/**
- .github/workflows/test.freighter.yaml
- alamos/go/**
- alamos/py/**
- alamos/ts/**
- codecov.yaml
- configs/eslint/**
- configs/ts/**
- configs/vite/**
- freighter/go/**
- freighter/integration/**
- freighter/py/**
- freighter/ts/**
- package.json
- pnpm-lock.yaml
- pnpm-workspace.yaml
- pyproject.toml
- uv.lock
- uv.toml
- turbo.json
- x/go/**
- x/ts/**
workflow_dispatch:
jobs:
changes:
name: Changes
runs-on: ubuntu-latest
outputs:
integration: ${{ steps.filter.outputs.integration }}
py: ${{ steps.filter.outputs.py }}
ts: ${{ steps.filter.outputs.ts }}
steps:
- name: Checkout Repository
uses: actions/checkout@v7
- name: Diff Changes
uses: dorny/paths-filter@v4
id: filter
with:
base: ${{ github.ref }}
filters: |
server: &server
- .github/workflows/test.freighter.yaml
- alamos/go/**
- freighter/go/**
- freighter/integration/**
- x/go/**
py:
- *server
- .github/actions/test-python/**
- alamos/py/**
- codecov.yaml
- freighter/py/**
- pyproject.toml
- uv.lock
- uv.toml
ts:
- *server
- .github/actions/test-typescript/**
- alamos/ts/**
- codecov.yaml
- configs/eslint/**
- configs/ts/**
- configs/vite/**
- freighter/ts/**
- package.json
- pnpm-lock.yaml
- pnpm-workspace.yaml
- turbo.json
- x/ts/**
server:
needs: changes
if: needs.changes.outputs.py == 'true' || needs.changes.outputs.ts == 'true'
uses: ./.github/workflows/build.docker.yaml
permissions:
packages: write
with:
module: freighter/integration
tag: ghcr.io/synnaxlabs/freighter-go-integration:${{ github.sha }}
py:
name: Test - Python
needs: [changes, server]
if: needs.changes.outputs.py == 'true'
runs-on: ubuntu-latest
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
services:
integration:
image: ghcr.io/synnaxlabs/freighter-go-integration:${{ github.sha }}
credentials:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
ports:
- 8080:8080
steps:
- name: Checkout repository
uses: actions/checkout@v7
- name: Test Python
uses: ./.github/actions/test-python
with:
directory: freighter/py
coverage: true
coverage_module: freighter
coverage_flag: freighter-py
ts:
name: Test - TypeScript
needs: [changes, server]
if: needs.changes.outputs.ts == 'true'
runs-on: ubuntu-latest
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ vars.TURBO_TEAM }}
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
services:
integration:
image: ghcr.io/synnaxlabs/freighter-go-integration:${{ github.sha }}
credentials:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
ports:
- 8080:8080
steps:
- name: Checkout repository
uses: actions/checkout@v7
- name: Test TypeScript
uses: ./.github/actions/test-typescript
with:
package: freighter
coverage_flag: freighter-ts
directory: freighter/ts