Skip to content

[ops/ts] - updated console CI #1409

[ops/ts] - updated console CI

[ops/ts] - updated console CI #1409

Workflow file for this run

name: "Test - Client"
on:
pull_request:
branches:
- rc
- main
push:
branches:
- rc
- main
workflow_dispatch:
permissions:
contents: write
packages: write
jobs:
setup:
runs-on: ubuntu-latest
outputs:
changed: ${{ steps.filter.outputs.changed }}
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Diff Changes
uses: dorny/paths-filter@v3
id: filter
with:
filters: |
changed:
- "client/**"
- "freighter/py/**"
- "synnax/**"
- "cesium/**"
- "aspen/**"
- "x/**"
- "freighter/**"
- ".github/workflows/test.client.yaml"
build-server:
needs: setup
runs-on: ubuntu-latest
if: needs.setup.outputs.changed == 'true'
env:
GITHUB_SHA: ${{ github.sha }}
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Login to Github Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Download Latest Earthly
uses: earthly/actions-setup@v1
- name: Build Image
run: earthly --push +docker -tag=${GITHUB_SHA} -driver=false
working-directory: ./synnax
- name: Push to Github Container Registry
run: docker push ghcr.io/synnaxlabs/synnax:${GITHUB_SHA}
test-python:
needs: [setup, build-server]
runs-on: ubuntu-latest
if: needs.setup.outputs.changed == 'true'
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Diff Changes
uses: dorny/paths-filter@v3
id: filter
with:
filters: |
changed:
- "client/py/**"
- "freighter/py/**"
- "synnax/**"
- "cesium/**"
- "aspen/**"
- "x/**"
- "freighter/**"
- ".github/workflows/test.client.yaml"
- name: Set up Python
if: steps.filter.outputs.changed == 'true'
uses: actions/setup-python@v4
with:
python-version: "3.12"
- name: Install Poetry
if: steps.filter.outputs.changed == 'true'
run: |
pip install poetry
poetry config virtualenvs.create false
poetry install
working-directory: ./client/py
- name: Test
run: pytest --cov=freighter --cov-report xml:coverage.xml
if: steps.filter.outputs.changed == 'true'
working-directory: ./client/py
- name: Upload Coverage
if: steps.filter.outputs.changed == 'true'
uses: codecov/codecov-action@v3
with:
directory: ./client/py
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
flags: clientpy
services:
synnax:
image: ghcr.io/synnaxlabs/synnax:${{ github.sha }}
env:
SYNNAX_LISTEN: localhost:9090
SYNNAX_VERBOSE: true
SYNNAX_INSECURE: true
SYNNAX_MEM: true
SYNNAX_LICENSE_KEY: ${{ secrets.SYNNAX_LICENSE_KEY }}
credentials:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
ports:
- 9090:9090
test-typescript:
needs: [setup, build-server]
if: needs.setup.outputs.changed == 'true'
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Diff Changes
uses: dorny/paths-filter@v3
id: filter
with:
filters: |
changed:
- "client/ts/**"
- "freighter/ts/**"
- "synnax/**"
- "cesium/**"
- "aspen/**"
- "x/**"
- ".github/workflows/test.client.yaml"
- name: Setup pnpm
if: steps.filter.outputs.changed == 'true'
uses: pnpm/action-setup@v3
with:
version: 9
- name: Setup Node
if: steps.filter.outputs.changed == 'true'
uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm
- name: Install Dependencies
if: steps.filter.outputs.changed == 'true'
run: pnpm i
- name: Test
if: steps.filter.outputs.changed == 'true'
run: pnpm cov:client
- name: Upload Coverage
if: steps.filter.outputs.changed == 'true'
uses: codecov/codecov-action@v3
with:
directory: ./client/ts
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
flags: clientts
services:
synnax:
image: ghcr.io/synnaxlabs/synnax:${{ github.sha }}
env:
SYNNAX_LISTEN: localhost:9090
SYNNAX_VERBOSE: true
SYNNAX_INSECURE: true
SYNNAX_MEM: true
SYNNAX_LICENSE_KEY: ${{ secrets.SYNNAX_LICENSE_KEY }}
credentials:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
ports:
- 9090:9090
test-cpp:
needs: [setup, build-server]
if: needs.setup.outputs.changed == 'true'
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Setup Bazel
uses: bazel-contrib/setup-bazel@0.8.1
with:
bazelisk-cache: true
disk-cache: ${{ github.workflow }}
repository-cache: true
- name: Test
run: bazel test --test_output=all //client/... --nocache_test_results
services:
synnax:
image: ghcr.io/synnaxlabs/synnax:${{ github.sha }}
env:
SYNNAX_LISTEN: localhost:9090
SYNNAX_VERBOSE: true
SYNNAX_INSECURE: true
SYNNAX_MEM: true
SYNNAX_LICENSE_KEY: ${{ secrets.SYNNAX_LICENSE_KEY }}
credentials:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
ports:
- 9090:9090