diff --git a/.github/workflows/examples_update.yml b/.github/workflows/examples_update.yml new file mode 100644 index 000000000..636a4016f --- /dev/null +++ b/.github/workflows/examples_update.yml @@ -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