Skip to content

BUG-988267: fix components destroy flow (#29) #652

BUG-988267: fix components destroy flow (#29)

BUG-988267: fix components destroy flow (#29) #652

Workflow file for this run

name: "Perform build and checks"
on:
push
jobs:
validate-android:
runs-on: 'ubuntu-latest'
steps:
- name: Enable KVM
shell: bash
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: Checkout repo
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Set up cache for CDN files
id: cdn-cache-android
uses: actions/cache@v4
with:
path: test/src/commonMain/composeResources/files/responses/cdn
key: cdn-cache-${{ hashFiles('test/src/commonMain/composeResources/files/responses/download_js_files.sh') }}
- name: Download CDN files
if: steps.cdn-cache-android.outputs.cache-hit != 'true'
run: cd test/src/commonMain/composeResources/files/responses && ./download_js_files.sh
- name: Set up cache for Gradle
id: cache-gradle
uses: actions/cache@v4
with:
path: ~/.gradle
key: gradle-cache-android-check
- name: Run component tests
shell: bash
run: ./gradlew :test:pixelAndroidDeviceTest
- name: Run sample tests
shell: bash
run: ./gradlew :samples:android-cmp-app:pixelDebugAndroidTest
- name: Upload test artifacts for failures
if: failure()
uses: actions/upload-artifact@v4
with:
name: validate-android-artifacts
path: |
test/build/reports/
test/build/outputs/**/logcat*
samples/android-cmp-app/build/reports/
samples/android-cmp-app/build/outputs/**/logcat*
samples/android-cmp-app/build/outputs/**/*.png
if-no-files-found: warn
retention-days: 3
validate-ios:
runs-on: 'macos-26'
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'corretto'
- name: Set up cache for CDN files
id: cdn-cache-ios
uses: actions/cache@v4
with:
path: test/src/commonMain/composeResources/files/responses/cdn
key: cdn-cache-${{ hashFiles('test/src/commonMain/composeResources/files/responses/download_js_files.sh') }}
- name: Download CDN files
if: steps.cdn-cache-ios.outputs.cache-hit != 'true'
run: cd test/src/commonMain/composeResources/files/responses && ./download_js_files.sh
- name: Set up cache for Gradle
id: cache-gradle
uses: actions/cache@v4
with:
path: ~/.gradle
key: gradle-cache-ios-check
- name: Select specific XCode version
run: sudo xcode-select -s "/Applications/Xcode_26.3.app"
- name: Create new test simulator
run: |
xcodebuild -version
echo "Listing available devices / iOSes:"
xcrun simctl list
echo "Deleting simulator SDKTestSimulator (if exists)"
xcrun simctl delete SDKTestSimulator || true
echo "Creating new SDKTestSimulator"
xcrun simctl create SDKTestSimulator com.apple.CoreSimulator.SimDeviceType.iPhone-17 com.apple.CoreSimulator.SimRuntime.iOS-26-5 | tee simulator.id
- name: iOS sample application UI tests
run: |
set -o pipefail
rm -rf build || true
mkdir -p build
xcodebuild \
-project samples/swiftui-components-app/UITest/UITest.xcodeproj \
-scheme UITest \
-destination "platform=iOS Simulator,id=$(cat simulator.id)" \
-resultBundlePath ./build/iOSTests.xcresult \
-retry-tests-on-failure \
-test-iterations 2 \
-parallel-testing-enabled NO \
test 2>&1 | xcpretty
exit ${PIPESTATUS[0]}
- name: Upload test artifacts for failures
if: failure()
uses: actions/upload-artifact@v4
with:
name: validate-ios-artifacts
path: build
if-no-files-found: warn
retention-days: 3
- name: Delete test simulator
if: always()
run: |
echo "Deleting simulator SDKTestSimulator (if exists)"
xcrun simctl delete SDKTestSimulator || true