mirror of
https://github.com/apache/cordova-plugin-statusbar.git
synced 2025-01-19 01:12:49 +08:00
4ff4f00d58
* add github actions ci tests running cordova-paramedic * ci(gh-actions): pin third-party actions * ci: improve android workflow coverage * ci: improve ios workflow coverage * ci: add chrome workflow coverage * ci: add lint workflow coverage Co-authored-by: zachawilson <zach@switchcasegroup.com>
149 lines
5.7 KiB
YAML
149 lines
5.7 KiB
YAML
# 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: Android Testsuite
|
||
|
||
on:
|
||
push:
|
||
paths-ignore:
|
||
- '**.md'
|
||
- 'LICENSE'
|
||
- '.eslint*'
|
||
pull_request:
|
||
paths-ignore:
|
||
- '**.md'
|
||
- 'LICENSE'
|
||
- '.eslint*'
|
||
|
||
jobs:
|
||
test:
|
||
name: Android ${{ matrix.versions.android }} Test
|
||
runs-on: macos-latest
|
||
|
||
# hoist configurations to top that are expected to be updated
|
||
env:
|
||
# Storing a copy of the repo
|
||
repo: ${{ github.event.pull_request.head.repo.full_name || github.repository }}
|
||
|
||
node-version: 16
|
||
|
||
# These are the default Java configurations used by most tests.
|
||
# To customize these options, add "java-distro" or "java-version" to the strategy matrix with its overriding value.
|
||
default_java-distro: adopt
|
||
default_java-version: 8
|
||
|
||
# These are the default Android System Image configurations used by most tests.
|
||
# To customize these options, add "system-image-arch" or "system-image-target" to the strategy matrix with its overriding value.
|
||
default_system-image-arch: x86_64
|
||
default_system-image-target: google_apis # Most system images have a google_api option. Set this as default.
|
||
|
||
# configurations for each testing strategy (test matrix)
|
||
strategy:
|
||
matrix:
|
||
versions:
|
||
- android: 5.1
|
||
android-api: 22
|
||
|
||
- android: 6
|
||
android-api: 23
|
||
|
||
- android: 7
|
||
android-api: 24
|
||
|
||
- android: 7.1
|
||
android-api: 25
|
||
|
||
- android: 8
|
||
android-api: 26
|
||
|
||
- android: 8.1
|
||
android-api: 27
|
||
system-image-target: default
|
||
|
||
- android: 9
|
||
android-api: 28
|
||
|
||
- android: 10
|
||
android-api: 29
|
||
|
||
- android: 11
|
||
android-api: 30
|
||
java-version: 11
|
||
|
||
timeout-minutes: 60
|
||
|
||
steps:
|
||
- uses: actions/checkout@v2
|
||
- uses: actions/setup-node@v2
|
||
with:
|
||
node-version: ${{ env.node-version }}
|
||
- uses: actions/setup-java@v2
|
||
env:
|
||
java-version: ${{ matrix.versions.java-version == '' && env.default_java-version || matrix.versions.java-version }}
|
||
java-distro: ${{ matrix.versions.java-distro == '' && env.default_java-distro || matrix.versions.java-distro }}
|
||
with:
|
||
distribution: ${{ env.java-distro }}
|
||
java-version: ${{ env.java-version }}
|
||
|
||
- name: Run Environment Information
|
||
run: |
|
||
node --version
|
||
npm --version
|
||
java -version
|
||
|
||
- name: Run npm install
|
||
run: |
|
||
export PATH="/usr/local/lib/android/sdk/platform-tools":$PATH
|
||
export JAVA_HOME=$JAVA_HOME_11_X64
|
||
npm i -g cordova@latest
|
||
npm ci
|
||
|
||
- name: Run paramedic install
|
||
if: ${{ endswith(env.repo, '/cordova-paramedic') != true }}
|
||
run: npm i -g github:apache/cordova-paramedic
|
||
|
||
- uses: reactivecircus/android-emulator-runner@5de26e4bd23bf523e8a4b7f077df8bfb8e52b50e
|
||
env:
|
||
system-image-arch: ${{ matrix.versions.system-image-arch == '' && env.default_system-image-arch || matrix.versions.system-image-arch }}
|
||
system-image-target: ${{ matrix.versions.system-image-target == '' && env.default_system-image-target || matrix.versions.system-image-target }}
|
||
with:
|
||
api-level: ${{ matrix.versions.android-api }}
|
||
target: ${{ env.system-image-target }}
|
||
arch: ${{ env.system-image-arch }}
|
||
force-avd-creation: false
|
||
disable-animations: false
|
||
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim
|
||
script: echo "Pregenerate the AVD before running Paramedic"
|
||
|
||
- name: Run paramedic tests
|
||
uses: reactivecircus/android-emulator-runner@5de26e4bd23bf523e8a4b7f077df8bfb8e52b50e
|
||
env:
|
||
system-image-arch: ${{ matrix.versions.system-image-arch == '' && env.default_system-image-arch || matrix.versions.system-image-arch }}
|
||
system-image-target: ${{ matrix.versions.system-image-target == '' && env.default_system-image-target || matrix.versions.system-image-target }}
|
||
test_config: 'android-${{ matrix.versions.android }}.config.json'
|
||
# Generally, this should automatically work for cordova-paramedic & plugins. If the path is unique, this can be manually changed.
|
||
test_plugin_path: ${{ endswith(env.repo, '/cordova-paramedic') && './spec/testable-plugin/' || './' }}
|
||
paramedic: ${{ endswith(env.repo, '/cordova-paramedic') && 'node main.js' || 'cordova-paramedic' }}
|
||
with:
|
||
api-level: ${{ matrix.versions.android-api }}
|
||
target: ${{ env.system-image-target }}
|
||
arch: ${{ env.system-image-arch }}
|
||
force-avd-creation: false
|
||
disable-animations: false
|
||
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim
|
||
script: ${{ env.paramedic }} --config ./pr/local/${{ env.test_config }} --plugin ${{ env.test_plugin_path }}
|