diff --git a/.github/Dockerfile b/.github/Dockerfile index 1008f80..f33a57a 100644 --- a/.github/Dockerfile +++ b/.github/Dockerfile @@ -1,7 +1,8 @@ -# docker buildx build . -t mcaselector-lite -# docker tag mcaselector-lite:latest ghcr.io/thepigeongenerator/mcaselector-lite:latest +# docker buildx build . -t ghcr.io/thepigeongenerator/mcaselector-lite:latest # docker push ghcr.io/thepigeongenerator/mcaselector-lite:latest 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 ENV VCPKG_DISABLE_METRICS="1" @@ -9,26 +10,21 @@ ENV VCPKG_ROOT="/opt/vcpkg" ENV PATH="${VCPKG_ROOT}:${PATH}" # install the dependencies -RUN apt update && apt install -y --no-install-recommends \ - ca-certificates \ - git \ - curl \ - zip \ - unzip \ - pkg-config \ - make \ - clang \ - clang-tidy \ - gcc \ - gcc-multilib \ - lld \ - g++ \ - mingw-w64 \ - libc6-dev \ - libglfw3-dev \ - && rm -rf /var/lib/apt/lists/* \ - && git clone https://github.com/microsoft/vcpkg.git "${VCPKG_ROOT}" \ - && "${VCPKG_ROOT}/bootstrap-vcpkg.sh" \ - && vcpkg install glfw3:x64-mingw-dynamic +RUN apt update && apt install -y --no-install-recommends \ + ca-certificates \ + git curl \ + zip unzip \ + make cmake pkg-config \ + clang-tidy \ + gcc gcc-multilib g++ mingw-w64 \ + libc6-dev \ + libxinerama-dev libxcursor-dev xorg-dev libglu1-mesa-dev \ + nodejs \ + && 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 install glfw3:x64-linux-dynamic glfw3:x64-mingw-static; CMD ["bash"] diff --git a/.github/workflows/ci-bin.yaml b/.github/workflows/ci-bin.yaml index abf55c3..93d5309 100644 --- a/.github/workflows/ci-bin.yaml +++ b/.github/workflows/ci-bin.yaml @@ -13,10 +13,18 @@ jobs: image: ghcr.io/thepigeongenerator/mcaselector-lite:latest strategy: matrix: - arch: - - linux-x86_64 - - win-x86_64 + include: + - kernel: linux + march: x86_64 + cc: x86_64-linux-gnu-gcc + - kernel: mingw + march: x86_64 + cc: x86_64-w64-mingw32-gcc steps: - 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/ diff --git a/.github/workflows/ci-lint.yaml b/.github/workflows/ci-lint.yaml index 0bdf641..60e920c 100644 --- a/.github/workflows/ci-lint.yaml +++ b/.github/workflows/ci-lint.yaml @@ -7,7 +7,7 @@ on: branches: - '**' jobs: - compile: + exec-lint: runs-on: ubuntu-latest container: image: ghcr.io/thepigeongenerator/mcaselector-lite:latest diff --git a/.github/workflows/ci-tests.yaml b/.github/workflows/ci-tests.yaml index 4af80a2..8d5bb00 100644 --- a/.github/workflows/ci-tests.yaml +++ b/.github/workflows/ci-tests.yaml @@ -1,11 +1,10 @@ name: tests on: - push: - branches: - - '**' - pull_request: - branches: - - '**' + workflow_run: + workflows: + - bin + types: + - completed jobs: execute-tests: runs-on: ubuntu-latest @@ -13,9 +12,16 @@ jobs: image: ghcr.io/thepigeongenerator/mcaselector-lite:latest strategy: matrix: - arch: - - linux-x86_64 - # WARN: not testing win-x86_64... Probably a good idea to do that + include: + - kernel: linux + march: x86_64 + cc: x86_64-linux-gnu-gcc + # WARN: not testing win-x86_64... Probably a good idea to do that steps: - 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 diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 6388738..b2e8bc3 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -10,24 +10,28 @@ on: description: the tag to release for default: "" jobs: - compile: + release: runs-on: ubuntu-latest container: image: ghcr.io/thepigeongenerator/mcaselector-lite:latest - needs: install-deps strategy: matrix: - arch: - - linux-x86_64 - - win-x86_64 + include: + - kernel: linux + march: x86_64 + cc: x86_64-linux-gnu-gcc + - kernel: mingw + march: x86_64 + cc: x86_64-w64-mingw32-gcc 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: - 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 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}}" * cd - # upload to the release