Skip to content

Update GitHub CI for Linux ARM #1

Update GitHub CI for Linux ARM

Update GitHub CI for Linux ARM #1

Workflow file for this run

name: Swift ARM
on: [push]
jobs:
linux-arm-raspios-build:
name: Linux (Build)
runs-on: ubuntu-latest
strategy:
matrix:
config: ["debug" , "release"]
swift: ["6.1.2"]
linux: ["raspios"]
release: ["bookworm"]
arch: ["armv6", "armv7"]
container: swift:${{ matrix.swift }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install dependencies
run: apt update -y; apt install wget -y
- name: Install SDK
run: |
wget https://github.com/xtremekforever/swift-armv7/releases/download/${{ matrix.swift }}/swift-${{ matrix.swift }}-RELEASE-${{ matrix.linux }}-${{ matrix.release }}-${{ matrix.arch }}-sdk.tar.gz
tar -xvf swift-${{ matrix.swift }}-RELEASE-${{ matrix.linux }}-${{ matrix.release }}-${{ matrix.arch }}-sdk.tar.gz
mv swift-${{ matrix.swift }}-RELEASE-${{ matrix.linux }}-${{ matrix.release }}-${{ matrix.arch }} /opt/swift-${{ matrix.swift }}-RELEASE-${{ matrix.linux }}-${{ matrix.release }}-${{ matrix.arch }}
- name: Swift Version
run: swift --version
- name: Build
run: SWIFT_BUILD_DYNAMIC_LIBRARY=1 swift build -c ${{ matrix.config }} --destination /opt/swift-${{ matrix.swift }}-RELEASE-${{ matrix.linux }}-${{ matrix.release }}-${{ matrix.arch }}/${{ matrix.linux }}-${{ matrix.release }}.json
linux-arm-debian-build:
name: Linux (Build)
runs-on: ubuntu-latest
strategy:
matrix:
config: ["debug" , "release"]
swift: ["6.1.2"]
linux: ["debian"]
release: ["bookworm", "bullseye"]
arch: ["armv7"]
container: swift:${{ matrix.swift }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install dependencies
run: apt update -y; apt install wget -y
- name: Install SDK
run: |
wget https://github.com/xtremekforever/swift-armv7/releases/download/${{ matrix.swift }}/swift-${{ matrix.swift }}-RELEASE-${{ matrix.linux }}-${{ matrix.release }}-${{ matrix.arch }}-sdk.tar.gz
tar -xvf swift-${{ matrix.swift }}-RELEASE-${{ matrix.linux }}-${{ matrix.release }}-${{ matrix.arch }}-sdk.tar.gz
mv swift-${{ matrix.swift }}-RELEASE-${{ matrix.linux }}-${{ matrix.release }}-${{ matrix.arch }} /opt/swift-${{ matrix.swift }}-RELEASE-${{ matrix.linux }}-${{ matrix.release }}-${{ matrix.arch }}
- name: Swift Version
run: swift --version
- name: Build
run: SWIFT_BUILD_DYNAMIC_LIBRARY=1 swift build -c ${{ matrix.config }} --destination /opt/swift-${{ matrix.swift }}-RELEASE-${{ matrix.linux }}-${{ matrix.release }}-${{ matrix.arch }}/${{ matrix.linux }}-${{ matrix.release }}.json
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: "swift-${{ matrix.swift }}-RELEASE-${{ matrix.linux }}-${{ matrix.release }}-${{ matrix.arch }}-coremodel-${{ matrix.config }}"
path: .build/armv7-unknown-linux-gnueabihf/${{ matrix.config }}/libCoreModel.so
linux-arm-test:
name: Linux (Test)
runs-on: ubuntu-latest
strategy:
matrix:
swift: ["6.0.3"]
container: swift:${{ matrix.swift }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install dependencies
run: apt update -y; apt install wget -y
- name: Install SDK
run: |
wget https://github.com/xtremekforever/swift-armv7/releases/download/${{ matrix.swift }}/swift-${{ matrix.swift }}-RELEASE-debian-bookworm-armv7-sdk.tar.gz
tar -xvf swift-${{ matrix.swift }}-RELEASE-debian-bookworm-armv7-sdk.tar.gz
mv swift-${{ matrix.swift }}-RELEASE-debian-bookworm-armv7 /opt/swift-${{ matrix.swift }}-RELEASE-debian-bookworm-armv7
- name: Swift Version
run: swift --version
- name: Build
run: SWIFT_BUILD_DYNAMIC_LIBRARY=0 swift build --build-tests --destination /opt/swift-${{ matrix.swift }}-RELEASE-debian-bookworm-armv7/debian-bookworm.json
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: "linux-armv7-bookworm-tests-${{ matrix.swift }}"
path: .build/armv7-unknown-linux-gnueabihf/debug/CoreModelPackageTests.xctest