Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: glfw/glfw
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: Over-Run/glfw-ci
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Able to merge. These branches can be automatically merged.
  • 6 commits
  • 2 files changed
  • 1 contributor

Commits on May 18, 2024

  1. Copy the full SHA
    8b85b2b View commit details
  2. Update ci.yml

    squid233 authored May 18, 2024
    Copy the full SHA
    52fd8a1 View commit details
  3. Update ci.yml

    squid233 authored May 18, 2024
    Copy the full SHA
    a2813f3 View commit details
  4. Update ci.yml

    squid233 authored May 18, 2024
    Copy the full SHA
    9d95bf4 View commit details

Commits on Dec 31, 2024

  1. Copy the full SHA
    1724229 View commit details
  2. Update ci.yml

    squid233 authored Dec 31, 2024
    Copy the full SHA
    24d8d5c View commit details
Showing with 218 additions and 100 deletions.
  1. +0 −100 .github/workflows/build.yml
  2. +218 −0 .github/workflows/ci.yml
100 changes: 0 additions & 100 deletions .github/workflows/build.yml

This file was deleted.

218 changes: 218 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,218 @@
name: CI

on:
workflow_dispatch:
pull_request:
push:
branches:
- master

env:
CI_PARAMS: -DGLFW_LIBRARY_TYPE=SHARED -DGLFW_BUILD_EXAMPLES=OFF -DGLFW_BUILD_TESTS=OFF -DGLFW_BUILD_DOCS=OFF -DCMAKE_BUILD_TYPE=Release

jobs:
linux:
name: Linux
runs-on: ubuntu-22.04
# container:
# image: centos:7
strategy:
fail-fast: false
matrix:
ARCH: [x64]
include:
- ARCH: x64
env:
CI_ARCH: ${{matrix.ARCH}}
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 3
- name: Install dependencies
run: sudo apt-get install libwayland-dev libxkbcommon-dev xorg-dev
- name: Configure build
run: |
source scl_source enable devtoolset-11 || true
cmake -B build $CI_PARAMS -DGLFW_BUILD_WAYLAND=ON -DCMAKE_C_FLAGS="-std=c99 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0"
- name: Build
run: |
source scl_source enable devtoolset-11 || true
cmake --build build --parallel
strip build/src/libglfw.so
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: linux-${{matrix.ARCH}}
path: build/src/libglfw.so
if-no-files-found: error

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:20.04
TRIPLET: arm-linux-gnueabihf
# ----
- ARCH: arm64
CROSS_ARCH: arm64
CONTAINER: ubuntu:20.04
TRIPLET: aarch64-linux-gnu
# ----
- ARCH: ppc64le
CROSS_ARCH: ppc64el
CONTAINER: ubuntu:20.04
TRIPLET: powerpc64le-linux-gnu
# ----
- ARCH: riscv64
CROSS_ARCH: riscv64
CONTAINER: ubuntu:20.04
TRIPLET: riscv64-linux-gnu
env:
CI_ARCH: ${{matrix.ARCH}}
defaults:
run:
shell: bash
steps:
- name: Update apt repositories
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
# if: ${{ matrix.CONTAINER == 'ubuntu:18.04' }}
- name: Upgrade git
run: |
apt-get -y update
apt-get -y upgrade
DEBIAN_FRONTEND=noninteractive apt-get -yq install git cmake pkg-config
- uses: actions/checkout@v3
with:
fetch-depth: 3
- 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
- name: Install dependencies
run: apt-get -yq --no-install-suggests --no-install-recommends install gcc-${{matrix.TRIPLET}} libc6-dev-${{matrix.CROSS_ARCH}}-cross libxrandr-dev:${{matrix.CROSS_ARCH}} libxinerama-dev:${{matrix.CROSS_ARCH}} libxcursor-dev:${{matrix.CROSS_ARCH}} libxi-dev:${{matrix.CROSS_ARCH}} libxext-dev:${{matrix.CROSS_ARCH}} libxkbcommon-dev:${{matrix.CROSS_ARCH}} libwayland-dev:${{matrix.CROSS_ARCH}}
- name: Configure build
run: PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:${CMAKE_SYSROOT}/usr/lib/${{matrix.TRIPLET}}/pkgconfig CC=${{matrix.TRIPLET}}-gcc cmake -B build $CI_PARAMS -DGLFW_BUILD_WAYLAND=ON -DCMAKE_C_FLAGS="-std=c99 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0"
- name: Build
run: |
cmake --build build --parallel
${{matrix.TRIPLET}}-strip build/src/libglfw.so
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: linux-${{matrix.ARCH}}
path: build/src/libglfw.so
if-no-files-found: error

freebsd-cross:
name: FreeBSD Cross
runs-on: ubuntu-22.04
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 3
- name: Build
uses: cross-platform-actions/action@v0.24.0
with:
operating_system: freebsd
architecture: x86-64
version: '13.2'
memory: 4G
shell: bash
environment_variables: CI_PARAMS
run: |
sudo pkg install -y cmake gmake pkgconf libXrandr libXinerama libXcursor libXi libXext libxkbcommon wayland wayland-protocols libevdev evdev-proto
cmake -B build $CI_PARAMS -DGLFW_BUILD_WAYLAND=ON -DCMAKE_C_FLAGS="-std=c99 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0"
cmake --build build --parallel
strip build/src/libglfw.so
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: freebsd-x64
path: build/src/libglfw.so
if-no-files-found: error

macos:
name: macOS
runs-on: macos-latest
strategy:
matrix:
ARCH: [x64, arm64]
include:
- ARCH: x64
CMAKE_PARAMS: -DCMAKE_OSX_DEPLOYMENT_TARGET=10.11 -DCMAKE_OSX_ARCHITECTURES=x86_64
- ARCH: arm64
CMAKE_PARAMS: -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 -DCMAKE_OSX_ARCHITECTURES=arm64
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 3
- name: Configure build
run: cmake -B build $CI_PARAMS ${{matrix.CMAKE_PARAMS}}
- name: Build
run: |
cmake --build build --parallel
strip -u -r build/src/libglfw.dylib
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: macos-${{matrix.ARCH}}
path: build/src/libglfw.dylib
if-no-files-found: error

windows:
name: Windows
runs-on: windows-latest
strategy:
matrix:
ARCH: [x64, arm64]
include:
- ARCH: x64
PLATFORM: x64
- ARCH: arm64
PLATFORM: ARM64
defaults:
run:
shell: cmd
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 3
- name: Configure build
run: cmake -B build -G "Visual Studio 17 2022" -A ${{matrix.PLATFORM}} %CI_PARAMS% -DUSE_MSVC_RUNTIME_LIBRARY_DLL=OFF
- name: Build
run: cmake --build build --parallel --config Release
- name: Rename file
run: ren build\src\Release\glfw3.dll glfw.dll
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: windows-${{matrix.ARCH}}
path: build\src\Release\glfw.dll
if-no-files-found: error