chore(seed): setup a validate changelog file #6253
Workflow file for this run
This file contains 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 | |
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 (dev) JSON Schema | |
# run: pnpm generate-json-schema:dev | |
- 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 | |
validate-changelogs: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Install | |
uses: ./.github/actions/install | |
- name: Build Seed | |
run: pnpm seed:build | |
- name: Validate CLI Changelogs | |
run: pnpm seed validate cli | |
- name: Validate FastAPI | |
run: pnpm seed validate generator fastapi | |
- name: Validate Pydantic | |
run: pnpm seed validate generator pydantic | |
- name: Validate Python SDK | |
run: pnpm seed validate generator python-sdk | |
- name: Validate Go SDK | |
run: pnpm seed validate generator go-sdk | |
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/bundle.cjs" | |
./scripts/live-test.sh "$cli_path" "$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 |