generate #63
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Generate blueprint data | |
on: | |
workflow_dispatch: | |
inputs: | |
update: | |
description: "Update the repository" | |
required: false | |
type: "boolean" | |
default: false # it is a boolean here... | |
jobs: | |
generate: | |
name: Generate | |
permissions: write-all | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout spooky db code | |
uses: actions/checkout@v4 | |
- name: Checkout FAForever blueprints and lua files | |
uses: actions/checkout@v4 | |
with: | |
repository: FAForever/fa | |
path: fa | |
sparse-checkout-cone-mode: false | |
sparse-checkout: | | |
*.bp | |
*.lua | |
- name: Checkout Nomads blueprints and lua files | |
uses: actions/checkout@v4 | |
with: | |
repository: FAForever/nomads | |
path: nomads | |
sparse-checkout-cone-mode: false | |
sparse-checkout: | | |
*.bp | |
# Prepare the Lua context | |
- name: Install Lua | |
uses: leafo/gh-actions-lua@v10 | |
with: | |
luaVersion: "5.1.5" | |
- uses: leafo/gh-actions-luarocks@v4 | |
- name: Install JSON module for Lua | |
run: luarocks install dkjson | |
# Prepare the script context | |
- name: Prepare for the script | |
shell: bash | |
run: | | |
mkdir tools/temp | |
mkdir tools/temp/units | |
mkdir tools/temp/lua | |
mv -f fa/units/* tools/temp/units | |
mv -f nomads/units/* tools/temp/units | |
mv fa/lua/version.lua tools/temp/lua/version.lua | |
- name: Run the script | |
shell: pwsh | |
working-directory: tools # script expects this directory | |
run: | | |
lua -v | |
pwsh ./index.ps1 -target ../app -inputUnits "temp/units" -inputLua "temp/lua" | |
- name: Minify index.json | |
uses: StefanEnsmann/[email protected] | |
with: | |
input_file: app/data/index.json | |
output_file: app/data/index.minified.json | |
- name: Minify index.fat.json | |
uses: StefanEnsmann/[email protected] | |
with: | |
input_file: app/data/index.fat.json | |
output_file: app/data/index.fat.minified.json | |
- name: Add the generated file as an artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Generated files | |
path: | | |
app/data | |
# Update the repository | |
- name: Store the game version | |
id: gameVersionJSON # but it is a string here! | |
if: ${{ github.event.inputs.update == 'true' }} | |
working-directory: app/data | |
run: | | |
json=`cat ./version.json` | |
echo "json=$json" >> $GITHUB_OUTPUT | |
- name: Update repository # but it is a string here! | |
if: ${{ github.event.inputs.update == 'true' }} | |
working-directory: app/data | |
run: | | |
git config user.email "[email protected]" | |
git config user.name "FAForever" | |
git stage . | |
git commit -m "Update generated data to game version ${{ fromJson(steps.gameVersionJSON.outputs.json).version}}" | |
git push origin HEAD:master | |
git tag "${{ fromJson(steps.gameVersionJSON.outputs.json).version}}" | |
git tag push |