diff --git a/.github/workflows/build-targets.yaml b/.github/workflows/build-targets.yaml index 3e50abd..a2e9f88 100644 --- a/.github/workflows/build-targets.yaml +++ b/.github/workflows/build-targets.yaml @@ -4,105 +4,11 @@ on: pull_request: jobs: - build: - name: Build Code Editor Targets - runs-on: ubuntu-latest - strategy: - matrix: - build-target: [code-editor-server, code-editor-sagemaker-server, code-editor-web-embedded, code-editor-web-embedded-with-terminal] - exclude: - # Only build SageMaker for now, remove the excluded targets when needed in the future. - - build-target: code-editor-server - - build-target: code-editor-web-embedded - - build-target: code-editor-web-embedded-with-terminal - steps: - - name: Start Build Workflow - env: - BUILD_TARGET: ${{ matrix.build-target }} - run: | - echo "Starting Build Workflow for target: $BUILD_TARGET" - - - name: Set up build environment - run: | - echo "Installing required dependencies" - sudo apt-get update - sudo apt-get install -y quilt libkrb5-dev libx11-dev libxkbfile-dev libxml2-utils - - - name: Checkout code - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Run patches script - env: - BUILD_TARGET: ${{ matrix.build-target }} - run: | - ./scripts/prepare-src.sh "$BUILD_TARGET" - - # Verify CSP line exists in target TypeScript file - - name: Check CSP configuration in webClientServer.ts - if: matrix.build-target == 'code-editor-sagemaker-server' - run: | - TARGET_FILE="code-editor-src/src/vs/server/node/webClientServer.ts" - REQUIRED_TEXT="connect-src \\'self\\' ws: wss: https://main.vscode-cdn.net http://localhost:* https://localhost:* https://login.microsoftonline.com/ https://update.code.visualstudio.com https://*.vscode-unpkg.net/ https://default.exp-tas.com/vscode/ab https://vscode-sync.trafficmanager.net https://vscode-sync-insiders.trafficmanager.net https://*.gallerycdn.vsassets.io https://marketplace.visualstudio.com https://openvsxorg.blob.core.windows.net https://az764295.vo.msecnd.net https://code.visualstudio.com https://*.gallery.vsassets.io https://*.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com https://*.servicebus.windows.net/ https://vscode.blob.core.windows.net https://vscode.search.windows.net https://vsmarketplacebadges.dev https://vscode.download.prss.microsoft.com https://download.visualstudio.microsoft.com https://*.vscode-unpkg.net https://open-vsx.org;" - - if [ ! -f "$TARGET_FILE" ]; then - echo "❌ FAIL: Target file $TARGET_FILE does not exist." - exit 1 - fi - - if grep -F "$REQUIRED_TEXT" "$TARGET_FILE" > /dev/null; then - echo "✅ PASS: Required CSP text exists." - else - echo "❌ FAIL: Required CSP text NOT found in $TARGET_FILE" - exit 1 - fi - - - name: Set up Node.js - uses: actions/setup-node@v4 - with: - node-version: '22' - cache: 'npm' - cache-dependency-path: 'code-editor-src/package-lock.json' - - - name: Install code editor dependencies - run: | - cd code-editor-src - echo "Installing dependencies" && npm ci - - - name: Build artifacts - env: - BUILD_TARGET: ${{ matrix.build-target }} - run: | - ./scripts/build-artifacts.sh "$BUILD_TARGET" - - - name: Prepare artifacts to upload - env: - MATRIX_BUILD_TARGET: ${{ matrix.build-target }} - run: | - CODE_EDITOR_BUILD_TARGET=$(./scripts/determine-build-target.sh "$MATRIX_BUILD_TARGET") - tar -czf "${MATRIX_BUILD_TARGET}-src.tar.gz" ./code-editor-src - tar -czf "${MATRIX_BUILD_TARGET}-build.tar.gz" "./$CODE_EDITOR_BUILD_TARGET" - - - name: Upload src artifact - uses: actions/upload-artifact@v4 - with: - name: ${{ github.sha }}-${{ matrix.build-target }}-src - path: ${{ matrix.build-target }}-src.tar.gz - retention-days: 90 - - - name: Upload build artifact - uses: actions/upload-artifact@v4 - with: - name: ${{ github.sha }}-${{ matrix.build-target }}-build - path: ${{ matrix.build-target }}-build.tar.gz - retention-days: 90 + handle-failures: name: Handle Failures runs-on: ubuntu-latest - needs: build environment: build-targets-workflow-env - if: failure() && github.event_name=='workflow_dispatch' permissions: id-token: write # Required for OIDC env: @@ -124,4 +30,4 @@ jobs: --namespace "GitHub/Workflows" \ --metric-name "ExecutionsFailed" \ --dimensions "Repository=$REPOSITORY,Workflow=BuildTargets" \ - --value 1 \ No newline at end of file + --value 1