Skip to content

Commit

Permalink
Merge pull request #37 from felipejoglar/felipejoglar/fix-infra-CI
Browse files Browse the repository at this point in the history
Fix CI infra
  • Loading branch information
felipejoglar committed Jan 12, 2024
2 parents 94ea60b + 9291821 commit 85c12db
Show file tree
Hide file tree
Showing 71 changed files with 327 additions and 960 deletions.
5 changes: 1 addition & 4 deletions .github/actions/gradle-setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,8 @@ runs:
- name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@v1

- name: Setup Gradle
uses: gradle/gradle-build-action@v2

- name: Setup JDK
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
java-version: 17
distribution: 'zulu'
2 changes: 1 addition & 1 deletion .github/actions/xcode-setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ runs:
using: "composite"
steps:
- name: Select Xcode
run: sudo xcode-select -switch /Applications/Xcode_14.3.app
run: sudo xcode-select -switch /Applications/Xcode_14.1.app
shell: bash

- name: Xcode version
Expand Down
50 changes: 12 additions & 38 deletions .github/workflows/android_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,61 +26,35 @@ concurrency:
cancel-in-progress: true

jobs:
static-analysis:
name: Static Analysis
build-and-test:
name: Build & Test
runs-on: ubuntu-latest
timeout-minutes: 10
timeout-minutes: 20

steps:
- name: Checkout Code
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Setup Gradle
uses: ./.github/actions/gradle-setup

- name: Run Spotless
run: ./gradlew spotlessCheck --scan
run: ./gradlew spotlessCheck

- name: Run Detekt
run: ./gradlew apps:android:app:detekt --scan

build:
name: Build
needs: [static-analysis]
runs-on: ubuntu-latest
timeout-minutes: 15

steps:
- name: Checkout Code
uses: actions/checkout@v3

- name: Setup Gradle
uses: ./.github/actions/gradle-setup
run: ./gradlew apps:android:app:detekt

- name: Build
run: ./gradlew apps:android:app:clean apps:android:app:assemble --scan

unit-tests:
name: Unit Tests
needs: [ build ]
runs-on: ubuntu-latest
timeout-minutes: 10

steps:
- name: Checkout Code
uses: actions/checkout@v3

- name: Setup Gradle
uses: ./.github/actions/gradle-setup
run: ./gradlew apps:android:app:clean apps:android:app:assemble

- name: Run Unit tests
run: ./gradlew apps:android:app:clean apps:android:app:test --scan
run: ./gradlew apps:android:app:clean apps:android:app:test

ui-tests:
name: Instrumentation Tests
needs: [ unit-tests ]
needs: [ build-and-test ]
runs-on: macos-latest
timeout-minutes: 20
timeout-minutes: 30

strategy:
fail-fast: true
Expand All @@ -89,7 +63,7 @@ jobs:

steps:
- name: Checkout Code
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Setup Gradle
uses: ./.github/actions/gradle-setup
Expand Down Expand Up @@ -135,4 +109,4 @@ jobs:
ram-size: 4096M
emulator-boot-timeout: 12000
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none -no-snapshot-save
script: ./gradlew apps:android:app:clean apps:android:app:connectedAndroidTest --scan
script: ./gradlew apps:android:app:clean apps:android:app:connectedAndroidTest
33 changes: 7 additions & 26 deletions .github/workflows/ios_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,46 +23,27 @@ on:

env:
IOS_DEVICE: iPhone 14
IOS_VERSION: 16.4
IOS_VERSION: 16.2

concurrency:
group: ios-${{ github.ref }}
cancel-in-progress: true

jobs:
build:
name: Build
runs-on: macos-13
timeout-minutes: 15
name: Build & Test
runs-on: macos-latest
timeout-minutes: 30

steps:
- name: Checkout Code
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Setup Gradle
uses: ./.github/actions/gradle-setup

- name: Setup Xcode
uses: ./.github/actions/xcode-setup

- name: Build
run: sudo xcodebuild clean build -workspace apps/ios/Taskodoro.xcworkspace -scheme "CI" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO -sdk iphonesimulator -destination "platform=iOS Simulator,name=${{ env.IOS_DEVICE }},OS=${{ env.IOS_VERSION }}" ONLY_ACTIVE_ARCH=YES

unit-tests:
name: Unit Tests
needs: [build]
runs-on: macos-13
timeout-minutes: 15

steps:
- name: Checkout Code
uses: actions/checkout@v3

- name: Setup Gradle
uses: ./.github/actions/gradle-setup

- name: Setup Xcode
uses: ./.github/actions/xcode-setup
run: sudo xcodebuild clean build -project apps/ios/app/app.xcodeproj -scheme "CI" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO -sdk iphonesimulator -destination "platform=iOS Simulator,name=${{ env.IOS_DEVICE }},OS=${{ env.IOS_VERSION }}" ONLY_ACTIVE_ARCH=YES

- name: Run Unit Tests
run: sudo xcodebuild clean test -workspace apps/ios/Taskodoro.xcworkspace -scheme "CI" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO -sdk iphonesimulator -destination "platform=iOS Simulator,name=${{ env.IOS_DEVICE }},OS=${{ env.IOS_VERSION }}" ONLY_ACTIVE_ARCH=YES
run: sudo xcodebuild clean test -project apps/ios/app/app.xcodeproj -scheme "CI" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO -sdk iphonesimulator -destination "platform=iOS Simulator,name=${{ env.IOS_DEVICE }},OS=${{ env.IOS_VERSION }}" ONLY_ACTIVE_ARCH=YES
45 changes: 11 additions & 34 deletions .github/workflows/multiplatform_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,51 +25,28 @@ concurrency:

