From dde696f669f81320c371ecf0038c59a2b2bee35e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A8=E3=83=AA=E3=82=B9?= Date: Wed, 15 May 2024 14:36:55 +0900 Subject: [PATCH] ci(action): update dependencies, tested platforms, and use linux kvm (#267) * ci(action): update dependencies, tested platforms, and use linux kvm * ci(action): add ios-17.x configs & update ios-15.x to use xcode-14 * ci(action): try to run reactivecircus/android-emulator-runner against v2 tag * ci(action): try ios-15.x w/ xcode-13 & macos-12 * ci(android): run all emulators on push and pull --- .github/workflows/android.yml | 42 ++++++++++++++++++++++------ .github/workflows/chrome.yml | 6 ++-- .github/workflows/ios.yml | 24 +++++++--------- .github/workflows/lint.yml | 6 ++-- conf/pr/local/android-14.config.json | 7 +++++ conf/pr/local/ios-17.x.config.json | 7 +++++ 6 files changed, 63 insertions(+), 29 deletions(-) create mode 100644 conf/pr/local/android-14.config.json create mode 100644 conf/pr/local/ios-17.x.config.json diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 3159b6b4..bffd44f0 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -23,6 +23,7 @@ on: - '**.md' - 'LICENSE' - '.eslint*' + pull_request: paths-ignore: - '**.md' @@ -32,7 +33,7 @@ on: jobs: test: name: Android ${{ matrix.versions.android }} Test - runs-on: macos-latest + runs-on: ubuntu-latest continue-on-error: true # hoist configurations to top that are expected to be updated @@ -40,7 +41,7 @@ jobs: # Storing a copy of the repo repo: ${{ github.event.pull_request.head.repo.full_name || github.repository }} - node-version: 16 + node-version: 20 # 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. @@ -56,31 +57,48 @@ jobs: strategy: matrix: versions: - # Test the lowest minimum supported APIs - android: 7 android-api: 24 - # Test the last 3-4 supported APIs + - android: 7.1 + android-api: 25 + + - android: 8 + android-api: 26 + + - android: 8.1 + android-api: 27 + system-image-arch: x86 + + - android: 9 + android-api: 28 + - android: 10 android-api: 29 - android: 11 android-api: 30 + - android: 12 + android-api: 31 + - android: 12L android-api: 32 - android: 13 android-api: 33 + - android: 14 + android-api: 34 + timeout-minutes: 60 steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: node-version: ${{ env.node-version }} - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 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 }} @@ -88,6 +106,12 @@ jobs: distribution: ${{ env.java-distro }} java-version: ${{ env.java-version }} + - name: Enable KVM group perms + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm + - name: Run Environment Information run: | node --version @@ -105,7 +129,7 @@ jobs: if: ${{ endswith(env.repo, '/cordova-paramedic') != true }} run: npm i -g github:apache/cordova-paramedic - - uses: reactivecircus/android-emulator-runner@d94c3fbe4fe6a29e4a5ba47c12fb47677c73656b + - uses: reactivecircus/android-emulator-runner@v2 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 }} @@ -119,7 +143,7 @@ jobs: script: echo "Pregenerate the AVD before running Paramedic" - name: Run paramedic tests - uses: reactivecircus/android-emulator-runner@d94c3fbe4fe6a29e4a5ba47c12fb47677c73656b + uses: reactivecircus/android-emulator-runner@v2 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 }} diff --git a/.github/workflows/chrome.yml b/.github/workflows/chrome.yml index 72c92ff9..a067f654 100644 --- a/.github/workflows/chrome.yml +++ b/.github/workflows/chrome.yml @@ -39,11 +39,11 @@ jobs: # Storing a copy of the repo repo: ${{ github.event.pull_request.head.repo.full_name || github.repository }} - node-version: 16 + node-version: 20 steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: node-version: ${{ env.node-version }} diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index fc293b7f..aa2e7ef4 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -40,7 +40,7 @@ jobs: # Storing a copy of the repo repo: ${{ github.event.pull_request.head.repo.full_name || github.repository }} - node-version: 16 + node-version: 20 # > Starting April 26, 2021, all iOS and iPadOS apps submitted to the App Store must be built with Xcode 12 and the iOS 14 SDK. # Because of Apple's requirement, listed above, We will only be using the latest Xcode release for testing. @@ -50,28 +50,24 @@ jobs: strategy: matrix: versions: - - os-version: macos-11 - ios-version: 13.x - xcode-version: 11.x - - - os-version: macos-11 - ios-version: 14.x - xcode-version: 12.x - - - os-version: macos-11 + - os-version: macos-12 ios-version: 15.x xcode-version: 13.x - - os-version: macos-12 + - os-version: macos-14 ios-version: 16.x xcode-version: 14.x + - os-version: macos-14 + ios-version: 17.x + xcode-version: 15.x + steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: node-version: ${{ env.node-version }} - - uses: maxim-lobanov/setup-xcode@9a697e2b393340c3cacd97468baa318e4c883d98 + - uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd env: xcode-version: ${{ matrix.versions.xcode-version == '' && env.default_xcode-version || matrix.versions.xcode-version }} with: diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 0f82eb4c..53dad12f 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -34,11 +34,11 @@ jobs: name: Lint Test runs-on: ubuntu-latest env: - node-version: 16 + node-version: 20 steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: node-version: ${{ env.node-version }} diff --git a/conf/pr/local/android-14.config.json b/conf/pr/local/android-14.config.json new file mode 100644 index 00000000..c3fecfaa --- /dev/null +++ b/conf/pr/local/android-14.config.json @@ -0,0 +1,7 @@ +{ + "platform": "android@latest", + "action": "run", + "cleanUpAfterRun": true, + "verbose": true, + "skipAppiumTests": true +} diff --git a/conf/pr/local/ios-17.x.config.json b/conf/pr/local/ios-17.x.config.json new file mode 100644 index 00000000..c6f93b6c --- /dev/null +++ b/conf/pr/local/ios-17.x.config.json @@ -0,0 +1,7 @@ +{ + "platform": "ios@latest", + "action": "run", + "cleanUpAfterRun": true, + "target": "iPhone-15, 17.\\d$", + "verbose": true +}