Skip to content

Added ignored errors patching for the build artifacts (#54) #52

Added ignored errors patching for the build artifacts (#54)

Added ignored errors patching for the build artifacts (#54) #52

name: Build Code Editor Targets
on:
push:
branches:
- 'main'
- '*.*'
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
run: |
echo "Starting Build Workflow for target: ${{ matrix.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
run: |
./scripts/prepare-src.sh ${{ matrix.build-target }}
- 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
run: |
./scripts/build-artifacts.sh ${{ matrix.build-target }}
- name: Prepare artifacts to upload
run: |
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 ./$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()
permissions:
id-token: write # Required for OIDC
env:
REPOSITORY: ${{ github.repository }}
AWS_ROLE_TO_ASSUME: ${{ secrets.AWS_ROLE_TO_ASSUME }}
steps:
- name: Use role credentials for metrics
id: aws-creds
continue-on-error: ${{ env.REPOSITORY != 'aws/code-editor' }}
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ env.AWS_ROLE_TO_ASSUME }}
aws-region: us-east-1
- name: Report failure
if: steps.aws-creds.outcome == 'success'
run: |
aws cloudwatch put-metric-data \
--namespace "GitHub/Workflows" \
--metric-name "ExecutionsFailed" \
--dimensions "Repository=${{ env.REPOSITORY }},Workflow=BuildTargets" \
--value 1