Skip to content

[FER-3590] Design wire tests #8657

[FER-3590] Design wire tests

[FER-3590] Design wire tests #8657

Workflow file for this run

name: ci
on:
push:
branches:
- main
pull_request:
branches:
- main
# Cancel previous workflows on previous push
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- name: Check dependencies
run: pnpm depcheck
- name: Lint
run: pnpm lint:style
- name: Generate JSON Schema
run: pnpm jsonschema
- name: Format
run: pnpm format:check
- name: Ensure no changes to git-tracked files
run: git --no-pager diff --exit-code
compile:
runs-on: CLI
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- name: Compile
run: pnpm compile
eslint:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- name: lint:eslint
run: pnpm lint:eslint
test:
runs-on: Test
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- uses: bufbuild/[email protected]
with:
github_token: ${{ github.token }}
- uses: actions/setup-go@v5
with:
go-version: "stable"
- name: Install protoc-gen-openapi
run: go install github.com/google/gnostic/cmd/[email protected]
- name: Compile
run: pnpm compile
- name: Run tests
run: pnpm test
- name: Ensure no changes to git-tracked files
run: git --no-pager diff --exit-code
ete-tests:
runs-on: CLI
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- name: Compile
run: pnpm compile
- name: Run ETE tests
env:
FERN_ORG_TOKEN_DEV: ${{ secrets.FERN_ORG_TOKEN_DEV }}
run: |
FERN_TOKEN=${{ secrets.FERN_ORG_TOKEN_DEV }} pnpm test:ete
- name: Ensure no changes to git-tracked files
run: git --no-pager diff --exit-code
live-test-dev:
environment: Fern Dev
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- name: Check API definition is valid
env:
FORCE_COLOR: "2"
FERN_ORG_TOKEN_DEV: ${{ secrets.FERN_ORG_TOKEN_DEV }}
AUTH0_DOMAIN: ${{ secrets.AUTH0_DOMAIN }}
AUTH0_CLIENT_ID: ${{ secrets.AUTH0_CLIENT_ID }}
run: |
pnpm --filter @fern-api/cli dist:cli:dev
cli_path="$(pwd)/packages/cli/cli/dist/dev/cli.cjs"
./scripts/live-test.sh "$cli_path" "$FERN_ORG_TOKEN_DEV"
live-test-dev-windows:
environment: Fern Dev
if: github.ref == 'refs/heads/main'
runs-on: windows-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "20.x"
- name: Check API definition is valid
env:
FORCE_COLOR: "2"
FERN_ORG_TOKEN_DEV: ${{ secrets.FERN_ORG_TOKEN_DEV }}
AUTH0_DOMAIN: ${{ secrets.AUTH0_DOMAIN }}
AUTH0_CLIENT_ID: ${{ secrets.AUTH0_CLIENT_ID }}
run: |
pnpm --filter @fern-api/cli dist:cli:dev
$cliPath = Join-Path $env:GITHUB_WORKSPACE "packages\cli\cli\dist\dev\cli.cjs"
if (-not (Test-Path $cliPath)) {
Write-Error "CLI path does not exist: $cliPath"
exit 1
}
$scriptPath = Join-Path $env:GITHUB_WORKSPACE "scripts\live-test.ps1"
& $scriptPath -cli_path $cliPath -token $env:FERN_ORG_TOKEN_DEV
ts-generator-changes:
runs-on: ubuntu-latest
outputs:
typescript: ${{ steps.filter.outputs.typescript }}
steps:
- uses: actions/checkout@v2
- uses: dorny/paths-filter@v2
id: filter
with:
filters: |
typescript:
- 'generators/typescript/sdk/**'
node-version-tests:
runs-on: ubuntu-latest
needs: ts-generator-changes
if: ${{ needs.changes.outputs.typescript == 'true' }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- name: Load NVM
run: |
source /home/runner/.nvm/nvm.sh
shell: bash
- name: Run file tests
run: ./scripts/node-all-versions-test.sh
- name: Ensure no changes to git-tracked files
run: git --no-pager diff --exit-code
cloudflare-startup-tests:
runs-on: ubuntu-latest
needs: ts-generator-changes
if: ${{ needs.changes.outputs.typescript == 'true' }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Run cloudflare startup test
run: ./scripts/cloudflare-startup-test.sh
- name: Ensure no changes to git-tracked files
run: git --no-pager diff --exit-code
browser-startup-tests:
runs-on: ubuntu-latest
needs: ts-generator-changes
if: ${{ needs.changes.outputs.typescript == 'true' }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Run browser startup test
run: ./scripts/browser-startup-test.sh
- name: Ensure no changes to git-tracked files
run: git --no-pager diff --exit-code