Fe overhaul docs #902
Workflow file for this run
This file contains hidden or 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: typescript | |
on: | |
pull_request: | |
paths: | |
- '.github/**' | |
- 'api/**' | |
- 'api-contracts/**' | |
- 'internal/**' | |
- 'pkg/**' | |
- 'sdks/typescript/**' | |
push: | |
branches: | |
- main | |
paths: | |
- 'sdks/typescript/**' | |
defaults: | |
run: | |
working-directory: ./sdks/typescript | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install pnpm | |
run: npm install -g pnpm@8 | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- name: Setup pnpm cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{ env.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
- name: Install dependencies | |
run: pnpm install | |
- name: Lint | |
run: pnpm lint:check | |
- name: Type check | |
run: npx tsc | |
test-unit: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install pnpm | |
run: npm install -g pnpm@8 | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- name: Setup pnpm cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{ env.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
- name: Install dependencies | |
run: pnpm install | |
- name: Unit tests | |
run: pnpm test:unit | |
test-e2e: | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Sync Submodule Branch | |
shell: bash | |
run: | | |
./branch-sync.sh | |
- name: Install Protoc | |
uses: arduino/setup-protoc@v3 | |
with: | |
version: '25.1' | |
- name: Install Task | |
uses: arduino/setup-task@v2 | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: '1.21' | |
- name: Install pnpm | |
run: npm install -g pnpm@8 | |
- name: Install Atlas | |
run: | | |
curl -sSf https://atlasgo.sh | sh | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- name: Setup pnpm cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{ env.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
- name: Compose | |
working-directory: . | |
run: docker compose up -d | |
- name: Install dependencies | |
run: pnpm install | |
- name: Generate | |
working-directory: . | |
run: | | |
export DATABASE_URL="postgresql://hatchet:[email protected]:5431/hatchet" | |
go run ./cmd/hatchet-migrate | |
task generate-go | |
- name: Setup | |
working-directory: . | |
run: | | |
export SEED_DEVELOPMENT=true | |
export SERVER_PORT=8080 | |
export SERVER_URL=http://localhost:8080 | |
export SERVER_AUTH_COOKIE_DOMAIN=localhost | |
export SERVER_AUTH_COOKIE_INSECURE=true | |
go run ./cmd/hatchet-admin quickstart | |
go run ./cmd/hatchet-engine --config ./generated/ & | |
go run ./cmd/hatchet-api --config ./generated/ & | |
sleep 30 | |
- name: E2E tests | |
run: | | |
cd ../.. | |
export HATCHET_CLIENT_TOKEN="$(go run ./cmd/hatchet-admin token create --config ./generated/ --tenant-id 707d0855-80ab-4e1f-a156-f1c4546cbf52)" | |
cd sdks/typescript | |
export HATCHET_CLIENT_TLS_ROOT_CA_FILE=../../certs/ca.cert | |
export NODE_TLS_REJECT_UNAUTHORIZED=0 | |
pnpm test:e2e | |
publish: | |
runs-on: ubuntu-latest | |
needs: [lint, test-unit, test-e2e] | |
if: github.ref == 'refs/heads/main' | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install pnpm | |
run: npm install -g pnpm@8 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: "20.x" | |
registry-url: "https://registry.npmjs.org" | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- name: Setup pnpm cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{ env.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
- name: Install dependencies | |
run: pnpm install | |
- name: Build and Publish SDK | |
run: | | |
VERSION=$(jq '.version' package.json) | |
CURRENT_NPM_VERSION=$(pnpm view @hatchet-dev/typescript-sdk version) | |
if [[ "$VERSION" == "$CURRENT_NPM_VERSION" ]]; then | |
echo "Version has not changed. Skipping publish." | |
exit 0 | |
fi | |
## If the version contains `alpha`, it's an alpha version | |
## and we should tag it as such.= | |
if [[ "$VERSION" == *alpha* ]]; then | |
pnpm publish:ci:alpha | |
else | |
pnpm publish:ci | |
fi | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} |