Skip to content

[1028] Add i18n support for frontend #19703

[1028] Add i18n support for frontend

[1028] Add i18n support for frontend #19703

Workflow file for this run

name: Continuous integration
on:
push:
paths-ignore:
- "CHANGELOG.adoc"
- "README.adoc"
- "doc/**"
branches:
- "**"
tags:
- "*"
pull_request:
workflow_dispatch:
jobs:
build:
name: Build
runs-on: ubuntu-latest
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
steps:
- name: Checkout
uses: actions/checkout@v4
if: github.event_name != 'pull_request'
with:
fetch-depth: 0
- name: Checkout
uses: actions/checkout@v4
if: github.event_name == 'pull_request'
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Setup Node SDK
uses: actions/setup-node@v4
with:
node-version: 18.7
registry-url: https://npm.pkg.github.com/
- name: Cache Node.js modules
uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.OS }}-node-
${{ runner.OS }}-
- name: Setup Java SDK
uses: actions/setup-java@v4
with:
java-version: 17
distribution: "temurin"
- name: Setup some global environment variables
run: |
echo "git_describe=$(git describe)" >> $GITHUB_ENV
- name: Cache Maven packages
uses: actions/cache@v4
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Build the frontend packages
run: |
echo "//npm.pkg.github.com/:_authToken=${{ github.token }}" >> .npmrc
npm install -g yalc
npm ci
npx turbo run coverage
npx turbo run publish:local
- name: Copy frontend artifacts
run: |
mkdir -p packages/sirius-web/backend/sirius-web-frontend/src/main/resources/static
cp -R packages/sirius-web/frontend/sirius-web/dist/* packages/sirius-web/backend/sirius-web-frontend/src/main/resources/static
- name: Build the backend
env:
USERNAME: ${{github.actor}}
PASSWORD: ${{secrets.GITHUB_TOKEN}}
run: mvn -U -B -e clean verify -f packages/pom.xml --settings settings.xml
- name: Check if all files have been commited
run: node scripts/check-gitdiff.js
- name: Build the vscode extension
run: |
echo "//npm.pkg.github.com/:_authToken=${{ github.token }}" >> .npmrc
npm install -g vsce
npx yalc add @eclipse-sirius/sirius-components-charts
npx yalc add @eclipse-sirius/sirius-components-core
npx yalc add @eclipse-sirius/sirius-components-deck
npx yalc add @eclipse-sirius/sirius-components-diagrams
npx yalc add @eclipse-sirius/sirius-components-formdescriptioneditors
npx yalc add @eclipse-sirius/sirius-components-forms
npx yalc add @eclipse-sirius/sirius-components-gantt
npx yalc add @eclipse-sirius/sirius-components-omnibox
npx yalc add @eclipse-sirius/sirius-components-portals
npx yalc add @eclipse-sirius/sirius-components-widget-reference
npx yalc add @eclipse-sirius/sirius-components-selection
npx yalc add @eclipse-sirius/sirius-components-tables
npx yalc add @eclipse-sirius/sirius-components-trees
npx yalc add @eclipse-sirius/sirius-components-validation
npx yalc add @eclipse-sirius/sirius-web-application
npm i
npm run compile
vsce package
working-directory: vscode-extension
- name: Store the vscode extension
uses: actions/upload-artifact@v4
with:
name: vscode
path: vscode-extension/sirius-web-*.vsix
retention-days: 20
- name: Archive the code coverage results
run: tar -cf coverage.tar packages/releng/backend/sirius-components-test-coverage/target/site/jacoco-aggregate
- name: Store code coverage results
uses: actions/upload-artifact@v4
if: always()
with:
name: jacoco
path: coverage.tar
retention-days: 5
- name: Store Core frontend code coverage results
uses: actions/upload-artifact@v4
if: always()
with:
name: core
path: packages/core/frontend/sirius-components-core/coverage
retention-days: 5
- name: Store FormDescriptionEditors frontend code coverage results
uses: actions/upload-artifact@v4
if: always()
with:
name: formdescriptioneditors
path: packages/formdescriptioneditors/frontend/sirius-components-formdescriptioneditors/coverage
retention-days: 5
- name: Store Forms frontend code coverage results
uses: actions/upload-artifact@v4
if: always()
with:
name: forms
path: packages/forms/frontend/sirius-components-forms/coverage
retention-days: 5
- name: Store Trees frontend code coverage results
uses: actions/upload-artifact@v4
if: always()
with:
name: trees
path: packages/trees/frontend/sirius-components-trees/coverage
retention-days: 5
- name: Check the global code coverage
run: jshell scripts/check-coverage.jsh
- name: Publish the backend
if: startsWith(github.ref, 'refs/tags/v')
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
run: mvn -B deploy -f packages/pom.xml
- name: Publish the frontend packages
if: startsWith(github.ref, 'refs/tags/v')
run: |
npm publish --workspaces
env:
NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
- name: Build the Docker image
env:
REGISTRY: ${{ steps.login-ecr.outputs.registry }}
REPOSITORY: sirius-web
IMAGE_TAG: ${{ env.git_describe }}
run: |
docker build -t siriusweb packages/sirius-web/backend/sirius-web
- name: Check the integration test code
run: |
npm ci
npm run eslint
working-directory: integration-tests
- name: Run end to end tests against the sirius-web application
if: startsWith(github.ref, 'refs/tags/v') == false && github.ref != 'refs/heads/master'
uses: cypress-io/github-action@v5
with:
build: docker compose -f ../packages/sirius-web/backend/sirius-web/docker-compose.yml up -d
start: docker compose -f ../packages/sirius-web/backend/sirius-web/docker-compose.yml ps
wait-on: "http://localhost:8080/login"
wait-on-timeout: 180
working-directory: integration-tests
record: false
env:
REGISTRY: ${{ steps.login-ecr.outputs.registry }}
REPOSITORY: sirius-web
IMAGE_TAG: ${{ env.git_describe }}
GITHUB_TOKEN: ${{ github.token }}
- name: Store Cypress screenshots
if: always()
uses: actions/upload-artifact@v4
with:
name: cypress-screenshots
path: integration-tests/target/screenshots/**/*.png
retention-days: 5