Skip to content

Commit

Permalink
chore: refactor to turbo (#3447)
Browse files Browse the repository at this point in the history
Replace nx with turbo.

Closes #3531.
  • Loading branch information
skyrpex authored Aug 3, 2023
1 parent 03d68be commit 6880aef
Show file tree
Hide file tree
Showing 101 changed files with 5,786 additions and 5,857 deletions.
1 change: 1 addition & 0 deletions .cargo/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/wasi-sdk-*/
Empty file removed .clippy.toml
Empty file.
221 changes: 49 additions & 172 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ jobs:
runs-on: ubuntu-latest
env:
CARGO_TERM_COLOR: always
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ vars.TURBO_TEAM }}
outputs:
version: ${{ fromJson(steps.changelog.outputs.data).newVersion }}
last-version: ${{ fromJson(steps.changelog.outputs.data).lastVersion }}
Expand Down Expand Up @@ -74,61 +76,22 @@ jobs:
GENERATE_VERSION: ${{ github.event_name != 'push' || github.repository != 'winglang/wing' }}
run: pnpm changelog

- name: Build
- name: Build and Package
run: pnpm build:ci
env:
SEGMENT_WRITE_KEY: ${{ secrets.SEGMENT_WRITE_KEY }}

- name: Package
run: pnpm package:ci

