Skip to content

Add react-native-bootsplash and react-native-localize #45

Add react-native-bootsplash and react-native-localize

Add react-native-bootsplash and react-native-localize #45

name: Check only new libraries.json entries
on:
pull_request:
paths:
- 'libraries.json'
jobs:
runner-setup:
runs-on: ubuntu-latest
outputs:
runners: '{"ios":"macos-latest", "android": "ubuntu-latest"}'
libraries: ${{ steps.read-libraries.outputs.libraries }}
library-data: ${{ steps.read-libraries.outputs.library-data }}
steps:
- name: Checkout PR
uses: actions/checkout@v4
- name: Diff and extract only changed libraries from JSON
id: read-libraries
run: |
# Fetch base libraries.json and compare with PR file
jq -n \
--argjson base "$(curl -s https://raw.githubusercontent.com/react-native-community/nightly-tests/refs/heads/main/libraries.json)" \
--argjson pr "$(jq -c . libraries.json)" \
'
($base | to_entries) as $base_entries |
($pr | to_entries) as $pr_entries |
reduce $pr_entries[] as $item ({};
if ($base[$item.key] // null) != $item.value
then . + { ($item.key): $item.value }
else . end
)
' > changed.json
# Extract the keys of changed.json for the matrix
echo "libraries=$(jq -c 'keys' changed.json)" >> $GITHUB_OUTPUT
# Keep the full data of changed entries
echo "library-data=$(jq -c '.' changed.json)" >> $GITHUB_OUTPUT
test-library-on-nightly:
name: "[${{ matrix.platform }}] ${{ matrix.library }}"
needs: runner-setup
runs-on: ${{ fromJSON(needs.runner-setup.outputs.runners)[matrix.platform] }}
continue-on-error: true
strategy:
matrix:
library: ${{ fromJSON(needs.runner-setup.outputs.libraries) }}
platform: [ios, android]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup node.js
uses: actions/setup-node@v4
with:
node-version: '22.14.0'
cache: yarn
- name: Test ${{ matrix.library }}
if: ${{ fromJSON(needs.runner-setup.outputs.library-data)[matrix.library][matrix.platform] == true }}
id: run-test
uses: ./.github/actions/test-library-on-nightly
with:
library-npm-package: ${{ fromJSON(needs.runner-setup.outputs.library-data)[matrix.library].installCommand }}
platform: ${{ matrix.platform }}