jobs:
static-analysis:
name: Static Analysis
runs-on: ubuntu-latest
timeout-minutes: 10
name: Build & Test
runs-on: macos-latest
timeout-minutes: 30

steps:
- name: Checkout Code
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Setup Gradle
uses: ./.github/actions/gradle-setup

- name: Run Spotless
run: ./gradlew spotlessCheck --scan
run: ./gradlew spotlessCheck

- name: Run Detekt
run: ./gradlew taskodoro:detekt --scan

build:
name: Build
needs: [static-analysis]
runs-on: macos-latest
timeout-minutes: 15

steps:
- name: Checkout Code
uses: actions/checkout@v3

- name: Setup Gradle
uses: ./.github/actions/gradle-setup
run: ./gradlew taskodoro:detekt

- name: Build
run: ./gradlew taskodoro:clean taskodoro:assemble --scan

unit-tests:
name: Unit Tests
needs: [build]
runs-on: macos-latest
timeout-minutes: 10

steps:
- name: Checkout Code
uses: actions/checkout@v3

- name: Setup Gradle
uses: ./.github/actions/gradle-setup
run: |
./gradlew taskodoro:clean taskodoro:assemble
./gradlew infra:database:clean infra:database:assemble
./gradlew infra:preferences:clean infra:preferences:assemble
- name: Run Unit Tests
run: ./gradlew taskodoro:clean taskodoro:allTests --scan
run: ./gradlew taskodoro:clean taskodoro:allTests
4 changes: 2 additions & 2 deletions apps/android/app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2023 Felipe Joglar
* Copyright 2024 Felipe Joglar
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -68,7 +68,7 @@ android {
}

kotlinOptions {
jvmTarget = "17"
jvmTarget = JavaVersion.VERSION_17.toString()
}

packaging {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2023 Felipe Joglar
* Copyright 2024 Felipe Joglar
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -18,10 +18,10 @@ package com.taskodoro.android.app.di

import android.content.Context
import com.taskodoro.onboarding.OnboardingStoreFactory
import com.taskodoro.storage.tasks.LocalTaskRepository
import com.taskodoro.storage.tasks.TaskStoreFactory
import com.taskodoro.tasks.new.TaskNew
import com.taskodoro.tasks.new.TaskNewUseCase
import com.taskodoro.tasks.data.TaskRepository
import com.taskodoro.tasks.data.TaskStoreFactory
import com.taskodoro.tasks.feature.new.TaskNew
import com.taskodoro.tasks.feature.new.TaskNewUseCase
import com.taskodoro.tasks.validator.TaskValidatorFactory
import java.time.Instant
import java.time.ZoneId
Expand All @@ -37,13 +37,13 @@ class DiContainer(
val validator = TaskValidatorFactory.create()

return TaskNew(
repository = taskRepository,
saver = taskRepository,
validator = validator,
now = { Instant.now().atZone(ZoneId.of("UTC")).toEpochSecond() },
)
}

private val taskRepository by lazy {
LocalTaskRepository(TaskStoreFactory(applicationContext).create())
TaskRepository(TaskStoreFactory(applicationContext).create())
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2023 Felipe Joglar
* Copyright 2024 Felipe Joglar
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -16,7 +16,7 @@

package com.taskodoro.android.app.navigation.graphs.tasks

import com.taskodoro.tasks.new.TaskNewUseCase
import com.taskodoro.tasks.feature.new.TaskNewUseCase
import moe.tlaster.precompose.navigation.NavOptions
import moe.tlaster.precompose.navigation.Navigator
import moe.tlaster.precompose.navigation.RouteBuilder
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2023 Felipe Joglar
* Copyright 2024 Felipe Joglar
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -23,7 +23,7 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import com.taskodoro.android.app.tasks.new.TaskNewScreen
import com.taskodoro.android.app.tasks.new.TaskNewViewModel
import com.taskodoro.tasks.new.TaskNewUseCase
import com.taskodoro.tasks.feature.new.TaskNewUseCase
import kotlinx.coroutines.Dispatchers
import moe.tlaster.precompose.navigation.BackHandler
import moe.tlaster.precompose.navigation.NavOptions
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2023 Felipe Joglar
* Copyright 2024 Felipe Joglar
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -18,7 +18,7 @@ package com.taskodoro.android.app.tasks.new

import androidx.annotation.StringRes
import com.taskodoro.android.R
import com.taskodoro.tasks.new.TaskNewUseCase
import com.taskodoro.tasks.feature.new.TaskNewUseCase
import com.taskodoro.tasks.validator.TaskValidatorError
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.flow.Flow
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2023 Felipe Joglar
* Copyright 2024 Felipe Joglar
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -18,7 +18,7 @@ package com.taskodoro.android.app.tasks.new

import com.taskodoro.android.R
import com.taskodoro.android.app.helpers.expectEquals
import com.taskodoro.tasks.new.TaskNewUseCase
import com.taskodoro.tasks.feature.new.TaskNewUseCase
import com.taskodoro.tasks.validator.TaskValidatorError
import com.taskodoro.tasks.validator.ValidatorError
import kotlinx.coroutines.test.UnconfinedTestDispatcher
Expand Down
27 changes: 0 additions & 27 deletions apps/ios/App/App/Main/CombineHelpers.swift

This file was deleted.

Loading

0 comments on commit 85c12db

Please sign in to comment.