Skip to content

CLDR-17566 converting design proposals p1 #10372

CLDR-17566 converting design proposals p1

CLDR-17566 converting design proposals p1 #10372

Workflow file for this run

name: cldr-mvn
on:
push:
pull_request:
workflow_dispatch:
inputs:
git-ref:
description: Git Ref (Optional)
required: false
jobs:
formatter:
name: Formatter + Style checker
runs-on: ubuntu-latest
steps:
# since we have to checkout all branches, cache here
- name: Cache .git
uses: actions/cache@v4
with:
path: .git
key: git-${{ github.base_ref }}-${{ github.sha }}
restore-keys: |
git-${{ github.base_ref }}-${{ github.sha }}
git-${{ github.base_ref }}
git-
- name: Checkout CLDR
uses: actions/checkout@v4
with:
lfs: false
fetch-depth: 0 # fetch all branches so that Spotless can resolve `origin/main`
- name: Lint GitHub Actions
run: npx yaml-lint .github/workflows/*.yml
- name: Cache local Maven repository
uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-mavenspotless-${{ hashFiles('tools/**/pom.xml') }}
restore-keys: |
${{ runner.os }}-mavenspotless-
- name: Check Java style
run: mvn --file=tools/pom.xml spotless:check || (echo "Style checker failed. Formatting changes can be applied by 'mvn spotless:apply'" && exit 1)
build:
runs-on: ubuntu-latest
steps:
- name: Clone Repository
uses: actions/checkout@v4
with:
lfs: false
fetch-depth: 0 # Needed for cldr-archive
if: github.event.inputs.git-ref == ''
- name: Clone Repository (manual ref)
uses: actions/checkout@v4
with:
lfs: false
fetch-depth: 0 # Needed for cldr-archive
ref: ${{ github.event.inputs.git-ref }}
if: github.event.inputs.git-ref != ''
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: 11
distribution: 'temurin'
- name: Cache local Maven repository
uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('tools/**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Cache local npm repository
uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
node-
- name: Cache webpack
uses: actions/cache@v4
with:
path: tools/cldr-apps/target/webpack_cache
key: ${{ runner.os }}-webpack-${{ hashFiles('tools/cldr-apps/package*') }}-${{ hashFiles('tools/cldr-apps/src/**') }}
restore-keys: |
${{ runner.os }}-webpack-
webpack-
- name: Build with Maven
run: >
mvn -s .github/workflows/mvn-settings.xml -B compile install package --file tools/pom.xml
-DskipTests=true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: DataDog sourcemap upload
# only on push to main!
if: github.repository == 'unicode-org/cldr' && github.event_name == 'push' && github.ref == 'refs/heads/main' && github.event.inputs.git-ref == ''
run: npx --package=@datadog/datadog-ci datadog-ci sourcemaps upload tools/cldr-apps/src/main/webapp/dist/ --minified-path-prefix=/cldr-apps/dist/ --release-version=r${{ github.sha }} --service=surveytool
env:
DATADOG_SITE: ${{ secrets.DATADOG_SITE }}
DATADOG_API_KEY: ${{ secrets.DATADOG_API_KEY }}
- name: Checkout CLDR archive
run: >
mkdir -v ../cldr-archive && java -jar tools/cldr-code/target/cldr-code.jar checkout-archive
- name: Build liberty server
run: >
mvn -s .github/workflows/mvn-settings.xml -B -pl cldr-apps liberty:create liberty:deploy liberty:package -Dinclude=usr --file tools/pom.xml
-DskipTests=true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Cleanup liberty server
run: >
zip tools/cldr-apps/target/cldr-apps.zip -d wlp/usr/servers/cldr/apps/expanded/\*
- name: Upload cldr-apps.zip
uses: actions/upload-artifact@v4
with:
name: cldr-apps-server
path: tools/cldr-apps/target/cldr-apps.zip
- name: Upload cldr-code.jar
uses: actions/upload-artifact@v4
with:
name: cldr-code
path: tools/cldr-code/target/cldr-code.jar
- name: BOM check in .xml files
run: >
mvn -s .github/workflows/mvn-settings.xml --file tools/pom.xml -pl cldr-code
exec:java -Dexec.mainClass=org.unicode.cldr.util.XMLValidator
-Dexec.cleanupDaemonThreads=false
-Dexec.args="-q --justCheckBom exemplars seed common keyboards"
&& echo 'No XML BOM detected'
- name: Schema check common/main in .xml files
run: >
mvn -s .github/workflows/mvn-settings.xml --file tools/pom.xml -pl cldr-code
exec:java -Dexec.mainClass=org.unicode.cldr.util.XMLValidator
-Dexec.cleanupDaemonThreads=false
-Dexec.args="-q --schema=common/dtd/ldml.xsd common/main"
|| (echo 'Schema failed, rerun GenerateDtd' ; exit 0)
- name: Keyboard Schema Check
run: >
mvn -s .github/workflows/mvn-settings.xml --file tools/pom.xml -pl cldr-code
exec:java -Dexec.mainClass=org.unicode.cldr.util.XMLValidator
-Dexec.cleanupDaemonThreads=false
-Dexec.args="--schema=keyboards/dtd/ldmlKeyboard.xsd keyboards/3.0"
|| (echo 'Schema failed, rerun GenerateDtd' ; exit 0)
- name: Keyboard Test Schema Check
run: >
mvn -s .github/workflows/mvn-settings.xml --file tools/pom.xml -pl cldr-code
exec:java -Dexec.mainClass=org.unicode.cldr.util.XMLValidator
-Dexec.cleanupDaemonThreads=false
-Dexec.args="--schema=keyboards/dtd/ldmlKeyboardTest.xsd keyboards/test"
|| (echo 'Schema failed, rerun GenerateDtd' ; exit 0)
- name: Setup MySQL
run: |
sudo systemctl start mysql.service
sleep 3
mysql --user=root --password=root < tools/cldr-apps/test-setup.sql
- name: Test with maven
run: >
mvn -s .github/workflows/mvn-settings.xml -B test --file tools/pom.xml
'-Dorg.unicode.cldr.unittest.web.jdbcurl=jdbc:mysql://cldrtest:VbrB3LFCr6A!@localhost/cldrtest?useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC'
'-Dorg.unicode.cldr.unittest.web.KeepDb=true' -DCLDR_GITHUB_ANNOTATIONS=true
'-Dorg.unicode.cldr.unittest.testArgs=-e10 -n'
'-Dorg.unicode.cldr.unittest.web.testArgs=-e10 -n'
'-Dorg.unicode.cldr.api.testArgs=-e10 -n'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
check:
runs-on: ubuntu-latest
steps:
- name: Clone Repository
uses: actions/checkout@v4
with:
lfs: false
if: github.event.inputs.git-ref == ''
- name: Clone Repository (manual ref)
uses: actions/checkout@v4
with:
lfs: false
ref: ${{ github.event.inputs.git-ref }}
if: github.event.inputs.git-ref != ''
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: 11
distribution: 'temurin'
- name: Cache local Maven repository
uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-mavencheck-${{ hashFiles('tools/**/pom.xml') }}
restore-keys: |
${{ runner.os }}-mavencheck-
- name: Build with Maven
run: >
mvn -s .github/workflows/mvn-settings.xml -B compile package --file tools/pom.xml -pl cldr-code -DskipTests=true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: run CLDR console check
run: java -DCLDR_GITHUB_ANNOTATIONS=true -DCLDR_DIR=$(pwd) -Xmx6g -jar tools/cldr-code/target/cldr-code.jar check -S common,seed -e -z BUILD
deploy:
# don't run deploy on manual builds!
if: github.repository == 'unicode-org/cldr' && github.event_name == 'push' && github.ref == 'refs/heads/main' && github.event.inputs.git-ref == ''
needs:
- build
- check
- formatter
runs-on: ubuntu-latest
steps:
- name: Download cldr-apps.zip
uses: actions/download-artifact@v4
with:
name: cldr-apps-server
- name: Deploy to cldr-smoke
# Deploys only on push to main.
# Does not deploy for PRs.
if: ${{ github.event_name == 'push' }}
shell: bash
env:
# the RSA key for connecting
RSA_KEY_SURVEYTOOL: ${{ secrets.RSA_KEY_SURVEYTOOL }}
# the SSH port
SMOKETEST_PORT: ${{ secrets.SMOKETEST_PORT }}
# the SSH host
SMOKETEST_HOST: ${{ secrets.SMOKETEST_HOST }}
# the ~/.ssh/known_hosts line mentioning SMOKETEST_HOST
SMOKETEST_KNOWNHOSTS: ${{ secrets.SMOKETEST_KNOWNHOSTS }}
run: |
echo "${RSA_KEY_SURVEYTOOL}" > .key && chmod go= .key
echo "${SMOKETEST_KNOWNHOSTS}" > .knownhosts && chmod go= .knownhosts
ssh -C -o UserKnownHostsFile=.knownhosts -i .key -p ${SMOKETEST_PORT} surveytool@${SMOKETEST_HOST} bash /usr/local/bin/deploy-to-openliberty.sh < cldr-apps.zip ${GITHUB_SHA} --override