-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
1 changed file
with
171 additions
and
171 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,173 +1,173 @@ | ||
name: Kotlin Multiplatform CI/CD | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
pull_request: | ||
branches: | ||
- main | ||
|
||
jobs: | ||
build-android: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
|
||
- name: Set up JDK | ||
uses: actions/setup-java@v4 | ||
with: | ||
java-version: '17' | ||
distribution: 'zulu' | ||
|
||
- name: Cache Gradle packages | ||
uses: actions/cache@v4 | ||
with: | ||
path: ~/.gradle/caches | ||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }} | ||
restore-keys: | | ||
${{ runner.os }}-gradle- | ||
- name: Build Android | ||
run: ./gradlew assembleRelease --info | ||
|
||
- name: Run Unit Tests | ||
run: ./gradlew test | ||
|
||
- name: Build iOS shared code | ||
run: ./gradlew :composeApp:compileKotlinIosSimulatorArm64 | ||
|
||
- name: Upload Android artifacts | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: android-release-apk | ||
path: composeApp/build/outputs/apk/release/*.apk | ||
|
||
build-ios: | ||
runs-on: macos-14 | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
|
||
- name: Set up JDK | ||
uses: actions/setup-java@v4 | ||
with: | ||
java-version: '17' | ||
distribution: 'zulu' | ||
|
||
- name: Install Xcode Command Line Tools | ||
run: | | ||
if ! xcode-select --print-path > /dev/null 2>&1; then | ||
echo "Xcode Command Line Tools are not installed. Installing..." | ||
xcode-select --install || echo "Failed to install Xcode Command Line Tools" | ||
else | ||
echo "Xcode Command Line Tools are already installed" | ||
fi | ||
- name: Build iOS | ||
run: | | ||
xcodebuild -allowProvisioningUpdates -workspace iosApp/iosApp.xcodeproj/project.xcworkspace -scheme iosApp -configuration Debug -sdk iphoneos -destination name='iPhone 14' build CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY="" DEVELOPMENT_TEAM="" | ||
# name: Kotlin Multiplatform CI/CD | ||
|
||
# on: | ||
# push: | ||
# branches: | ||
# - main | ||
# pull_request: | ||
# branches: | ||
# - main | ||
|
||
# jobs: | ||
# build-android: | ||
# runs-on: ubuntu-latest | ||
# steps: | ||
# - name: Checkout code | ||
# uses: actions/checkout@v4 | ||
|
||
# - name: Set up JDK | ||
# uses: actions/setup-java@v4 | ||
# with: | ||
# java-version: '17' | ||
# distribution: 'zulu' | ||
|
||
# - name: Cache Gradle packages | ||
# uses: actions/cache@v4 | ||
# with: | ||
# path: ~/.gradle/caches | ||
# key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }} | ||
# restore-keys: | | ||
# ${{ runner.os }}-gradle- | ||
|
||
# - name: Build Android | ||
# run: ./gradlew assembleRelease --info | ||
|
||
# - name: Run Unit Tests | ||
# run: ./gradlew test | ||
|
||
# - name: Build iOS shared code | ||
# run: ./gradlew :composeApp:compileKotlinIosSimulatorArm64 | ||
|
||
# - name: Upload Android artifacts | ||
# uses: actions/upload-artifact@v4 | ||
# with: | ||
# name: android-release-apk | ||
# path: composeApp/build/outputs/apk/release/*.apk | ||
|
||
# build-ios: | ||
# runs-on: macos-14 | ||
# steps: | ||
# - name: Checkout code | ||
# uses: actions/checkout@v4 | ||
|
||
# - name: Set up JDK | ||
# uses: actions/setup-java@v4 | ||
# with: | ||
# java-version: '17' | ||
# distribution: 'zulu' | ||
|
||
# - name: Install Xcode Command Line Tools | ||
# run: | | ||
# if ! xcode-select --print-path > /dev/null 2>&1; then | ||
# echo "Xcode Command Line Tools are not installed. Installing..." | ||
# xcode-select --install || echo "Failed to install Xcode Command Line Tools" | ||
# else | ||
# echo "Xcode Command Line Tools are already installed" | ||
# fi | ||
|
||
# - name: Build iOS | ||
# run: | | ||
# xcodebuild -allowProvisioningUpdates -workspace iosApp/iosApp.xcodeproj/project.xcworkspace -scheme iosApp -configuration Debug -sdk iphoneos -destination name='iPhone 14' build CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY="" DEVELOPMENT_TEAM="" | ||
|
||
- name: Upload iOS artifacts | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: ios-framework | ||
path: build/ios/Debug-iphonesimulator/*.app | ||
|
||
build-desktop: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
|
||
- name: Set up JDK | ||
uses: actions/setup-java@v4 | ||
with: | ||
java-version: '17' | ||
distribution: 'zulu' | ||
|
||
- name: Cache Gradle packages | ||
uses: actions/cache@v4 | ||
with: | ||
path: ~/.gradle/caches | ||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }} | ||
restore-keys: | | ||
${{ runner.os }}-gradle- | ||
- name: Build Desktop | ||
run: ./gradlew desktopJar | ||
|
||
- name: Upload Desktop artifacts | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: desktop-jar | ||
path: composeApp/build/libs/*.jar | ||
|
||
build-macos: | ||
runs-on: macos-14 | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
|
||
- name: Install Dependencies | ||
run: brew install create-dmg | ||
|
||
- name: Build macOS app | ||
run: | | ||
xcodebuild -workspace iosApp/iosApp.xcodeproj/project.xcworkspace -scheme iosApp -configuration Release -sdk macosx clean build CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY="" DEVELOPMENT_TEAM="" | ||
# - name: Upload iOS artifacts | ||
# uses: actions/upload-artifact@v4 | ||
# with: | ||
# name: ios-framework | ||
# path: build/ios/Debug-iphonesimulator/*.app | ||
|
||
# build-desktop: | ||
# runs-on: ubuntu-latest | ||
# steps: | ||
# - name: Checkout code | ||
# uses: actions/checkout@v4 | ||
|
||
# - name: Set up JDK | ||
# uses: actions/setup-java@v4 | ||
# with: | ||
# java-version: '17' | ||
# distribution: 'zulu' | ||
|
||
# - name: Cache Gradle packages | ||
# uses: actions/cache@v4 | ||
# with: | ||
# path: ~/.gradle/caches | ||
# key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }} | ||
# restore-keys: | | ||
# ${{ runner.os }}-gradle- | ||
|
||
# - name: Build Desktop | ||
# run: ./gradlew desktopJar | ||
|
||
# - name: Upload Desktop artifacts | ||
# uses: actions/upload-artifact@v4 | ||
# with: | ||
# name: desktop-jar | ||
# path: composeApp/build/libs/*.jar | ||
|
||
# build-macos: | ||
# runs-on: macos-14 | ||
# steps: | ||
# - name: Checkout code | ||
# uses: actions/checkout@v4 | ||
|
||
# - name: Install Dependencies | ||
# run: brew install create-dmg | ||
|
||
# - name: Build macOS app | ||
# run: | | ||
# xcodebuild -workspace iosApp/iosApp.xcodeproj/project.xcworkspace -scheme iosApp -configuration Release -sdk macosx clean build CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY="" DEVELOPMENT_TEAM="" | ||
|
||
- name: Create DMG | ||
run: | | ||
create-dmg 'path/to/your/app.app' 'path/to/output/directory' | ||
# Adjust paths as needed | ||
- name: Upload DMG | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: macos-dmg | ||
path: path/to/output/directory/*.dmg | ||
|
||
build-web: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
|
||
- name: Set up JDK | ||
uses: actions/setup-java@v4 | ||
with: | ||
java-version: '17' | ||
distribution: 'zulu' | ||
|
||
- name: Cache Gradle packages | ||
uses: actions/cache@v4 | ||
with: | ||
path: ~/.gradle/caches | ||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }} | ||
restore-keys: | | ||
${{ runner.os }}-gradle- | ||
- name: Build Web | ||
run: ./gradlew wasmJsBrowserWebpack | ||
|
||
- name: Upload Web artifacts | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: web-app | ||
path: webApp/build/distributions/*.tar.gz | ||
|
||
generate-artifact-links: | ||
runs-on: ubuntu-latest | ||
needs: [build-android, build-ios, build-desktop, build-web] | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
|
||
- name: List artifacts | ||
run: | | ||
echo "Artifact URLs for download:" | ||
echo "Android APK: ${{ needs.build-android.outputs.artifact-url }}" | ||
echo "iOS Framework: ${{ needs.build-ios.outputs.artifact-url }}" | ||
echo "Desktop JAR: ${{ needs.build-desktop.outputs.artifact-url }}" | ||
echo "Web App: ${{ needs.build-web.outputs.artifact-url }}" | ||
# - name: Create DMG | ||
# run: | | ||
# create-dmg 'path/to/your/app.app' 'path/to/output/directory' | ||
# # Adjust paths as needed | ||
|
||
# - name: Upload DMG | ||
# uses: actions/upload-artifact@v3 | ||
# with: | ||
# name: macos-dmg | ||
# path: path/to/output/directory/*.dmg | ||
|
||
# build-web: | ||
# runs-on: ubuntu-latest | ||
# steps: | ||
# - name: Checkout code | ||
# uses: actions/checkout@v4 | ||
|
||
# - name: Set up JDK | ||
# uses: actions/setup-java@v4 | ||
# with: | ||
# java-version: '17' | ||
# distribution: 'zulu' | ||
|
||
# - name: Cache Gradle packages | ||
# uses: actions/cache@v4 | ||
# with: | ||
# path: ~/.gradle/caches | ||
# key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }} | ||
# restore-keys: | | ||
# ${{ runner.os }}-gradle- | ||
|
||
# - name: Build Web | ||
# run: ./gradlew wasmJsBrowserWebpack | ||
|
||
# - name: Upload Web artifacts | ||
# uses: actions/upload-artifact@v4 | ||
# with: | ||
# name: web-app | ||
# path: webApp/build/distributions/*.tar.gz | ||
|
||
# generate-artifact-links: | ||
# runs-on: ubuntu-latest | ||
# needs: [build-android, build-ios, build-desktop, build-web] | ||
# steps: | ||
# - name: Checkout code | ||
# uses: actions/checkout@v4 | ||
|
||
# - name: List artifacts | ||
# run: | | ||
# echo "Artifact URLs for download:" | ||
# echo "Android APK: ${{ needs.build-android.outputs.artifact-url }}" | ||
# echo "iOS Framework: ${{ needs.build-ios.outputs.artifact-url }}" | ||
# echo "Desktop JAR: ${{ needs.build-desktop.outputs.artifact-url }}" | ||
# echo "Web App: ${{ needs.build-web.outputs.artifact-url }}" |