- name: Upload Wing CLI
uses: actions/upload-artifact@v3
with:
name: wing
path: apps/wing/*.tgz

- name: Upload Wing Console Server
uses: actions/upload-artifact@v3
with:
name: wingconsoleserver
path: apps/wing-console/console/server/*.tgz

- name: Upload Wing Console Design System
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: wingconsoledesignsystem
path: apps/wing-console/console/design-system/*.tgz

- name: Upload Wing Console UI
uses: actions/upload-artifact@v3
with:
name: wingconsoleui
path: apps/wing-console/console/ui/*.tgz

- name: Upload Wing Console App
uses: actions/upload-artifact@v3
with:
name: wingconsoleapp
path: apps/wing-console/console/app/*.tgz

- name: Upload WingSDK
uses: actions/upload-artifact@v3
with:
name: wingsdk
path: libs/wingsdk/*.tgz

- name: Upload WingCompiler
uses: actions/upload-artifact@v3
with:
name: wingcompiler
path: libs/wingcompiler/*.tgz
name: dist
path: dist/*.tgz

- name: Upload WingC WASM
uses: actions/upload-artifact@v3
with:
name: wingc
path: target/wasm32-wasi/release/wingc.wasm
path: libs/wingcompiler/wingc.wasm

- name: Derive appropriate SHAs for base and head for `nx affected` commands
id: setSHAs
Expand All @@ -138,9 +101,9 @@ jobs:
id: git-diff-vscode-wing
run: |
if git diff --quiet ${{ steps.setSHAs.outputs.base }} ${{ github.sha }} -- apps/vscode-wing; then
echo "::set-output name=diff::false"
echo "diff=false" >> "$GITHUB_OUTPUT"
else
echo "::set-output name=diff::true"
echo "diff=true" >> "$GITHUB_OUTPUT"
fi
- name: Upload Extension
Expand All @@ -158,14 +121,15 @@ jobs:
name: docs
path: docs.tgz

unit-tests:
name: "Unit Tests"
test:
name: Test
timeout-minutes: 30
runs-on: ubuntu-latest
env:
# Testing runs out of memory without this
NODE_OPTIONS: "--max-old-space-size=4096"
CARGO_TERM_COLOR: always
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ vars.TURBO_TEAM }}

steps:
- name: Checkout
uses: actions/checkout@v3
Expand Down Expand Up @@ -198,58 +162,33 @@ jobs:
- name: Install Dependencies
run: pnpm install --frozen-lockfile

- name: Install Playwright
working-directory: apps/wing-console/console/app
run: pnpm exec playwright install --with-deps

- name: Test
run: pnpm test:ci

- uses: actions/upload-artifact@v3
if: always()
with:
name: playwright-report
path: apps/wing-console/console/app/playwright-report/
retention-days: 30

- name: Create git patch
id: diff
run: |
git add --all
git diff --staged --binary --patch > build.diff
if [ -s build.diff ]; then
echo "Diff found, creating a patch to apply later"
cat build.diff
echo "diff=true" >> $GITHUB_OUTPUT
fi
- name: Upload Diff
if: steps.diff.outputs.diff == 'true'
uses: actions/upload-artifact@v3
with:
name: build.diff
path: build.diff

benchmarks:
name: E2E Benchmarks
benchmark:
name: Benchmark
runs-on: ubuntu-latest
needs:
- build
env:
HANGAR_WING_SPEC: "file:${{ github.workspace }}/wing/winglang-${{ needs.build.outputs.version }}.tgz"
HANGAR_WINGCONSOLE_APP_SPEC: "file:${{ github.workspace }}/wingconsoleapp/wingconsole-app-${{ needs.build.outputs.version }}.tgz"
HANGAR_WINGCONSOLE_SERVER_SPEC: "file:${{ github.workspace }}/wingconsoleserver/wingconsole-server-${{ needs.build.outputs.version }}.tgz"
HANGAR_WINGCONSOLE_DESIGN_SYSTEM_SPEC: "file:${{ github.workspace }}/wingconsoledesignsystem/wingconsole-design-system-${{ needs.build.outputs.version }}.tgz"
HANGAR_WINGCONSOLE_UI_SPEC: "file:${{ github.workspace }}/wingconsoleui/wingconsole-ui-${{ needs.build.outputs.version }}.tgz"
HANGAR_WINGCOMPILER_SPEC: "file:${{ github.workspace }}/wingcompiler/winglang-compiler-${{ needs.build.outputs.version }}.tgz"
HANGAR_WINGSDK_SPEC: "file:${{ github.workspace }}/wingsdk/winglang-sdk-${{ needs.build.outputs.version }}.tgz"
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Download Build Artifacts
uses: actions/download-artifact@v2
- name: Download Dist Artifacts
uses: actions/download-artifact@v3
with:
name: dist
path: dist

- name: Setup pnpm
uses: pnpm/[email protected]
with:
version: ${{ env.PNPM_VERSION }}

- name: Setup Node
uses: actions/setup-node@v3
with:
Expand All @@ -260,8 +199,8 @@ jobs:
run: pnpm install --ignore-scripts --frozen-lockfile --filter hangar --filter examples-valid --filter examples-invalid

- name: Run E2E Benchmarks
working-directory: tools/hangar
run: pnpm bench
working-directory: tools/hangar

- name: Upload Report JSON
uses: actions/upload-artifact@v3
Expand All @@ -272,8 +211,9 @@ jobs:
- name: Create Markdown report
run: node scripts/benchmark_json_to_table.mjs

e2e:
e2e-test:
name: "E2E / ${{ matrix.runner }} + Node${{ matrix.node }} [${{ matrix.shard }}]"
runs-on: "${{ matrix.runner }}-latest"
needs:
- build
strategy:
Expand All @@ -293,23 +233,11 @@ jobs:
- runner: ubuntu
node: "20"
full_run: false
runs-on: "${{ matrix.runner }}-latest"
env:
HANGAR_WING_SPEC: "file:${{ github.workspace }}/target/wing/winglang-${{ needs.build.outputs.version }}.tgz"
HANGAR_WINGCONSOLE_APP_SPEC: "file:${{ github.workspace }}/target/wingconsoleapp/wingconsole-app-${{ needs.build.outputs.version }}.tgz"
HANGAR_WINGCONSOLE_SERVER_SPEC: "file:${{ github.workspace }}/target/wingconsoleserver/wingconsole-server-${{ needs.build.outputs.version }}.tgz"
HANGAR_WINGCONSOLE_DESIGN_SYSTEM_SPEC: "file:${{ github.workspace }}/target/wingconsoledesignsystem/wingconsole-design-system-${{ needs.build.outputs.version }}.tgz"
HANGAR_WINGCONSOLE_UI_SPEC: "file:${{ github.workspace }}/target/wingconsoleui/wingconsole-ui-${{ needs.build.outputs.version }}.tgz"
HANGAR_WINGCOMPILER_SPEC: "file:${{ github.workspace }}/target/wingcompiler/winglang-compiler-${{ needs.build.outputs.version }}.tgz"
HANGAR_WINGSDK_SPEC: "file:${{ github.workspace }}/target/wingsdk/winglang-sdk-${{ needs.build.outputs.version }}.tgz"
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Download Build Artifacts
uses: actions/download-artifact@v3
with:
path: target
fetch-depth: 1

- name: Setup pnpm
uses: pnpm/[email protected]
Expand All @@ -322,10 +250,16 @@ jobs:
cache: "pnpm"
node-version: ${{ matrix.node }}

- name: Install Dependencies
run: pnpm install --ignore-scripts --frozen-lockfile --filter hangar --filter examples-valid --filter examples-invalid
- name: Download Dist Artifacts
uses: actions/download-artifact@v3
with:
name: dist
path: dist

- name: Install dependencies
run: pnpm install --frozen-lockfile --ignore-scripts --filter hangar --filter examples-valid --filter examples-invalid

- name: Run E2E Tests
- name: Run Hangar Tests
working-directory: tools/hangar
run: |
pnpm test:generate
Expand All @@ -346,6 +280,7 @@ jobs:
echo "diff=true" >> $GITHUB_OUTPUT
echo "diff_name=$DIFF_NAME" >> $GITHUB_OUTPUT
fi
- name: Upload mutation
if: matrix.runner == 'ubuntu' && matrix.node == '18' && steps.diff.outputs.diff == 'true'
uses: actions/upload-artifact@v3
Expand All @@ -358,9 +293,9 @@ jobs:
runs-on: ubuntu-latest
needs:
- build
- e2e
- benchmarks
- unit-tests
- e2e-test
- benchmark
- test
steps:
- name: Download patches
uses: actions/download-artifact@v3
Expand Down Expand Up @@ -408,68 +343,12 @@ jobs:
- name: Login to NPM registry
run: npm set //registry.npmjs.org/:_authToken ${{ secrets.NPM_PUBLISH_TOKEN }}

- name: Check published WingSDK version
id: wingsdk-version
run: echo "version=$(npm view @winglang/sdk version)" >> $GITHUB_OUTPUT

- name: Publish Wing SDK
if: ${{ steps.wingsdk-version.outputs.version != needs.build.outputs.version }}
working-directory: wingsdk
run: npm publish *.tgz --access public

- name: Check published Wing Compiler version
id: wingcompiler-version
run: echo "version=$(npm view @winglang/compiler version)" >> $GITHUB_OUTPUT

- name: Publish Wing Compiler
if: ${{ steps.wingcompiler-version.outputs.version != needs.build.outputs.version }}
working-directory: wingcompiler
run: npm publish *.tgz --access public

- name: Check published Wing Console Design System version
id: wingconsoledesignsystem-version
run: echo "version=$(npm view @wingconsole/design-system version)" >> $GITHUB_OUTPUT

- name: Publish Wing Console Design System
if: ${{ steps.wingconsoledesignsystem-version.outputs.version != needs.build.outputs.version }}
working-directory: wingconsoledesignsystem
run: npm publish *.tgz --access public

- name: Check published Wing Console UI version
id: wingconsoleui-version
run: echo "version=$(npm view @wingconsole/ui version)" >> $GITHUB_OUTPUT

- name: Publish Wing Console UI
if: ${{ steps.wingconsoleui-version.outputs.version != needs.build.outputs.version }}
working-directory: wingconsoleui
run: npm publish *.tgz --access public

- name: Check published Wing Console Server version
id: wingconsoleserver-version
run: echo "version=$(npm view @wingconsole/server version)" >> $GITHUB_OUTPUT

- name: Publish Wing Console Server
if: ${{ steps.wingconsoleserver-version.outputs.version != needs.build.outputs.version }}
working-directory: wingconsoleserver
run: npm publish *.tgz --access public

- name: Check published Wing Console App version
id: wingconsoleapp-version
run: echo "version=$(npm view @wingconsole/app version)" >> $GITHUB_OUTPUT

- name: Publish Wing Console App
if: ${{ steps.wingconsoleapp-version.outputs.version != needs.build.outputs.version }}
working-directory: wingconsoleapp
run: npm publish *.tgz --access public

- name: Check published Wing version
id: wing-version
run: echo "version=$(npm view winglang version)" >> $GITHUB_OUTPUT

- name: Publish Wing
if: ${{ steps.wing-version.outputs.version != needs.build.outputs.version }}
working-directory: wing
run: npm publish *.tgz --access public
- name: Publish npm packages
run: |
for file in *.tgz; do
npm publish "$file" --access public
done
working-directory: dist

- name: Rename Docs
run: mv docs "docs-${{ needs.build.outputs.version }}.tgz"
Expand All @@ -483,9 +362,7 @@ jobs:

- name: Compute Checksums
run: |
mkdir dist
mv ./*/*.vsix ./dist
mv ./*/*.tgz ./dist
mv ./*/*.wasm ./dist
mv ./benchmarks/* ./dist
cd dist
Expand Down
Loading

0 comments on commit 6880aef

Please sign in to comment.