name: "Fan out changes to distinct repositories" on: push: branches: - "main" - "develop" concurrency: fanout-${{ github.ref }} jobs: fanout: strategy: matrix: parts: - dir: "addons/escoria-core" repo: "godot-escoria/escoria-core" - dir: "addons/escoria-ui-simplemouse" repo: "godot-escoria/escoria-ui-simplemouse" - dir: "addons/escoria-ui-9verbs" repo: "godot-escoria/escoria-ui-9verbs" - dir: "addons/escoria-core" repo: "godot-escoria/escoria-game-template" - dir: "addons/escoria-dialog-simple" repo: "godot-escoria/escoria-dialog-simple" name: "Fanout ${{ matrix.parts.dir }} to ${{ matrix.parts.repo }}" runs-on: "ubuntu-20.04" env: DIR: "${{matrix.parts.dir}}" REPO: "${{matrix.parts.repo}}" steps: - name: "Configure git" run: | if ! git --version | grep 2.33 >/dev/null then sudo add-apt-repository ppa:git-core/ppa -y sudo apt-get update sudo apt-get install git -y fi - name: "Checkout" uses: "actions/checkout@v3" with: repository: "godot-escoria/escoria-demo-game" ref: "develop" path: "demo-game" token: "${{ secrets.ESCORIA_DEPLOYMENT_TOKEN }}" fetch-depth: 0 - name: "Filtering out ${{ env.DIR }}" run: | curl -s https://raw.githubusercontent.com/newren/git-filter-repo/main/git-filter-repo -o git-filter-repo chmod +x git-filter-repo cd demo-game git remote -v ../git-filter-repo --path $DIR --prune-empty auto --force git clean -fd git status - name: "Checkout" uses: "actions/checkout@v3" with: repository: "${{ env.REPO }}" ref: "develop" path: "target" token: "${{ secrets.ESCORIA_DEPLOYMENT_TOKEN }}" fetch-depth: 0 - name: "Apply changes" run: | cd target git config --global user.email "contact@escoria-framework.org" git config --global user.name "Escoria merge bot" git pull ../demo-game develop --rebase git push --force