Skip to content

Continuous Build

Continuous Build #1734

Workflow file for this run

name: Continuous Build
on:
push:
branches: [master]
pull_request:
branches: [master]
schedule:
- cron: '0 5 * * *' # run at 5 AM UTC
jobs:
build-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install libsdl2-dev libsdl2-image-dev libwebp-dev
- name: Setup Zig
uses: goto-bus-stop/setup-zig@v1
with:
version: master
- name: SDL version
run: sdl2-config --version
- name: Build Example
run: zig build install
# Skipped on Ubuntu as it doesn't have SDL2.0.18 yet
# - name: Run tests
# run: zig build test
build-macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Install dependencies
run: brew install sdl2 sdl2_image sdl2_ttf harfbuzz graphite2
- name: Setup Zig
uses: goto-bus-stop/setup-zig@v1
with:
version: master
- name: Build Examples
run: zig build install
- name: Run tests
run: zig build test
build-windows-dynamic:
strategy:
fail-fast: false
matrix:
target: [
x86-windows-gnu,
x86_64-windows-gnu,
# x86-windows-msvc, # disabled for now as it seems like zig detects the wrong files
x86_64-windows-msvc,
]
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Setup Zig
uses: goto-bus-stop/setup-zig@v1
with:
version: master
- name: Install VisualStudio (x86)
if: ${{ matrix.target == 'x86-windows-msvc' }}
uses: ilammy/msvc-dev-cmd@v1
with:
uwp: false
arch: amd64_x86 # cross-compile from amd64 to x86
- name: Install VisualStudio (x64)
if: ${{ matrix.target == 'x86_64-windows-msvc' }}
uses: ilammy/msvc-dev-cmd@v1
with:
uwp: false
arch: x64
- name: Download SDL2 (MinGW)
uses: carlosperate/download-file-action@v1.0.3
if: ${{ matrix.target == 'x86-windows-gnu' || matrix.target == 'x86_64-windows-gnu' }}
with:
file-url: https://www.libsdl.org/release/SDL2-devel-2.0.18-mingw.tar.gz
file-name: SDL2.tar.gz
location: .
- name: Download SDL2 (Visual Studio)
uses: carlosperate/download-file-action@v1.0.3
if: ${{ matrix.target == 'x86-windows-msvc' || matrix.target == 'x86_64-windows-msvc' }}
with:
file-url: https://www.libsdl.org/release/SDL2-devel-2.0.18-VC.zip
file-name: SDL2.tar.gz
location: .
- name: Extract SDL2
uses: brunoborges/justextract@v1
with:
file: SDL2.tar.gz
- name: Create SDK file
uses: DamianReeves/write-file-action@v1.2
with:
path: .build_config/sdl.json
contents: |
{
"x86-windows-gnu": {
"include": "SDL2-2.0.18/i686-w64-mingw32/include",
"libs": "SDL2-2.0.18/i686-w64-mingw32/lib",
"bin": "SDL2-2.0.18/i686-w64-mingw32/bin"
},
"x86_64-windows-gnu": {
"include": "SDL2-2.0.18/x86_64-w64-mingw32/include",
"libs": "SDL2-2.0.18/x86_64-w64-mingw32/lib",
"bin": "SDL2-2.0.18/x86_64-w64-mingw32/bin"
},
"x86-windows-msvc": {
"include": "SDL2-2.0.18/include",
"libs": "SDL2-2.0.18/lib/x86",
"bin": "SDL2-2.0.18/lib/x86"
},
"x86_64-windows-msvc": {
"include": "SDL2-2.0.18/include",
"libs": "SDL2-2.0.18/lib/x64",
"bin": "SDL2-2.0.18/lib/x64"
}
}
write-mode: overwrite
- name: Build
run: zig build -Dtarget=${{matrix.target}} -Dlink=dynamic
build-windows-static:
strategy:
fail-fast: false
matrix:
target: [x86-windows-gnu, x86_64-windows-gnu]
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Setup Zig
uses: goto-bus-stop/setup-zig@v1
with:
version: master
- name: Download SDL2 (MinGW)
uses: carlosperate/download-file-action@v1.0.3
with:
file-url: https://www.libsdl.org/release/SDL2-devel-2.0.18-mingw.tar.gz
file-name: SDL2.tar.gz
location: .
- name: Extract SDL2
uses: brunoborges/justextract@v1
with:
file: SDL2.tar.gz
- name: Create SDK file
uses: DamianReeves/write-file-action@v1.2
with:
path: .build_config/sdl.json
contents: |
{
"x86-windows-gnu": {
"include": "SDL2-2.0.18/i686-w64-mingw32/include",
"libs": "SDL2-2.0.18/i686-w64-mingw32/lib",
"bin": "SDL2-2.0.18/i686-w64-mingw32/bin"
},
"x86_64-windows-gnu": {
"include": "SDL2-2.0.18/x86_64-w64-mingw32/include",
"libs": "SDL2-2.0.18/x86_64-w64-mingw32/lib",
"bin": "SDL2-2.0.18/x86_64-w64-mingw32/bin"
}
}
write-mode: overwrite
- name: Build
run: zig build -Dtarget=${{matrix.target}} -Dlink=static
build-cross-windows:
strategy:
fail-fast: false
matrix:
host: [ubuntu-latest, macos-latest]
target: [x86-windows-gnu, x86_64-windows-gnu]
linkage: [static, dynamic]
runs-on: ${{matrix.host}}
steps:
- uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Setup Zig
uses: goto-bus-stop/setup-zig@v1
with:
version: master
- name: Download SDL2 (MinGW)
uses: carlosperate/download-file-action@v1.0.3
with:
file-url: https://www.libsdl.org/release/SDL2-devel-2.0.18-mingw.tar.gz
file-name: SDL2.tar.gz
location: .
- name: Extract SDL2
uses: brunoborges/justextract@v1
with:
file: SDL2.tar.gz
- name: Create SDK file
uses: DamianReeves/write-file-action@v1.2
with:
path: .build_config/sdl.json
contents: |
{
"x86-windows-gnu": {
"include": "SDL2-2.0.18/i686-w64-mingw32/include",
"libs": "SDL2-2.0.18/i686-w64-mingw32/lib",
"bin": "SDL2-2.0.18/i686-w64-mingw32/bin"
},
"x86_64-windows-gnu": {
"include": "SDL2-2.0.18/x86_64-w64-mingw32/include",
"libs": "SDL2-2.0.18/x86_64-w64-mingw32/lib",
"bin": "SDL2-2.0.18/x86_64-w64-mingw32/bin"
}
}
write-mode: overwrite
- name: Build
run: zig build -Dskip-test -Dtarget=${{matrix.target}} -Dlink=${{matrix.linkage}}
build-cross-linux:
strategy:
fail-fast: false
matrix:
host: [ubuntu-latest, macos-latest, windows-latest]
target: [x86_64-linux-gnu, aarch64-linux-gnu]
runs-on: ${{matrix.host}}
steps:
- uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Setup Zig
uses: goto-bus-stop/setup-zig@v1
with:
version: master
- name: Build
run: zig build -Dskip-test -Dtarget=${{matrix.target}} --verbose
# This would not be a cross-compilation process, thus we must skip it
if: ${{ matrix.host != 'ubuntu-latest' && matrix.target == 'x86_64-linux-gnu' }}