Update .github/workflows/keyboard.yml #746
Workflow file for this run
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
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@v3 | |
with: | |
path: .git | |
key: git-${{ github.base_ref }}-${{ github.head_ref }} | |
restore-keys: | | |
git-${{ github.base_ref }}-${{ github.head_ref }} | |
git-${{ github.base_ref }} | |
git- | |
- name: Checkout CLDR | |
uses: actions/checkout@v3 | |
with: | |
lfs: false | |
fetch-depth: 0 # fetch all branches so that Spotless can resolve `origin/main` | |
- name: Cache local Maven repository | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('tools/**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
- 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@v3 | |
with: | |
lfs: false | |
fetch-depth: 0 # Needed for cldr-archive | |
if: github.event.inputs.git-ref == '' | |
- name: Clone Repository (manual ref) | |
uses: actions/checkout@v3 | |
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@v3 | |
with: | |
java-version: 11 | |
distribution: 'temurin' | |
- name: Cache local Maven repository | |
uses: actions/cache@v3 | |
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@v3 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
node- | |
- name: Cache webpack | |
uses: actions/cache@v3 | |
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: Lint GitHub Actions | |
run: npx yaml-lint .github/workflows/*.yml | |
- 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: 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@v3 | |
with: | |
name: cldr-apps-server | |
path: tools/cldr-apps/target/cldr-apps.zip | |
- name: Upload cldr-code.jar | |
uses: actions/upload-artifact@v3 | |
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: 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: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Clone Repository | |
uses: actions/checkout@v3 | |
with: | |
lfs: false | |
if: github.event.inputs.git-ref == '' | |
- name: Clone Repository (manual ref) | |
uses: actions/checkout@v3 | |
with: | |
lfs: false | |
ref: ${{ github.event.inputs.git-ref }} | |
if: github.event.inputs.git-ref != '' | |
- name: Set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
java-version: 11 | |
distribution: 'temurin' | |
- name: Download cldr-code.jar | |
uses: actions/download-artifact@v3 | |
with: | |
name: cldr-code | |
path: tools/cldr-code/target/ | |
- 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 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download cldr-apps.zip | |
uses: actions/download-artifact@v3 | |
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 |