Skip to content

SY-1120 Server-Side Downsampling #1492

SY-1120 Server-Side Downsampling

SY-1120 Server-Side Downsampling #1492

name: "Test - Freighter"
on:
pull_request:
branches:
- rc
- main
push:
branches:
- rc
- main
workflow_dispatch:
permissions:
contents: write
packages: write
jobs:
test-go:
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:
- "freighter/go/**"
- "freighter/integration/**"
- ".github/workflows/test.freighter.yaml"
- name: Set up Go
uses: actions/setup-go@v5
if: steps.filter.outputs.changed == 'true'
with:
go-version-file: "go.work"
cache-dependency-path: |
"alamos/go/go.sum"
"aspen/go.sum"
"cesium/go.sum"
"freighter/go/go.sum"
"synnax/go.sum"
"x/go/go.sum"
- name: Test
if: steps.filter.outputs.changed == 'true'
run: go test -v ./... --covermode=atomic --coverprofile=coverage.txt --ginkgo.label-filter="!integration && !performance"
working-directory: ./freighter/go
- name: Upload Coverage
if: steps.filter.outputs.changed == 'true'
uses: codecov/codecov-action@v3
with:
directory: ./freighter/go
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
flags: freightergo
build-integration-image:
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:
- "freighter/integration/**"
- ".github/workflows/test.freighter.yaml"
- name: Login to Github Container Registry
if: steps.filter.outputs.changed == 'true'
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Download latest earthly
if: steps.filter.outputs.changed == 'true'
uses: earthly/actions-setup@v1
- name: Build Image
if: steps.filter.outputs.changed == 'true'
run: earthly --push +docker
working-directory: ./freighter/integration
test-python:
needs: [build-integration-image]
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:
- "freighter/py/**"
- "freighter/integration/**"
- ".github/workflows/test.freighter.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: ./freighter/py
- name: Test
if: steps.filter.outputs.changed == 'true'
run: pytest --cov=freighter --cov-report xml:coverage.xml
working-directory: ./freighter/py
- name: Upload Coverage
if: steps.filter.outputs.changed == 'true'
uses: codecov/codecov-action@v3
with:
directory: ./freighter/py
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
flags: freighterpy
services:
integration:
image: ghcr.io/synnaxlabs/freighter-go-integration:latest
credentials:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
ports:
- 8080:8080
test-typescript:
needs: [build-integration-image]
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:
- "freighter/ts/**"
- "freighter/integration/**"
- ".github/workflows/test.freighter.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
- name: Install Dependencies
if: steps.filter.outputs.changed == 'true'
run: pnpm install --frozen-lockfile
- name: Test
if: steps.filter.outputs.changed == 'true'
run: pnpm cov:freighter
- name: Upload Coverage
if: steps.filter.outputs.changed == 'true'
uses: codecov/codecov-action@v3
with:
directory: ./freighter/ts
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
flags: freighterts
services:
integration:
image: ghcr.io/synnaxlabs/freighter-go-integration:latest
credentials:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
ports:
- 8080:8080
test-cpp:
runs-on: windows-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: Run Tests
run: bazel test //freighter/cpp:freighter_test
shell: bash