Skip to content

Commit

Permalink
ci: docker
Browse files Browse the repository at this point in the history
  • Loading branch information
grdsdev committed Feb 7, 2025
1 parent dea204f commit 85d8705
Showing 1 changed file with 126 additions and 109 deletions.
235 changes: 126 additions & 109 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,92 +14,92 @@ concurrency:
cancel-in-progress: true

jobs:
xcodebuild-latest:
name: xcodebuild (16)
runs-on: macos-15
strategy:
matrix:
command: [test, ""]
platform: [IOS, MACOS]
xcode: ["16.2"]
include:
- { command: test, skip_release: 1 }
steps:
- uses: actions/checkout@v4
- name: Select Xcode ${{ matrix.xcode }}
run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app
- name: List available devices
run: xcrun simctl list devices available
- name: Set IgnoreFileSystemDeviceInodeChanges flag
run: defaults write com.apple.dt.XCBuild IgnoreFileSystemDeviceInodeChanges -bool YES
- name: Update mtime for incremental builds
uses: chetan/git-restore-mtime-action@v2
- name: Debug
run: make XCODEBUILD_ARGUMENT="${{ matrix.command }}" CONFIG=Debug PLATFORM="${{ matrix.platform }}" xcodebuild
- name: Release
if: matrix.skip_release != '1'
run: make XCODEBUILD_ARGUMENT="${{ matrix.command }}" CONFIG=Release PLATFORM="${{ matrix.platform }}" xcodebuild
- name: Instal lcov
if: matrix.command == 'test' && matrix.platform == 'IOS'
run: brew install lcov
- name: Export code coverage
id: coverage
if: matrix.command == 'test' && matrix.platform == 'IOS'
run: make XCODEBUILD_ARGUMENT="${{ matrix.command }}" CONFIG=Debug PLATFORM="${{ matrix.platform }}" coverage
- uses: coverallsapp/[email protected]
if: steps.coverage.outcome == 'success'
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
file: lcov.info
# xcodebuild-latest:
# name: xcodebuild (16)
# runs-on: macos-15
# strategy:
# matrix:
# command: [test, ""]
# platform: [IOS, MACOS]
# xcode: ["16.2"]
# include:
# - { command: test, skip_release: 1 }
# steps:
# - uses: actions/checkout@v4
# - name: Select Xcode ${{ matrix.xcode }}
# run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app
# - name: List available devices
# run: xcrun simctl list devices available
# - name: Set IgnoreFileSystemDeviceInodeChanges flag
# run: defaults write com.apple.dt.XCBuild IgnoreFileSystemDeviceInodeChanges -bool YES
# - name: Update mtime for incremental builds
# uses: chetan/git-restore-mtime-action@v2
# - name: Debug
# run: make XCODEBUILD_ARGUMENT="${{ matrix.command }}" CONFIG=Debug PLATFORM="${{ matrix.platform }}" xcodebuild
# - name: Release
# if: matrix.skip_release != '1'
# run: make XCODEBUILD_ARGUMENT="${{ matrix.command }}" CONFIG=Release PLATFORM="${{ matrix.platform }}" xcodebuild
# - name: Instal lcov
# if: matrix.command == 'test' && matrix.platform == 'IOS'
# run: brew install lcov
# - name: Export code coverage
# id: coverage
# if: matrix.command == 'test' && matrix.platform == 'IOS'
# run: make XCODEBUILD_ARGUMENT="${{ matrix.command }}" CONFIG=Debug PLATFORM="${{ matrix.platform }}" coverage
# - uses: coverallsapp/[email protected]
# if: steps.coverage.outcome == 'success'
# with:
# github-token: ${{ secrets.GITHUB_TOKEN }}
# file: lcov.info

