update CI to use the newer makefile system

This commit is contained in:
2025-05-22 15:47:17 +02:00
parent cbefafacf8
commit 54468cbad3
5 changed files with 61 additions and 47 deletions

32
.github/Dockerfile vendored
View File

@@ -1,7 +1,8 @@
# docker buildx build . -t mcaselector-lite # docker buildx build . -t ghcr.io/thepigeongenerator/mcaselector-lite:latest
# docker tag mcaselector-lite:latest ghcr.io/thepigeongenerator/mcaselector-lite:latest
# docker push ghcr.io/thepigeongenerator/mcaselector-lite:latest # docker push ghcr.io/thepigeongenerator/mcaselector-lite:latest
FROM debian:testing-slim FROM debian:testing-slim
LABEL org.opencontainers.image.source="https://github.com/thepigeongenerator/mcaselector-lite"
LABEL org.opencontainers.image.source-path="/.github/Dockerfile"
# set environment variables # set environment variables
ENV VCPKG_DISABLE_METRICS="1" ENV VCPKG_DISABLE_METRICS="1"
@@ -11,24 +12,19 @@ ENV PATH="${VCPKG_ROOT}:${PATH}"
# install the dependencies # install the dependencies
RUN apt update && apt install -y --no-install-recommends \ RUN apt update && apt install -y --no-install-recommends \
ca-certificates \ ca-certificates \
git \ git curl \
curl \ zip unzip \
zip \ make cmake pkg-config \
unzip \
pkg-config \
make \
clang \
clang-tidy \ clang-tidy \
gcc \ gcc gcc-multilib g++ mingw-w64 \
gcc-multilib \
lld \
g++ \
mingw-w64 \
libc6-dev \ libc6-dev \
libglfw3-dev \ libxinerama-dev libxcursor-dev xorg-dev libglu1-mesa-dev \
&& rm -rf /var/lib/apt/lists/* \ nodejs \
&& git clone https://github.com/microsoft/vcpkg.git "${VCPKG_ROOT}" \ && rm -rf /var/lib/apt/lists/*;
# install packages / VCPKG
RUN git clone https://github.com/microsoft/vcpkg.git "${VCPKG_ROOT}" \
&& "${VCPKG_ROOT}/bootstrap-vcpkg.sh" \ && "${VCPKG_ROOT}/bootstrap-vcpkg.sh" \
&& vcpkg install glfw3:x64-mingw-dynamic && vcpkg install glfw3:x64-linux-dynamic glfw3:x64-mingw-static;
CMD ["bash"] CMD ["bash"]

View File

@@ -13,10 +13,18 @@ jobs:
image: ghcr.io/thepigeongenerator/mcaselector-lite:latest image: ghcr.io/thepigeongenerator/mcaselector-lite:latest
strategy: strategy:
matrix: matrix:
arch: include:
- linux-x86_64 - kernel: linux
- win-x86_64 march: x86_64
cc: x86_64-linux-gnu-gcc
- kernel: mingw
march: x86_64
cc: x86_64-w64-mingw32-gcc
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- run: make compile ARCH=${{matrix.arch}} -j - name: compile ${{matrix.march}}-${{matrix.kernel}}
run: make compile MARCH=${{matrix.march}} KERNEL=${{matrix.kernel}} CC=${{matrix.cc}} -j
- uses: actions/upload-artifact@v4
with:
name: ${{matrix.march}}-${{matrix.kernel}}-rel
path: obj/

View File

@@ -7,7 +7,7 @@ on:
branches: branches:
- '**' - '**'
jobs: jobs:
compile: exec-lint:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: container:
image: ghcr.io/thepigeongenerator/mcaselector-lite:latest image: ghcr.io/thepigeongenerator/mcaselector-lite:latest

View File

@@ -1,11 +1,10 @@
name: tests name: tests
on: on:
push: workflow_run:
branches: workflows:
- '**' - bin
pull_request: types:
branches: - completed
- '**'
jobs: jobs:
execute-tests: execute-tests:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -13,9 +12,16 @@ jobs:
image: ghcr.io/thepigeongenerator/mcaselector-lite:latest image: ghcr.io/thepigeongenerator/mcaselector-lite:latest
strategy: strategy:
matrix: matrix:
arch: include:
- linux-x86_64 - kernel: linux
march: x86_64
cc: x86_64-linux-gnu-gcc
# WARN: not testing win-x86_64... Probably a good idea to do that # WARN: not testing win-x86_64... Probably a good idea to do that
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- run: make run-test ARCH=${{matrix.arch}} -j - uses: actions/download-artifact@v4
with:
name: ${{matrix.march}}-${{matrix.kernel}}-rel
path: obj/
- name: execute tests for ${{matrix.march}}-${{matrix.kernel}}
run: make DEBUG=test run MARCH=${{matrix.march}} KERNEL=${{matrix.kernel}} CC=${{matrix.cc}} -j

View File

@@ -10,24 +10,28 @@ on:
description: the tag to release for description: the tag to release for
default: "" default: ""
jobs: jobs:
compile: release:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: container:
image: ghcr.io/thepigeongenerator/mcaselector-lite:latest image: ghcr.io/thepigeongenerator/mcaselector-lite:latest
needs: install-deps
strategy: strategy:
matrix: matrix:
arch: include:
- linux-x86_64 - kernel: linux
- win-x86_64 march: x86_64
cc: x86_64-linux-gnu-gcc
- kernel: mingw
march: x86_64
cc: x86_64-w64-mingw32-gcc
env: env:
OUT: ${{github.workspace}}/mcaselector-lite-${{matrix.arch}}-${{github.event.release.tag_name || github.event.inputs.release_tag}}.zip OUT: ${{github.workspace}}/mcaselector-lite-${{matrix.march}}-${{matrix.kernel}}-${{github.event.release.tag_name || github.event.inputs.release_tag}}.zip
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- run: make compile ARCH=${{matrix.arch}} -j - name: compile ${{matrix.march}}-${{matrix.kernel}}
run: make compile MARCH=${{matrix.march}} KERNEL=${{matrix.kernel}} CC=${{matrix.cc}} -j
- name: compress binary information - name: compress binary information
run: | run: |
cd "${{github.workspace}}/bin/${{matrix.arch}}/rel/" cd "${{github.workspace}}/bin/${{matrix.march}}-${{matrix.kernel}}/${{github.event.release.tag_name || github.event.inputs.release_tag}}/rel/" || exit 1
zip -rv "${{env.OUT}}" * zip -rv "${{env.OUT}}" *
cd - cd -
# upload to the release # upload to the release