Skip to content

LWJGL CI configuration #97

LWJGL CI configuration

LWJGL CI configuration #97

Workflow file for this run

name: LWJGL Build
on:
push:
branches:
- master
env:
AWS_DEFAULT_REGION: us-east-1
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
S3_PARAMS: --cache-control "public,must-revalidate,proxy-revalidate,max-age=0"
jobs:
# linux:
# name: Linux
# runs-on: ubuntu-latest
# container:
# image: centos:7
# strategy:
# fail-fast: false
# matrix:
# ARCH: [x64]
# include:
# - ARCH: x64
# defaults:
# run:
# shell: bash
# steps:
# - name: Upgrade git
# run: |
# yum -y install https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo.x86_64.rpm
# yum -y install git
# - uses: actions/checkout@v3
# with:
# fetch-depth: 3
# - name: Configure yum
# run: |
# yum -y install epel-release
# yum -y update
# - name: Install build dependencies
# run: |
# yum -y install centos-release-scl
# yum -y install devtoolset-11-gcc-c++
# yum -y install cmake3 awscli
# - name: Configure build
# run: |
# source scl_source enable devtoolset-11 || true
# cmake3 -B build -DASSIMP_BUILD_ASSIMP_TOOLS=OFF -DASSIMP_BUILD_TESTS=OFF -DASSIMP_BUILD_DRACO=ON -DASSIMP_BUILD_ZLIB=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0"
# - name: Build
# run: |
# source scl_source enable devtoolset-11 || true
# cmake3 --build build
# strip build/bin/libassimp.so
# strip build/bin/libdraco.so
# - name: Upload artifact
# run: |
# aws s3 cp build/bin/libassimp.so s3://lwjgl-build/nightly/linux/${{matrix.ARCH}}/ $S3_PARAMS
# aws s3 cp build/bin/libdraco.so s3://lwjgl-build/nightly/linux/${{matrix.ARCH}}/ $S3_PARAMS
# - name: Upload git revision
# run: |
# git config --global --add safe.directory $PWD
# git log --first-parent --pretty=format:%H HEAD~2..HEAD~1 > libassimp.so.git
# aws s3 cp libassimp.so.git s3://lwjgl-build/nightly/linux/${{matrix.ARCH}}/ $S3_PARAMS
#
# linux-cross:
# name: Linux Cross
# runs-on: ubuntu-latest
# container:
# image: ${{matrix.CONTAINER}}
# strategy:
# fail-fast: false
# matrix:
# ARCH: [arm32, arm64, ppc64le, riscv64]
# include:
# # -----
# - ARCH: arm32
# CROSS_ARCH: armhf
# CONTAINER: ubuntu:18.04
# TRIPLET: arm-linux-gnueabihf
# # -----
# - ARCH: arm64
# CROSS_ARCH: arm64
# CONTAINER: ubuntu:18.04
# TRIPLET: aarch64-linux-gnu
# # ----
# - ARCH: ppc64le
# CROSS_ARCH: ppc64el
# CONTAINER: ubuntu:18.04
# TRIPLET: powerpc64le-linux-gnu
# # -----
# - ARCH: riscv64
# CROSS_ARCH: riscv64
# CONTAINER: ubuntu:20.04
# TRIPLET: riscv64-linux-gnu
# env:
# LWJGL_ARCH: ${{matrix.ARCH}}
# defaults:
# run:
# shell: bash
# steps:
# - name: Upgrade git
# run: |
# apt-get -y update
# apt-get -y install software-properties-common wget
# apt-get -y install --reinstall ca-certificates
# apt-get -y update
# apt-get -y upgrade
# wget https://apt.kitware.com/keys/kitware-archive-latest.asc
# apt-key add kitware-archive-latest.asc
# add-apt-repository -y 'deb https://apt.kitware.com/ubuntu/ bionic main'
# add-apt-repository -y ppa:git-core/ppa
# apt-get -y update
# DEBIAN_FRONTEND=noninteractive apt-get -yq install awscli git
# - uses: actions/checkout@v3
# with:
# fetch-depth: 3
# - name: Install dependencies
# run: DEBIAN_FRONTEND=noninteractive apt-get -yq install cmake gcc-${{matrix.TRIPLET}} g++-${{matrix.TRIPLET}} libc6-dev-${{matrix.CROSS_ARCH}}-cross
# - name: Prepare cross-compilation for ${{matrix.CROSS_ARCH}}
# run: |
# sed -i 's/deb http/deb [arch=amd64,i386] http/' /etc/apt/sources.list
# grep "ubuntu.com/ubuntu" /etc/apt/sources.list | tee /etc/apt/sources.list.d/ports.list
# sed -i 's/amd64,i386/${{matrix.CROSS_ARCH}}/' /etc/apt/sources.list.d/ports.list
# sed -i 's#http://.*/ubuntu#http://ports.ubuntu.com/ubuntu-ports#' /etc/apt/sources.list.d/ports.list
# dpkg --add-architecture ${{matrix.CROSS_ARCH}}
# apt-get update || true
# - name: Install cross-compilation dependencies
# run: apt-get -yq --allow-unauthenticated --no-install-suggests --no-install-recommends install zlib1g-dev:${{matrix.CROSS_ARCH}} libc6-dev:${{matrix.CROSS_ARCH}} -o Dpkg::Options::="--force-overwrite"
# - name: Configure build
# run: CC=${{matrix.TRIPLET}}-gcc CXX=${{matrix.TRIPLET}}-g++ cmake -B build -DASSIMP_BUILD_ASSIMP_TOOLS=OFF -DASSIMP_BUILD_TESTS=OFF -DASSIMP_BUILD_DRACO=ON -DASSIMP_BUILD_ZLIB=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0"
# - name: Build
# run: |
# cmake --build build
# ${{matrix.TRIPLET}}-strip build/bin/libassimp.so
# ${{matrix.TRIPLET}}-strip build/bin/libdraco.so
# - name: Upload artifacts
# run: |
# aws s3 cp build/bin/libassimp.so s3://lwjgl-build/nightly/linux/${{matrix.ARCH}}/ $S3_PARAMS
# aws s3 cp build/bin/libdraco.so s3://lwjgl-build/nightly/linux/${{matrix.ARCH}}/ $S3_PARAMS
# - name: Upload git revision
# run: |
# git config --global --add safe.directory $(pwd)
# git log --first-parent --pretty=format:%H HEAD~2..HEAD~1 > libassimp.so.git
# aws s3 cp libassimp.so.git s3://lwjgl-build/nightly/linux/${{matrix.ARCH}}/ $S3_PARAMS
freebsd-cross:
name: FreeBSD Cross
runs-on: macos-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 3
- name: Build
uses: cross-platform-actions/[email protected]
with:
operating_system: freebsd
architecture: x86-64
version: '13.2'
memory: 4G
shell: bash
run: |
sudo pkg install -y cmake
cmake -B build -DASSIMP_BUILD_ASSIMP_TOOLS=OFF -DASSIMP_BUILD_TESTS=OFF -DASSIMP_BUILD_DRACO=ON -DASSIMP_BUILD_ZLIB=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0"
cmake --build build
strip build/bin/libassimp.so
strip build/bin/libdraco.so
- name: Upload artifact
# Symlinks are not copied out of the VM. These SOs are versioned.
run: |
aws s3 cp `ls build/bin/libassimp.so*` s3://lwjgl-build/nightly/freebsd/x64/libassimp.so $S3_PARAMS
aws s3 cp `ls build/bin/libdraco.so*` s3://lwjgl-build/nightly/freebsd/x64/libdraco.so $S3_PARAMS
- name: Upload git revision
run: |
git config --global --add safe.directory $PWD
git log --first-parent --pretty=format:%H HEAD~2..HEAD~1 > libassimp.so.git
aws s3 cp libassimp.so.git s3://lwjgl-build/nightly/freebsd/x64/ $S3_PARAMS
# macos:
# name: macOS
# runs-on: macos-latest
# strategy:
# matrix:
# ARCH: [x64, arm64]
# include:
# - ARCH: x64
# CMAKE_PARAMS: -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9
# - ARCH: arm64
# CMAKE_PARAMS: -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 -DCMAKE_OSX_ARCHITECTURES=arm64
# steps:
# - uses: actions/checkout@v3
# with:
# fetch-depth: 3
# - name: Configure build
# run: |
# mkdir build
# cd build
# cmake -DASSIMP_BUILD_ASSIMP_TOOLS=OFF -DASSIMP_BUILD_TESTS=OFF -DASSIMP_BUILD_DRACO=ON -DASSIMP_BUILD_ZLIB=ON -DCMAKE_BUILD_TYPE=Release ${{matrix.CMAKE_PARAMS}} ..
# - name: Build
# run: |
# cd build
# cmake --build .
# strip -u -r bin/libassimp.dylib
# strip -u -r bin/libdraco.dylib
# - name: Upload artifacts
# run: |
# aws s3 cp build/bin/libassimp.dylib s3://lwjgl-build/nightly/macosx/${{matrix.ARCH}}/ $S3_PARAMS
# aws s3 cp build/bin/libdraco.dylib s3://lwjgl-build/nightly/macosx/${{matrix.ARCH}}/ $S3_PARAMS
# - name: Upload git revision
# run: |
# git log --first-parent --pretty=format:%H HEAD~2..HEAD~1 > libassimp.dylib.git
# aws s3 cp libassimp.dylib.git s3://lwjgl-build/nightly/macosx/${{matrix.ARCH}}/ $S3_PARAMS
#
# windows:
# name: Windows
# runs-on: windows-latest
# strategy:
# matrix:
# ARCH: [x86, x64, arm64]
# include:
# - ARCH: x86
# PLATFORM: Win32
# - ARCH: x64
# PLATFORM: x64
# - ARCH: arm64
# PLATFORM: ARM64
# defaults:
# run:
# shell: cmd
# steps:
# - uses: actions/checkout@v3
# with:
# fetch-depth: 3
# # disabled Link Time Optimization for Draco
# - name: Configure build
# run: |
# mkdir build
# cd build
# cmake -G "Visual Studio 17 2022" -A ${{matrix.PLATFORM}} -DASSIMP_BUILD_ASSIMP_TOOLS=OFF -DASSIMP_BUILD_TESTS=OFF -DASSIMP_BUILD_DRACO=ON -DASSIMP_BUILD_ZLIB=ON -DCMAKE_C_FLAGS_RELEASE="/MT /EHsc /Ox /GF /Gy /GS- /DNDEBUG" -DCMAKE_CXX_FLAGS_RELEASE="/MT /EHsc /Ox /GF /Gy /GS- /DNDEBUG" -DCMAKE_SHARED_LINKER_FLAGS_RELEASE="/OPT:REF,ICF /INCREMENTAL:NO" ..
# - name: Build
# run: |
# cd build
# cmake --build . --config Release
# - name: Upload artifacts
# run: |
# aws s3 cp build\bin\Release\assimp-vc143-mt.dll s3://lwjgl-build/nightly/windows/${{matrix.ARCH}}/assimp.dll ${{env.S3_PARAMS}}
# aws s3 cp build\bin\Release\draco.dll s3://lwjgl-build/nightly/windows/${{matrix.ARCH}}/ ${{env.S3_PARAMS}}
# - name: Upload git revision
# run: |
# git log --first-parent --pretty=format:%%H HEAD~2..HEAD~1 > assimp.dll.git
# aws s3 cp assimp.dll.git s3://lwjgl-build/nightly/windows/${{matrix.ARCH}}/ ${{env.S3_PARAMS}}