xcodebuild:
name: xcodebuild (15)
runs-on: macos-14
strategy:
matrix:
command: [test, ""]
platform: [IOS, MAC_CATALYST, MACOS, TVOS, VISIONOS, WATCHOS]
xcode: [15.2, 15.4]
exclude:
- { xcode: 15.2, command: test }
- { xcode: 15.2, platform: MAC_CATALYST }
- { xcode: 15.2, platform: TVOS }
- { xcode: 15.2, platform: VISIONOS }
- { xcode: 15.2, platform: WATCHOS }
- { command: test, platform: WATCHOS }
include:
- { command: test, skip_release: 1 }
steps:
- uses: actions/checkout@v4
- name: Select Xcode ${{ matrix.xcode }}
run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app
- name: Install visionOS runtime
if: matrix.platform == 'visionOS'
run: |
sudo xcodebuild -runFirstLaunch
sudo xcrun simctl list
sudo xcodebuild -downloadPlatform visionOS
sudo xcodebuild -runFirstLaunch
- name: List available devices
run: xcrun simctl list devices available
- name: Cache derived data
uses: actions/cache@v3
with:
path: |
~/.derivedData
key: |
deriveddata-xcodebuild-${{ matrix.platform }}-${{ matrix.xcode }}-${{ matrix.command }}-${{ hashFiles('**/Sources/**/*.swift', '**/Tests/**/*.swift') }}
restore-keys: |
deriveddata-xcodebuild-${{ matrix.platform }}-${{ matrix.xcode }}-${{ matrix.command }}-
- name: Set IgnoreFileSystemDeviceInodeChanges flag
run: defaults write com.apple.dt.XCBuild IgnoreFileSystemDeviceInodeChanges -bool YES
- name: Update mtime for incremental builds
uses: chetan/git-restore-mtime-action@v2
- name: Debug
run: make XCODEBUILD_ARGUMENT="${{ matrix.command }}" CONFIG=Debug PLATFORM="${{ matrix.platform }}" xcodebuild
- name: Release
if: matrix.skip_release != '1'
run: make XCODEBUILD_ARGUMENT="${{ matrix.command }}" CONFIG=Release PLATFORM="${{ matrix.platform }}" xcodebuild
# xcodebuild:
# name: xcodebuild (15)
# runs-on: macos-14
# strategy:
# matrix:
# command: [test, ""]
# platform: [IOS, MAC_CATALYST, MACOS, TVOS, VISIONOS, WATCHOS]
# xcode: [15.2, 15.4]
# exclude:
# - { xcode: 15.2, command: test }
# - { xcode: 15.2, platform: MAC_CATALYST }
# - { xcode: 15.2, platform: TVOS }
# - { xcode: 15.2, platform: VISIONOS }
# - { xcode: 15.2, platform: WATCHOS }
# - { command: test, platform: WATCHOS }
# include:
# - { command: test, skip_release: 1 }
# steps:
# - uses: actions/checkout@v4
# - name: Select Xcode ${{ matrix.xcode }}
# run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app
# - name: Install visionOS runtime
# if: matrix.platform == 'visionOS'
# run: |
# sudo xcodebuild -runFirstLaunch
# sudo xcrun simctl list
# sudo xcodebuild -downloadPlatform visionOS
# sudo xcodebuild -runFirstLaunch
# - name: List available devices
# run: xcrun simctl list devices available
# - name: Cache derived data
# uses: actions/cache@v3
# with:
# path: |
# ~/.derivedData
# key: |
# deriveddata-xcodebuild-${{ matrix.platform }}-${{ matrix.xcode }}-${{ matrix.command }}-${{ hashFiles('**/Sources/**/*.swift', '**/Tests/**/*.swift') }}
# restore-keys: |
# deriveddata-xcodebuild-${{ matrix.platform }}-${{ matrix.xcode }}-${{ matrix.command }}-
# - name: Set IgnoreFileSystemDeviceInodeChanges flag
# run: defaults write com.apple.dt.XCBuild IgnoreFileSystemDeviceInodeChanges -bool YES
# - name: Update mtime for incremental builds
# uses: chetan/git-restore-mtime-action@v2
# - name: Debug
# run: make XCODEBUILD_ARGUMENT="${{ matrix.command }}" CONFIG=Debug PLATFORM="${{ matrix.platform }}" xcodebuild
# - name: Release
# if: matrix.skip_release != '1'
# run: make XCODEBUILD_ARGUMENT="${{ matrix.command }}" CONFIG=Release PLATFORM="${{ matrix.platform }}" xcodebuild

# linux:
# name: linux
Expand Down Expand Up @@ -134,28 +134,45 @@ jobs:
# - name: Build for library evolution
# run: make build-for-library-evolution

examples:
name: Examples
runs-on: macos-15
# examples:
# name: Examples
# runs-on: macos-15
# steps:
# - uses: actions/checkout@v4
# - name: Cache derived data
# uses: actions/cache@v3
# with:
# path: ~/.derivedData
# key: |
# deriveddata-examples-${{ hashFiles('**/Sources/**/*.swift', '**/Tests/**/*.swift', '**/Examples/**/*.swift') }}
# restore-keys: |
# deriveddata-examples-
# - name: Select Xcode 16
# run: sudo xcode-select -s /Applications/Xcode_16.0.app
# - name: Set IgnoreFileSystemDeviceInodeChanges flag
# run: defaults write com.apple.dt.XCBuild IgnoreFileSystemDeviceInodeChanges -bool YES
# - name: Update mtime for incremental builds
# uses: chetan/git-restore-mtime-action@v2
# - name: Examples
# run: make DERIVED_DATA_PATH=~/.derivedData SCHEME="Examples" XCODEBUILD_ARGUMENT=build xcodebuild
# - name: SlackClone
# run: make DERIVED_DATA_PATH=~/.derivedData SCHEME="SlackClone" XCODEBUILD_ARGUMENT=build xcodebuild
# - name: UserManagement
# run: make DERIVED_DATA_PATH=~/.derivedData SCHEME="UserManagement" XCODEBUILD_ARGUMENT=build xcodebuild

build:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Cache derived data
uses: actions/cache@v3
with:
path: ~/.derivedData
key: |
deriveddata-examples-${{ hashFiles('**/Sources/**/*.swift', '**/Tests/**/*.swift', '**/Examples/**/*.swift') }}
restore-keys: |
deriveddata-examples-
- name: Select Xcode 16
run: sudo xcode-select -s /Applications/Xcode_16.0.app
- name: Set IgnoreFileSystemDeviceInodeChanges flag
run: defaults write com.apple.dt.XCBuild IgnoreFileSystemDeviceInodeChanges -bool YES
- name: Update mtime for incremental builds
uses: chetan/git-restore-mtime-action@v2
- name: Examples
run: make DERIVED_DATA_PATH=~/.derivedData SCHEME="Examples" XCODEBUILD_ARGUMENT=build xcodebuild
- name: SlackClone
run: make DERIVED_DATA_PATH=~/.derivedData SCHEME="SlackClone" XCODEBUILD_ARGUMENT=build xcodebuild
- name: UserManagement
run: make DERIVED_DATA_PATH=~/.derivedData SCHEME="UserManagement" XCODEBUILD_ARGUMENT=build xcodebuild
- name: Install Docker
run: |
brew install docker docker-compose
- name: Start Docker Daemon
run: |
brew install colima
colima start
- name: Verify Docker Installation
run: |
docker version
docker info

0 comments on commit 85d8705

Please sign in to comment.