Skip to content

Commit

Permalink
chore(CI): configs CI to run build, tests and code coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
victorwads committed Apr 25, 2023
1 parent 5821b0d commit 8cae05c
Show file tree
Hide file tree
Showing 14 changed files with 214 additions and 105 deletions.
14 changes: 0 additions & 14 deletions .github/workflows/checkLocalization.yaml

This file was deleted.

40 changes: 40 additions & 0 deletions .github/workflows/quality.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Quality

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:

localizable:
name: Check Localizable.strings
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Run script
run: bash Pkg/stringsUsesCheck.sh

testCoverage:
name: Build, Test and Gather Coverage
runs-on: macos-13

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

- name: Cache Swift packages
uses: actions/cache@v3
with:
path: /Users/runner/Library/Developer/Xcode/DerivedData/**/SourcePackages
key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}
restore-keys: ${{ runner.os }}-xcode-spm-

- name: Build and UnitTest
run: bash Pkg/runBuildTests.sh

- name: Upload coverage reports to Codecov
run: bash <(curl -s https://codecov.io/bash) -J UptimeLogger -t "${{ secrets.CODECOV_TOKEN }}"
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,9 @@
*.mode1v3
*.mode2v3
*.perspectivev3
*.xcworkspace
*.xcuserstate
**/xcuserdata/**
**/xcshareddata/**
**/xcschemes/**

# Arquivos de compilação do Swift Package Manager
.build/
Expand All @@ -22,6 +21,7 @@
**/logs/*.log
**/logs/config
**/logs/latest
**/xcov_report
Pkg/cache/
Pkg/*.dmg
Pkg/*.pkg
4 changes: 2 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

----

* 2.3 - WIP
* [2.3 - Current](https://github.com/victorwads/UptimeLogger/releases/download/2.3/UptimeLogger-2.3.dmg)
* App
* Logs Screen: new layout
* Details Screen: improve layout
Expand All @@ -23,7 +23,7 @@
* Minor improvements
* Remove `init:` from log contract

- [2.2 - Current](https://github.com/victorwads/UptimeLogger/releases/download/2.2/UptimeLogger-2.2.dmg)
- [2.2](https://github.com/victorwads/UptimeLogger/releases/download/2.2/UptimeLogger-2.2.dmg)
- App
- New Update Screen to download new updates
- Uninstall remover app caches for all users
Expand Down
3 changes: 3 additions & 0 deletions Pkg/build.xcconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
CODE_SIGN_IDENTITY =
CODE_SIGNING_REQUIRED = NO
PROVISIONING_PROFILE_SPECIFIER =
15 changes: 0 additions & 15 deletions Pkg/createAllpackaged.sh

This file was deleted.

26 changes: 0 additions & 26 deletions Pkg/exportTests.sh

This file was deleted.

18 changes: 18 additions & 0 deletions Pkg/runBuildTests.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/bin/sh
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
PROJECT="$SCRIPT_DIR/../UptimeLogger.xcodeproj"


echo -e "\033[32mBuildando app release\033[0m"

xcodebuild test -quiet -project "$PROJECT"\
-scheme UptimeLogger\
-xcconfig "$SCRIPT_DIR/build.xcconfig"\
-enableCodeCoverage YES\
-destination "platform=macOS"

# xcov -p "$PROJECT"\
# -s UptimeLogger --html_report\
# -e FirebaseCrashlytics,FirebaseInstallations,\
# GULAppDelegateSwizzler,GULEnvironment,GULLogger,GULMethodSwizzler,GULMethodSwizzler,\
# GULNSData,GULNetwork,GULUserDefaults
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
# Uptime Logger

![Xcode 14.3](https://img.shields.io/badge/Xcode-14.3-blue.svg)
![Swift Language](https://img.shields.io/badge/language-Swift-green.svg)
![Shell Language](https://img.shields.io/badge/language-Bash-orange.svg)
### Always-on monitoring and logging your system's uptime and status.

## Always-on monitoring and logging of your system's uptime and status.
![UptimeLogger Icon](UptimeLogger/Assets.xcassets/AppIcon.appiconset/64.png)
![UptimeLogger Icon](Resources/Assets.xcassets/AppIcon.appiconset/64.png)
![Platform Maos](https://img.shields.io/badge/platform-macOS-lightgrey.svg)
![Version 2.2](https://img.shields.io/badge/Version-2.2-orange.svg)

![Swift Language](https://img.shields.io/badge/language-Swift-green.svg)
![Shell Language](https://img.shields.io/badge/language-Bash-orange.svg)
[![codecov](https://codecov.io/gh/victorwads/UptimeLogger/branch/main/graph/badge.svg?token=EH6WPEA7HC)](https://codecov.io/gh/victorwads/UptimeLogger)

UptimeLogger is an app that helps you keep track of how long your Mac has been running without restarting. It was created after a MacBook suffered water damage and started shutting down unexpectedly, prompting the need to monitor system uptime. 😔

## Features
Expand Down
22 changes: 12 additions & 10 deletions Sources/UptimeLoggerApp.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,19 +17,21 @@ struct UptimeLoggerApp: App {

@AppStorage("logsFolder") var storedFolder: String = LogsProviderFilesSystem.defaultLogsFolder

let firebaseConfiguration: Void = FirebaseApp.configure()

var body: some Scene {
let provider = LogsProviderFilesSystem(folder: storedFolder)
WindowGroup {
NavigationAppView(provider: provider).onAppear {
Analytics.logEvent(
AnalyticsEventScreenView,
parameters: [
AnalyticsParameterScreenName: "Main Window",
AnalyticsParameterScreenClass: "UptimeLoggerApp"
]
)
if let _ = ProcessInfo.processInfo.environment["XCTestConfigurationFilePath"] {
} else {
let _ = FirebaseApp.configure()
NavigationAppView(provider: provider).onAppear {
Analytics.logEvent(
AnalyticsEventScreenView,
parameters: [
AnalyticsParameterScreenName: "Main Window",
AnalyticsParameterScreenClass: "UptimeLoggerApp"
]
)
}
}
}
WindowGroup {
Expand Down
43 changes: 12 additions & 31 deletions Tests/VersionTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -13,54 +13,35 @@ import XCTest
final class VersionTests: XCTestCase {


func testVersionCompare() {
func testVersionLower() {
let version1 = "1.2.3"
let version2 = "1.3.0"

let comparisonResult = version1.compareVersion(version2)
XCTAssertEqual(comparisonResult, -1)

switch comparisonResult {
case 1:
print("\(version1) é maior que \(version2)")
case -1:
print("\(version1) é menor que \(version2)")
default:
print("\(version1) é igual a \(version2)")
}
}

func testVersionCompare2() {
func testVersionLower2() {
let version1 = "1.2"
let version2 = "1.3.0"

let comparisonResult = version1.compareVersion(version2)
XCTAssertEqual(comparisonResult, -1)

switch comparisonResult {
case 1:
print("\(version1) é maior que \(version2)")
case -1:
print("\(version1) é menor que \(version2)")
default:
print("\(version1) é igual a \(version2)")
}
}

func testVersionCompare3() {
let version1 = "1.2.3"
func testVersionBigger() {
let version1 = "2.2.3"
let version2 = "1.3"

let comparisonResult = version1.compareVersion(version2)
XCTAssertEqual(comparisonResult, -1)
XCTAssertEqual(comparisonResult, 1)
}

func testVersionEqual() {
let version1 = "2.0.0"
let version2 = "2.0"

switch comparisonResult {
case 1:
print("\(version1) é maior que \(version2)")
case -1:
print("\(version1) é menor que \(version2)")
default:
print("\(version1) é igual a \(version2)")
}
let comparisonResult = version1.compareVersion(version2)
XCTAssertEqual(comparisonResult, 0)
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>
Loading

0 comments on commit 8cae05c

Please sign in to comment.