mirror of
https://github.com/johndoe6345789/SDL3CPlusPlus.git
synced 2026-04-25 06:04:57 +00:00
207 lines
6.3 KiB
Diff
207 lines
6.3 KiB
Diff
diff --git a/.github/workflows/package-release.yml b/.github/workflows/package-release.yml
|
|
index 0000000..0000000 100644
|
|
--- a/.github/workflows/package-release.yml
|
|
+++ b/.github/workflows/package-release.yml
|
|
@@ -3,13 +3,13 @@ name: Package Release
|
|
on:
|
|
workflow_call:
|
|
|
|
permissions:
|
|
- contents: read
|
|
+ contents: write
|
|
packages: write
|
|
|
|
jobs:
|
|
package-release:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- name: linux-amd64
|
|
runner: ubuntu-24.04
|
|
platform: linux
|
|
arch: amd64
|
|
- name: linux-arm64
|
|
runner: ubuntu-24.04-arm64
|
|
platform: linux
|
|
arch: arm64
|
|
runs-on: ${{ matrix.runner }}
|
|
env:
|
|
BUILD_DIR: build/${{ matrix.platform }}-${{ matrix.arch }}
|
|
ZIP_NAME: sdl3_app-${{ matrix.platform }}-${{ matrix.arch }}.zip
|
|
PLATFORM_NAME: ${{ matrix.platform }}
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Download build artifact
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: build-${{ matrix.platform }}-${{ matrix.arch }}
|
|
path: .
|
|
- run-id: ${{ github.run_id }}
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.x'
|
|
|
|
- name: Package release ZIP
|
|
run: python scripts/package_release.py
|
|
|
|
- name: Publish GitHub release asset
|
|
if: github.ref != 'refs/tags/local'
|
|
uses: softprops/action-gh-release@v1
|
|
with:
|
|
files: release/${{ env.ZIP_NAME }}
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
diff --git a/.github/workflows/publish-container.yml b/.github/workflows/publish-container.yml
|
|
index 0000000..0000000 100644
|
|
--- a/.github/workflows/publish-container.yml
|
|
+++ b/.github/workflows/publish-container.yml
|
|
@@ -1,49 +1,60 @@
|
|
name: Publish Container Image
|
|
|
|
on:
|
|
workflow_call:
|
|
|
|
permissions:
|
|
contents: read
|
|
packages: write
|
|
|
|
jobs:
|
|
publish-image:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- name: linux-amd64
|
|
platform: linux
|
|
arch: amd64
|
|
- name: linux-arm64
|
|
platform: linux
|
|
arch: arm64
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v3
|
|
with:
|
|
platforms: linux/amd64,linux/arm64
|
|
|
|
+ - name: Set up Docker Buildx
|
|
+ uses: docker/setup-buildx-action@v3
|
|
+
|
|
- name: Log in to GitHub Container Registry
|
|
uses: docker/login-action@v2
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.actor }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- - name: Build and publish container image
|
|
- run: |
|
|
- docker build \
|
|
- --build-arg USERNAME=builder \
|
|
- --build-arg UID=$(id -u) \
|
|
- --build-arg GID=$(id -g) \
|
|
- -f .github/workflows/Dockerfile \
|
|
- -t sdl3_app:${{ matrix.platform }}-${{ matrix.arch }} .
|
|
- IMAGE=ghcr.io/${{ github.repository_owner }}/sdl3_app:${{ matrix.platform }}-${{ matrix.arch }}
|
|
- docker tag sdl3_app:${{ matrix.platform }}-${{ matrix.arch }} "$IMAGE"
|
|
- docker push "$IMAGE"
|
|
+ - name: Build and publish container image
|
|
+ uses: docker/build-push-action@v5
|
|
+ with:
|
|
+ context: .
|
|
+ file: .github/workflows/Dockerfile
|
|
+ push: true
|
|
+ platforms: linux/${{ matrix.arch }}
|
|
+ tags: ghcr.io/${{ github.repository_owner }}/sdl3_app:${{ matrix.platform }}-${{ matrix.arch }}
|
|
+ build-args: |
|
|
+ USERNAME=builder
|
|
+ UID=1000
|
|
+ GID=1000
|
|
diff --git a/.github/workflows/upload-build-artifact.yml b/.github/workflows/upload-build-artifact.yml
|
|
index 0000000..0000000 100644
|
|
--- a/.github/workflows/upload-build-artifact.yml
|
|
+++ b/.github/workflows/upload-build-artifact.yml
|
|
@@ -1,63 +1,73 @@
|
|
name: Upload Build Artifacts
|
|
|
|
on:
|
|
workflow_call:
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
jobs:
|
|
upload-artifact:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- name: linux-amd64
|
|
platform: linux
|
|
arch: amd64
|
|
- name: linux-arm64
|
|
platform: linux
|
|
arch: arm64
|
|
runs-on: ubuntu-24.04
|
|
env:
|
|
BUILD_DIR: build/${{ matrix.platform }}-${{ matrix.arch }}
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v3
|
|
with:
|
|
platforms: linux/amd64,linux/arm64
|
|
+
|
|
+ - name: Set up Docker Buildx
|
|
+ uses: docker/setup-buildx-action@v3
|
|
|
|
- name: Build linux container image
|
|
if: matrix.platform == 'linux'
|
|
run: |
|
|
- docker build \
|
|
- --build-arg USERNAME=builder \
|
|
- --build-arg UID=$(id -u) \
|
|
- --build-arg GID=$(id -g) \
|
|
- -f .github/workflows/Dockerfile \
|
|
- -t sdl3_app:${{ matrix.platform }}-${{ matrix.arch }} .
|
|
+ docker buildx build \
|
|
+ --platform linux/${{ matrix.arch }} \
|
|
+ --load \
|
|
+ --build-arg USERNAME=builder \
|
|
+ --build-arg UID=$(id -u) \
|
|
+ --build-arg GID=$(id -g) \
|
|
+ -f .github/workflows/Dockerfile \
|
|
+ -t sdl3_app:${{ matrix.platform }}-${{ matrix.arch }} .
|
|
|
|
- name: Run linux build in container
|
|
if: matrix.platform == 'linux'
|
|
env:
|
|
BUILD_DIR: ${{ env.BUILD_DIR }}
|
|
run: |
|
|
docker run --rm \
|
|
-e BUILD_DIR \
|
|
-w /workspace \
|
|
-v "${{ github.workspace }}:/workspace" \
|
|
sdl3_app:${{ matrix.platform }}-${{ matrix.arch }} \
|
|
bash -c 'set -euo pipefail
|
|
if [ -d "$BUILD_DIR" ]; then rm -rf "$BUILD_DIR"; fi
|
|
cp -a /conan_build "$BUILD_DIR"
|
|
cmake -S . -B "$BUILD_DIR" -DCMAKE_BUILD_TYPE=Release
|
|
cmake --build "$BUILD_DIR" --config Release'
|
|
|
|
- name: Upload build artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: build-${{ matrix.platform }}-${{ matrix.arch }}
|
|
path: ${{ env.BUILD_DIR }}
|