Fishee/.github/workflows/build-and-test.yml

86 lines
2 KiB
YAML

name: Build and Test
on:
push:
branches:
- main
pull_request:
branches:
- main
release:
types: [created]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Swift
uses: swift-actions/setup-swift@v2
with:
swift-version: '6.0'
- name: Get swift version
run: swift --version
- name: Run tests
run: swift test
build-macos:
runs-on: macos-latest
if: github.event_name == 'release'
strategy:
matrix:
arch: [x86_64, arm64]
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Swift
uses: swift-actions/setup-swift@v2
with:
swift-version: '6.0'
- name: Get swift version
run: swift --version
- name: Build for macOS
run: |
swift build -c release --arch ${{ matrix.arch }}
mkdir -p artifacts/macos-${{ matrix.arch }}
cp .build/apple/Products/Release/fishee artifacts/macos-${{ matrix.arch }}/
- name: Upload macOS artifacts
uses: actions/upload-artifact@v3
with:
name: fishee-macos-${{ matrix.arch }}-${{ github.ref_name }}
path: artifacts/macos-${{ matrix.arch }}
build-linux:
runs-on: ubuntu-latest
if: github.event_name == 'release'
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Swift
uses: swift-actions/setup-swift@v2
with:
swift-version: '6.0'
- name: Get swift version
run: swift --version
- name: Build for Linux
run: |
swift build -c release
mkdir -p artifacts/linux
cp .build/release/fishee artifacts/linux/
- name: Upload Linux artifacts
uses: actions/upload-artifact@v3
with:
name: fishee-linux-${{ github.ref_name }}
path: artifacts/linux