|
@@ -0,0 +1,80 @@
|
|
|
+name: Update examples collection
|
|
|
+
|
|
|
+on:
|
|
|
+ workflow_dispatch:
|
|
|
+ push:
|
|
|
+ paths:
|
|
|
+ - 'examples/**'
|
|
|
+ - '.github/workflows/examples_update.yml'
|
|
|
+ pull_request:
|
|
|
+ paths:
|
|
|
+ - 'examples/**'
|
|
|
+ - '.github/workflows/examples_update.yml'
|
|
|
+
|
|
|
+jobs:
|
|
|
+ build:
|
|
|
+ runs-on: windows-latest
|
|
|
+
|
|
|
+ steps:
|
|
|
+ - name: Checkout
|
|
|
+ uses: actions/checkout@v4
|
|
|
+
|
|
|
+ - name: Setup emsdk
|
|
|
+ uses: mymindstorm/setup-emsdk@v14
|
|
|
+ with:
|
|
|
+ version: 'latest'
|
|
|
+ actions-cache-folder: 'emsdk-cache'
|
|
|
+
|
|
|
+ - name: Clone raylib.com repo to update files
|
|
|
+ env:
|
|
|
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ run: |
|
|
|
+ git clone https://x-access-token:${GITHUB_TOKEN}@github.com/raysan5/raylib.com.git
|
|
|
+ shell: cmd
|
|
|
+
|
|
|
+ - name: Build and run rexm tool (VS2022 solution)
|
|
|
+ # rexm should update all required files in raylib and even raylib.com repo,
|
|
|
+ # but not sure if it can do that from an Action, maybe it requires manual copy
|
|
|
+ run: |
|
|
|
+ cd tools/rexm/VS2022
|
|
|
+ msbuild.exe rexm.sln /target:rexm /property:Configuration=Release /property:Platform=x64
|
|
|
+ cd ../../..
|
|
|
+ # Set required environment properties to be used by rexm
|
|
|
+ set REXM_EXAMPLES_BASE_PATH="examples"
|
|
|
+ set REXM_EXAMPLES_WEB_PATH="../raylib.com/examples"
|
|
|
+ set REXM_EXAMPLES_TEMPLATE_FILE_PATH="examples/examples_template.c"
|
|
|
+ set REXM_EXAMPLES_TEMPLATE_SCREENSHOT_PATH="examples/examples_template.png"
|
|
|
+ set REXM_EXAMPLES_COLLECTION_FILE_PATH="examples/examples_list.txt"
|
|
|
+ set REXM_EXAMPLES_VS2022_SLN_FILE="projects/VS2022/raylib.sln"
|
|
|
+ # Set emsdk path for Makefile.Web examples building
|
|
|
+ set EMSDK_PATH="D:/a/raylib/raylib/emsdk-cache/emsdk-main"
|
|
|
+ # Run rexm to update required files
|
|
|
+ .\tools\rexm\VS2022\build\rexm\bin\x64\Release\rexm.exe update
|
|
|
+ cd ../..
|
|
|
+ shell: cmd
|
|
|
+
|
|
|
+ - name: Commit changes to raylib repo
|
|
|
+ run: |
|
|
|
+ git config user.name "github-actions[bot]"
|
|
|
+ git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
|
|
+ git add -A
|
|
|
+ if git diff --cached --quiet; then
|
|
|
+ echo "No changes to commit"
|
|
|
+ exit 0
|
|
|
+ fi
|
|
|
+ git commit -m "Update examples collection"
|
|
|
+ git push
|
|
|
+
|
|
|
+ - name: Push changes to raylib.com repo
|
|
|
+ env:
|
|
|
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ run: |
|
|
|
+ git config --global user.name "github-actions[bot]"
|
|
|
+ git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
|
|
+ git add examples
|
|
|
+ if git diff --cached --quiet; then
|
|
|
+ echo "No changes to push"
|
|
|
+ exit 0
|
|
|
+ fi
|
|
|
+ git commit -m "Update web examples"
|
|
|
+ git push origin
|