From 311a905f5c6f2dd5426b69013e9ca7f42eec3385 Mon Sep 17 00:00:00 2001 From: Manuel Beck Date: Wed, 1 Jul 2026 23:13:41 +0200 Subject: [PATCH] chore(workflows): update workflows, add `ci.yml` and `release-audit.yml`` - Take workflows from cordova-paramedic - Added new workflows `ci.yml` and `release-audit.yml` --- .github/workflows/android.yml | 48 +++++++++--------------- .github/workflows/chrome.yml | 13 ++++--- .github/workflows/ci.yml | 57 +++++++++++++++++++++++++++++ .github/workflows/ios.yml | 34 ++++++++++------- .github/workflows/lint.yml | 13 ++++--- .github/workflows/release-audit.yml | 55 ++++++++++++++++++++++++++++ 6 files changed, 166 insertions(+), 54 deletions(-) create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/release-audit.yml diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 2d17c40..5da46d2 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -6,12 +6,12 @@ # "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 +# 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 +# KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. @@ -30,6 +30,9 @@ on: - 'LICENSE' - '.eslint*' +permissions: + contents: read + jobs: test: name: Android ${{ matrix.versions.android }} Test @@ -41,7 +44,7 @@ jobs: # Storing a copy of the repo repo: ${{ github.event.pull_request.head.repo.full_name || github.repository }} - node-version: 20 + node-version: 24 # 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. @@ -57,28 +60,6 @@ jobs: strategy: matrix: versions: - - android: 7 - android-api: 24 - - - 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 @@ -91,14 +72,20 @@ jobs: - android: 14 android-api: 34 + - android: 15 + android-api: 35 + + - android: 16 + android-api: 36 + timeout-minutes: 60 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 with: node-version: ${{ env.node-version }} - - uses: actions/setup-java@v4 + - uses: actions/setup-java@v5 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 }} @@ -129,7 +116,8 @@ jobs: if: ${{ endswith(env.repo, '/cordova-paramedic') != true }} run: npm i -g github:apache/cordova-paramedic - - uses: reactivecircus/android-emulator-runner@v2 + # reactivecircus/android-emulator-runner v2.37.0 + - uses: reactivecircus/android-emulator-runner@e89f39f1abbbd05b1113a29cf4db69e7540cae5a 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 }} @@ -143,7 +131,7 @@ jobs: script: echo "Pregenerate the AVD before running Paramedic" - name: Run paramedic tests - uses: reactivecircus/android-emulator-runner@v2 + uses: reactivecircus/android-emulator-runner@e89f39f1abbbd05b1113a29cf4db69e7540cae5a 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 a067f65..f6680a3 100644 --- a/.github/workflows/chrome.yml +++ b/.github/workflows/chrome.yml @@ -6,12 +6,12 @@ # "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 +# 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 +# KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. @@ -29,6 +29,9 @@ on: - 'LICENSE' - '.eslint*' +permissions: + contents: read + jobs: test: name: Chrome Latest Test @@ -39,11 +42,11 @@ jobs: # Storing a copy of the repo repo: ${{ github.event.pull_request.head.repo.full_name || github.repository }} - node-version: 20 + node-version: 24 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 with: node-version: ${{ env.node-version }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..2aae7e3 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,57 @@ +# 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: Node CI + +on: + push: + branches-ignore: + - 'dependabot/**' + pull_request: + branches: + - '*' + +jobs: + codeql: + name: CodeQL Analysis + runs-on: ubuntu-latest + + permissions: + contents: read + security-events: write + + steps: + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 + with: + node-version: 24.x + + - uses: github/codeql-action/init@v4 + with: + tools: linked + languages: javascript, actions + queries: security-and-quality + config: | + paths-ignore: + - node_modules + + - name: Run npm install + run: npm ci + env: + CI: true + + - uses: github/codeql-action/analyze@v4 diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index aa2e7ef..599bf31 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -6,12 +6,12 @@ # "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 +# 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 +# KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. @@ -23,12 +23,16 @@ on: - '**.md' - 'LICENSE' - '.eslint*' + pull_request: paths-ignore: - '**.md' - 'LICENSE' - '.eslint*' +permissions: + contents: read + jobs: test: name: iOS ${{ matrix.versions.ios-version }} Test @@ -40,7 +44,7 @@ jobs: # Storing a copy of the repo repo: ${{ github.event.pull_request.head.repo.full_name || github.repository }} - node-version: 20 + node-version: 24 # > 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,24 +54,26 @@ jobs: strategy: matrix: versions: - - os-version: macos-12 - ios-version: 15.x - xcode-version: 13.x - - - os-version: macos-14 - ios-version: 16.x - xcode-version: 14.x - - os-version: macos-14 ios-version: 17.x xcode-version: 15.x + - os-version: macos-15 + ios-version: 18.x + xcode-version: 16.x + + - os-version: macos-26 + ios-version: 26.x + xcode-version: 26.x + steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 with: node-version: ${{ env.node-version }} - - uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd + + # maxim-lobanov/setup-xcode v1.7.0 + - uses: maxim-lobanov/setup-xcode@ed7a3b1fda3918c0306d1b724322adc0b8cc0a90 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 53dad12..fe55389 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -6,12 +6,12 @@ # "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 +# 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 +# KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. @@ -29,16 +29,19 @@ on: - '.eslint*' - '.github/workflow/lint.yml' +permissions: + contents: read + jobs: test: name: Lint Test runs-on: ubuntu-latest env: - node-version: 20 + node-version: 24 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 with: node-version: ${{ env.node-version }} diff --git a/.github/workflows/release-audit.yml b/.github/workflows/release-audit.yml new file mode 100644 index 0000000..52798d4 --- /dev/null +++ b/.github/workflows/release-audit.yml @@ -0,0 +1,55 @@ +# 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: Release Auditing + +on: + push: + branches-ignore: + - 'dependabot/**' + pull_request: + branches: + - '*' + +permissions: + contents: read + +jobs: + test: + name: Audit Licenses + runs-on: ubuntu-latest + steps: + # Checkout project + - uses: actions/checkout@v6 + + # Check license headers (v2.0.0) + - uses: erisu/apache-rat-action@46fb01ce7d8f76bdcd7ab10e7af46e1ea95ca01c + + # Setup environment with node + - uses: actions/setup-node@v6 + with: + node-version: 24 + + # Install node packages + - name: npm install packages + run: npm ci + + # Check node package licenses (v2.0.1) + - uses: erisu/license-checker-action@99cffa11264fe545fd0baa6c13bca5a00ae608f2 + with: + license-config: 'licence_checker.yml' + include-asf-category-a: true