# Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. --- name: Nightly Tests on: workflow_dispatch: schedule: - cron: '0 0 * * *' jobs: build-test-package: name: 'Build, Test, and Package (OS: ${{ matrix.os }}, Node: ${{ matrix.node }}, Java: ${{ matrix.java_version }}, VS Code: ${{ matrix.vscode }} )' strategy: matrix: os: [ macos-11, ubuntu-20.04, windows-2019, macos-latest, ubuntu-latest, windows-latest ] node: [ '16', '18' ] vscode: [ 'stable', 'insiders' ] java_distribution: [ temurin ] java_version: [ 8, 11, 17 ] fail-fast: false # don't immediately fail all other jobs if a single job fails runs-on: ${{ matrix.os }} defaults: run: shell: bash env: DAFFODIL_TEST_VSCODE_VERSION: ${{ matrix.vscode }} steps: ############################################################ # Setup ############################################################ - name: Check out Repository uses: actions/checkout@v4.1.1 - name: Setup Java uses: actions/setup-java@v3.13.0 with: distribution: ${{ matrix.java_distribution }} java-version: ${{ matrix.java_version }} - name: Install Node.js uses: actions/setup-node@v4.0.0 with: node-version: ${{ matrix.node }} ############################################################ # Build & Package ############################################################ - name: Install node dependencies run: yarn install - name: Runs tests - Linux run: xvfb-run -a yarn test if: runner.os == 'Linux' - name: Runs tests - Windows/Mac run: yarn test if: runner.os != 'Linux' - name: Check for Errors in macOS run: tail -n 1000 '/Users/runner/Library/Application Support/omega_edit/'* && exit 1 if: failure() && runner.os == 'macOS' - name: Package run: yarn package