Skip to content

ci: docker

ci: docker #893

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
branches:
- "*"
workflow_dispatch:
concurrency:
group: ci-${{ github.ref }}
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:
# 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
# strategy:
# matrix:
# swift-version: ["5.10"]
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - uses: swift-actions/setup-swift@v2
# with:
# swift-version: ${{ matrix.swift-version }}
# - name: Cache build
# uses: actions/cache@v3
# with:
# path: |
# .build
# key: |
# build-spm-linux-${{ matrix.swift-version }}-${{ hashFiles('**/Sources/**/*.swift', '**/Tests/**/*.swift', '**/Package.resolved') }}
# restore-keys: |
# build-spm-linux-${{ matrix.swift-version }}-
# - name: Run tests
# run: swift test --skip IntegrationTests
# library-evolution:
# name: Library (evolution)
# runs-on: macos-14
# steps:
# - uses: actions/checkout@v4
# - name: Select Xcode 15.4
# run: sudo xcode-select -s /Applications/Xcode_15.4.app
# - name: Build for library evolution
# run: make build-for-library-evolution
# 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:
- name: Install Docker + Lima
run: |
brew install docker lima
limactl start --tty=false
limactl shell default -- sudo systemctl enable --now docker
docker context create lima --docker "host=unix://${HOME}/.lima/docker/sock"
docker context use lima
- name: Verify Docker Installation
run: |
docker version
docker info