diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 2d17c40..e7057a5 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,7 @@ jobs: if: ${{ endswith(env.repo, '/cordova-paramedic') != true }} run: npm i -g github:apache/cordova-paramedic - - uses: reactivecircus/android-emulator-runner@v2 + - uses: reactivecircus/android-emulator-runner@b530d96654c385303d652368551fb075bc2f0b6b 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 +130,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@b530d96654c385303d652368551fb075bc2f0b6b 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/ios.yml b/.github/workflows/ios.yml index d45c3ed..c87ec5d 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. @@ -68,11 +72,11 @@ jobs: - os-version: macos-26 ios-version: 26.x - xcode-version: 26.x + xcode-version: 26.1 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 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 diff --git a/.github/workflows/release-notify.yml b/.github/workflows/release-notify.yml deleted file mode 100644 index d9a76f1..0000000 --- a/.github/workflows/release-notify.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: Close issue asking for release - -on: - issues: - types: [opened] - -jobs: - action-test: - runs-on: ubuntu-latest - steps: - - uses: niklasmerz/release-notify@master - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/README.md b/README.md index 67c69a4..80c9b36 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,7 @@ description: Take pictures with the device camera. [![GitHub - Chrome Workflow](https://github.com/apache/cordova-plugin-camera/actions/workflows/chrome.yml/badge.svg?branch=master)](https://github.com/apache/cordova-plugin-camera/actions/workflows/chrome.yml?query=branch%3Amaster) [![GitHub - iOS Workflow](https://github.com/apache/cordova-plugin-camera/actions/workflows/ios.yml/badge.svg?branch=master)](https://github.com/apache/cordova-plugin-camera/actions/workflows/ios.yml?query=branch%3Amaster) [![GitHub - Lint](https://github.com/apache/cordova-plugin-camera/actions/workflows/lint.yml/badge.svg?branch=master)](https://github.com/apache/cordova-plugin-camera/actions/workflows/lint.yml?query=branch%3Amaster) +[![GitHub - Release Audit Workflow](https://github.com/apache/cordova-plugin-camera/actions/workflows/release-audit.yml/badge.svg?branch=master)](https://github.com/apache/cordova-plugin-camera/actions/workflows/release-audit.yml?query=branch%3Amaster) This plugin defines a global `navigator.camera` object, which provides an API for taking pictures and choosing images from the device's image library. diff --git a/licence_checker.yml b/licence_checker.yml new file mode 100644 index 0000000..6456f79 --- /dev/null +++ b/licence_checker.yml @@ -0,0 +1,19 @@ +# 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. + +# Empty for the release audit workflow. +# The `license-config` is required even if there are no custom configs