raylib/.github/workflows/update_examples.yml
JohnnyCena123 e796b00eb0
[workflows] (almost) rewrite update_examples.yml workflow (#5130)
* debug print the working directory

* trigger it on any branch (temporarily)

* nope, wrong fix

* dummy commit to trigger the workflow

* lets see if this works

* trigger the workflow when updating it

* nice typo

* add missing dollar signs

* debug list the contents of the repository

* dir/s instead of ls

* remove this, no longer needed

* backslashes maybe? windows...

* this should be a forward slash

* remove no longer needed spam

* debug check if examples dir exists

* LOG is disabled apparently

* ...

* temporarily disable this step to save time

* ubuntu maybe

* bash

* install deps

* link libc

* link libm

* now to test the rest

* emsdk is back

* add missing shaders

* Update examples collection

* add indentation

* remove emsdk cache

* ignore emsdk cache

* Update examples collection

* fix errors with the find command

* remove emsdk cache now

* i forgot to actually add it to gitignore

* fix error with git not finding anything to commit

* global config instead of repo specific

* clone raylib.com repo under the same owner as the raylib repo owner

* add proper access token

* reorganize it all

* remove non-existent example

* clone raylib.com before running rexm

* no extra slash

* Update examples collection

* copy updated examples to the right place

* remove unnecessary debug line from rexm.c

* Update examples collection

* Update examples collection

* use hardcoded absolute path to make

* add debug line

* semicolon

* fix wrong handling of make path

* fix wrong cwd

* rebuild raylib for web after installing it

* cleanuo

* conditionally push to repos, never on PR

* build rexm with make for consistency

* remove workflow run results

* add back the examples report files

* pause automatic commits

* revert makefile changes

* readd removed vs2022 project file

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-24 11:56:49 +02:00

77 lines
2.7 KiB
YAML

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