-
Notifications
You must be signed in to change notification settings - Fork 196
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
152 additions
and
200 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -81,12 +81,18 @@ jobs: | |
env: | ||
SEGMENT_WRITE_KEY: ${{ secrets.SEGMENT_WRITE_KEY }} | ||
|
||
- name: Upload Dist Artifacts | ||
- name: Upload Artifacts | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: dist | ||
path: dist/*.tgz | ||
|
||
- name: Upload WingC WASM | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: wingc | ||
path: libs/wingcompiler/wingc.wasm | ||
|
||
- name: Check git diff of VSCode Extension | ||
id: git-diff-vscode-wing | ||
run: | | ||
|
@@ -203,92 +209,89 @@ jobs: | |
- name: Create Markdown report | ||
run: node scripts/benchmark_json_to_table.mjs | ||
|
||
e2e-test: | ||
name: "E2E / ${{ matrix.runner }} + Node${{ matrix.node }} [${{ matrix.shard }}]" | ||
runs-on: "${{ matrix.runner }}-latest" | ||
needs: | ||
- build | ||
strategy: | ||
fail-fast: true | ||
matrix: | ||
runner: [windows, macos, ubuntu] | ||
node: ["18", "20"] | ||
shard: ["1/2", "2/2"] | ||
# shard: ["1/4", "2/4", "3/4", "4/4"] | ||
# shard: ["1/3", "2/3", "3/3"] | ||
# shard: ["1/8", "2/8", "3/8", "4/8", "5/8", "6/8", "7/8", "8/8"] | ||
full_run: | ||
# Do a full run on push or when the PR is labeled "pr/e2e-full" | ||
- ${{ github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, '🧪 pr/e2e-full') }} | ||
exclude: | ||
- runner: macos | ||
full_run: false | ||
- runner: windows | ||
full_run: false | ||
- runner: ubuntu | ||
node: "20" | ||
full_run: false | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 1 | ||
|
||
- name: Setup pnpm | ||
uses: pnpm/[email protected] | ||
with: | ||
version: ${{ env.PNPM_VERSION }} | ||
|
||
- name: Setup Node | ||
uses: actions/setup-node@v3 | ||
with: | ||
cache: "pnpm" | ||
node-version: ${{ matrix.node }} | ||
# e2e-test: | ||
# name: "E2E / ${{ matrix.runner }} + Node${{ matrix.node }} [${{ matrix.shard }}]" | ||
# runs-on: "${{ matrix.runner }}-latest" | ||
# needs: | ||
# - build | ||
# strategy: | ||
# fail-fast: true | ||
# matrix: | ||
# runner: [windows, macos, ubuntu] | ||
# node: ["18", "20"] | ||
# shard: ["1/2", "2/2"] | ||
# full_run: | ||
# # Do a full run on push or when the PR is labeled "pr/e2e-full" | ||
# - ${{ github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, '🧪 pr/e2e-full') }} | ||
# exclude: | ||
# - runner: macos | ||
# full_run: false | ||
# - runner: windows | ||
# full_run: false | ||
# - runner: ubuntu | ||
# node: "20" | ||
# full_run: false | ||
# steps: | ||
# - name: Checkout | ||
# uses: actions/checkout@v3 | ||
# with: | ||
# fetch-depth: 1 | ||
|
||
- 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: Install dependencies | ||
run: pnpm install --frozen-lockfile --ignore-scripts --filter hangar --filter examples-valid --filter examples-invalid | ||
# - name: Setup Node | ||
# uses: actions/setup-node@v3 | ||
# with: | ||
# cache: "pnpm" | ||
# node-version: ${{ matrix.node }} | ||
|
||
- name: Run Hangar Tests | ||
working-directory: tools/hangar | ||
run: | | ||
pnpm test:generate | ||
pnpm run test --shard=${{ matrix.shard }} --update=${{ matrix.runner == 'ubuntu' && matrix.node == '18' }} | ||
# - name: Download Dist Artifacts | ||
# uses: actions/download-artifact@v3 | ||
# with: | ||
# name: dist | ||
# path: dist | ||
|
||
- name: Create mutation if needed | ||
# we only care about the diff in our standard dev env | ||
if: matrix.runner == 'ubuntu' && matrix.node == '18' | ||
id: diff | ||
env: | ||
RAW_SHARD: ${{ matrix.shard }} | ||
run: | | ||
SHARD=$(echo $RAW_SHARD | sed 's/\//of/g') | ||
DIFF_NAME="e2e-$SHARD.diff" | ||
git add --all | ||
git diff --staged --binary --patch > $DIFF_NAME | ||
if [ -s $DIFF_NAME ]; then | ||
echo "diff=true" >> $GITHUB_OUTPUT | ||
echo "diff_name=$DIFF_NAME" >> $GITHUB_OUTPUT | ||
fi | ||
# - name: Install dependencies | ||
# run: pnpm install --frozen-lockfile --ignore-scripts --filter hangar --filter examples-valid --filter examples-invalid | ||
|
||
- name: Upload mutation | ||
if: matrix.runner == 'ubuntu' && matrix.node == '18' && steps.diff.outputs.diff == 'true' | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: ${{ steps.diff.outputs.diff_name }} | ||
path: ${{ steps.diff.outputs.diff_name }} | ||
# - name: Run Hangar Tests | ||
# working-directory: tools/hangar | ||
# run: | | ||
# pnpm test:generate | ||
# pnpm run test --shard=${{ matrix.shard }} --update=${{ matrix.runner == 'ubuntu' && matrix.node == '18' }} | ||
|
||
# - name: Create mutation if needed | ||
# # we only care about the diff in our standard dev env | ||
# if: matrix.runner == 'ubuntu' && matrix.node == '18' | ||
# id: diff | ||
# env: | ||
# RAW_SHARD: ${{ matrix.shard }} | ||
# run: | | ||
# SHARD=$(echo $RAW_SHARD | sed 's/\//of/g') | ||
# DIFF_NAME="e2e-$SHARD.diff" | ||
# git add --all | ||
# git diff --staged --binary --patch > $DIFF_NAME | ||
# if [ -s $DIFF_NAME ]; then | ||
# 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 | ||
# with: | ||
# name: ${{ steps.diff.outputs.diff_name }} | ||
# path: ${{ steps.diff.outputs.diff_name }} | ||
|
||
quality-gate: | ||
name: Quality Gate | ||
runs-on: ubuntu-latest | ||
needs: | ||
- build | ||
- e2e-test | ||
# - e2e-test | ||
- benchmark | ||
- test | ||
steps: | ||
|
@@ -308,130 +311,79 @@ jobs: | |
- name: All good | ||
run: echo "Builds and tests passed! 🎉🎉🎉" | ||
|
||
# publish: | ||
# name: Publish | ||
# if: ${{ github.event_name == 'push' && github.repository == 'winglang/wing' && github.ref == 'refs/heads/main' }} | ||
# needs: | ||
# - quality-gate | ||
# - build | ||
# runs-on: ubuntu-latest | ||
# steps: | ||
# - name: Download Build Artifacts | ||
# uses: actions/download-artifact@v3 | ||
publish: | ||
name: Publish | ||
# if: ${{ github.event_name == 'push' && github.repository == 'winglang/wing' && github.ref == 'refs/heads/main' }} | ||
needs: | ||
- quality-gate | ||
- build | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Download Build Artifacts | ||
uses: actions/download-artifact@v3 | ||
|
||
# - name: Tag commit | ||
# uses: tvdias/[email protected] | ||
# if: ${{ needs.build.outputs.last-version != needs.build.outputs.version }} | ||
# with: | ||
# repo-token: "${{ secrets.PROJEN_GITHUB_TOKEN }}" | ||
# tag: "v${{ needs.build.outputs.version }}" | ||
# - name: Tag commit | ||
# uses: tvdias/[email protected] | ||
# if: ${{ needs.build.outputs.last-version != needs.build.outputs.version }} | ||
# with: | ||
# repo-token: "${{ secrets.PROJEN_GITHUB_TOKEN }}" | ||
# tag: "v${{ needs.build.outputs.version }}" | ||
|
||
- name: Publish Extension to Visual Studio Marketplace | ||
if: needs.build.outputs.vscode-wing-changed == 'true' | ||
run: echo "Publishing VSCode Extension" | ||
# - name: Publish Extension to Visual Studio Marketplace | ||
# if: needs.build.outputs.vscode-wing-changed == 'true' | ||
# uses: "HaaLeo/publish-vscode-extension@v1" | ||
# with: | ||
# pat: ${{ secrets.VS_MARKETPLACE_TOKEN }} | ||
# registryUrl: "https://marketplace.visualstudio.com" | ||
# extensionFile: "vscode-wing/vscode-wing.vsix" | ||
# dependencies: false | ||
|
||
# - name: Login to NPM registry | ||
# run: npm set //registry.npmjs.org/:_authToken ${{ secrets.NPM_PUBLISH_TOKEN }} | ||
|
||
- name: Publish npm packages | ||
# run: | | ||
# for file in *.tgz; do | ||
# npm publish "$file" --access public | ||
# done | ||
run: | | ||
for file in *.tgz; do | ||
echo "publish $file" | ||
done | ||
working-directory: dist | ||
|
||
# - name: Publish Extension to Visual Studio Marketplace | ||
# if: needs.build.outputs.vscode-wing-changed == 'true' | ||
# uses: "HaaLeo/publish-vscode-extension@v1" | ||
# with: | ||
# pat: ${{ secrets.VS_MARKETPLACE_TOKEN }} | ||
# registryUrl: "https://marketplace.visualstudio.com" | ||
# extensionFile: "vscode-wing/vscode-wing.vsix" | ||
# dependencies: false | ||
|
||
# - 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: Rename Docs | ||
# run: mv docs "docs-${{ needs.build.outputs.version }}.tgz" | ||
|
||
# - name: Write Changelog | ||
# uses: DamianReeves/[email protected] | ||
# with: | ||
# path: "CHANGELOG.md" | ||
# contents: ${{ needs.build.outputs.changelog }} | ||
# write-mode: overwrite | ||
- name: Rename Docs | ||
run: mv docs "docs-${{ needs.build.outputs.version }}.tgz" | ||
|
||
# - name: Compute Checksums | ||
# run: | | ||
# mkdir dist | ||
# mv ./*/*.vsix ./dist | ||
# mv ./*/*.tgz ./dist | ||
# mv ./*/*.wasm ./dist | ||
# mv ./benchmarks/* ./dist | ||
# cd dist | ||
|
||
# echo '' >> ../CHANGELOG.md | ||
# echo '### SHA-1 Checksums' >> ../CHANGELOG.md | ||
# echo '```' >> ../CHANGELOG.md | ||
# sha1sum --binary * >> ../CHANGELOG.md | ||
# echo '```' >> ../CHANGELOG.md | ||
# cat ../CHANGELOG.md | ||
|
||
# - name: Cut Development Release | ||
# uses: softprops/action-gh-release@v1 | ||
# with: | ||
# name: "Wing ${{ needs.build.outputs.version }}" | ||
# tag_name: "v${{ needs.build.outputs.version }}" | ||
# body_path: CHANGELOG.md | ||
# files: dist/* | ||
# token: ${{ secrets.PROJEN_GITHUB_TOKEN }} | ||
- name: Write Changelog | ||
uses: DamianReeves/[email protected] | ||
with: | ||
path: "CHANGELOG.md" | ||
contents: ${{ needs.build.outputs.changelog }} | ||
write-mode: overwrite | ||
|
||
- name: Compute Checksums | ||
run: | | ||
mv ./*/*.vsix ./dist | ||
mv ./*/*.wasm ./dist | ||
mv ./benchmarks/* ./dist | ||
cd dist | ||
echo '' >> ../CHANGELOG.md | ||
echo '### SHA-1 Checksums' >> ../CHANGELOG.md | ||
echo '```' >> ../CHANGELOG.md | ||
sha1sum --binary * >> ../CHANGELOG.md | ||
echo '```' >> ../CHANGELOG.md | ||
cat ../CHANGELOG.md | ||
# - name: Cut Development Release | ||
# uses: softprops/action-gh-release@v1 | ||
# with: | ||
# name: "Wing ${{ needs.build.outputs.version }}" | ||
# tag_name: "v${{ needs.build.outputs.version }}" | ||
# body_path: CHANGELOG.md | ||
# files: dist/* | ||
# token: ${{ secrets.PROJEN_GITHUB_TOKEN }} |