| name: Update examples collection | |
|  | |
| on: | |
|   workflow_dispatch: | |
|   push: | |
|     paths: | |
|       - '.github/workflows/update_examples.yml' | |
|       - 'examples/**' | |
|       - 'tools/rexm/**' | |
|   pull_request: | |
|     paths: | |
|       - '.github/workflows/update_examples.yml' | |
|       - 'examples/**' | |
|       - 'tools/rexm/**' | |
|  | |
| jobs: | |
|   build: | |
|     runs-on: ubuntu-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 | |
|       run: | | |
|         git clone https://x-access-token:${{ secrets.RAYLIB_DOT_COM_REPO_TOKEN }}@github.com/$GITHUB_REPOSITORY_OWNER/raylib.com.git | |
|       shell: bash | |
|  | |
|     - name: Build and run rexm tool (GNU Makefile) | |
|       # 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: | | |
|         sudo apt-get update && sudo apt-get install -y libopengl0 libglu1-mesa libx11-dev libxrandr-dev libxcursor-dev libxi-dev libxinerama-dev libgl1-mesa-dev libglu1-mesa-dev | |
|         cd "${{ github.workspace }}/src" | |
|         make | |
|         sudo make install | |
|         make clean | |
|         make PLATFORM=PLATFORM_WEB | |
|         cd ../tools/rexm/ | |
|         make | |
|         export REXM_EXAMPLES_BASE_PATH="${{ github.workspace }}/examples" | |
|         export REXM_EXAMPLES_WEB_PATH="${{ github.workspace }}/raylib.com/examples" | |
|         export REXM_EXAMPLES_TEMPLATE_FILE_PATH="${{ github.workspace }}/examples/examples_template.c" | |
|         export REXM_EXAMPLES_TEMPLATE_SCREENSHOT_PATH="${{ github.workspace }}/examples/examples_template.png" | |
|         export REXM_EXAMPLES_COLLECTION_FILE_PATH="${{ github.workspace }}/examples/examples_list.txt" | |
|         export REXM_EXAMPLES_VS2022_SLN_FILE="${{ github.workspace }}/projects/VS2022/raylib.sln" | |
|         export EMSDK_PATH="${{ github.workspace }}/emsdk-cache/emsdk-main" | |
|         ./rexm update | |
|       shell: bash | |
|  | |
|     - name: Commit changes to raylib repo | |
|       if: github.event_name == 'push' && false | |
|       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 -A | |
|         git commit -m "Update examples collection" || echo "git exited with code 1, nothing changed" | |
|         git push | |
|       shell: bash | |
|  | |
|     - name: Push changes to raylib.com repo | |
|       if: github.event_name == 'push' && false | |
|       run: | | |
|         cd raylib.com | |
|         git add -A | |
|         git commit -m "Update web examples" || echo "git exited with code 1, nothing changed" | |
|         git push origin | |
|       shell: bash
 |