Skip to content

matrix.yaml:LocRes-Builder-Output #2

matrix.yaml:LocRes-Builder-Output

matrix.yaml:LocRes-Builder-Output #2

Workflow file for this run

on:
push:
branches: [matrix]
paths:
- "Steam/**/pakchunk0-WindowsNoEditor.pak/Game/Content/Localization/Game/Game.locres.yaml"
- "Steam/**/pakchunk0-WindowsNoEditor.pak/Game/Content/NonAssets/ETP/ETP.yaml"
- ".github/workflows/matrix.yml"
jobs:
Checkout_Repos:
permissions: write-all
runs-on: self-hosted
steps:
- name: Checkout dqx_dat_dump
uses: actions/checkout@v4
with:
path: ./MATRIX/dqx_dat_dump
ref: testing
repository: KodywithaK/dqx_dat_dump
- name: Checkout dqx-offline-localization
uses: actions/checkout@v4
with:
path: ./MATRIX/dqx-offline-localization
ref: main
repository: KodywithaK/dqx-offline-localization
- name: Checkout LocRes-Builder
uses: actions/checkout@v4
with:
path: ./MATRIX/LocRes-Builder
ref: testing
repository: KodywithaK/LocRes-Builder
LocRes-Builder-Input:
needs: [Checkout_Repos]
runs-on: self-hosted
steps:
- name: LocRes-Builder Inputs
run: |
# echo -e "::group::\033[0;34m Building LocRes-Builder's Inputs \033[0m"
mkdir -p ${{ github.workspace }}/MATRIX/LocRes-Builder/INPUT
cp \
"${{ github.workspace }}/MATRIX/dqx-offline-localization/Steam/App_ID-1358750/Build_ID-14529657/pakchunk0-WindowsNoEditor.pak/Game/Content/Localization/Game/locmetav2.json" \
"${{ github.workspace }}/MATRIX/LocRes-Builder/INPUT/locmeta.json"
echo -e "Splitting Game.locres.yaml"
for LANGUAGE in de en es fr it ja ko la pt-BR zh-Hans zh-Hant; do \
echo -e "Splitting \033[0;32m$LANGUAGE\033[0m"
yq "." \
"${{ github.workspace }}/MATRIX/dqx-offline-localization/Steam/App_ID-1358750/Build_ID-14529657/pakchunk0-WindowsNoEditor.pak/Game/Content/Localization/Game/Game.locres.yaml" \
--yaml-fix-merge-anchor-to-spec -o json \
| jq --arg LANGUAGE $LANGUAGE \
--from-file "${{ github.workspace }}/MATRIX/dqx-offline-localization/Steam/App_ID-1358750/Build_ID-14529657/pakchunk0-WindowsNoEditor.pak/Game/Content/Localization/Game/Game.locres.json_--from-file.txt" \
> "${{ github.workspace }}/MATRIX/LocRes-Builder/INPUT/${LANGUAGE}.json"
done
# echo "::endgroup::"
LocRes-Builder-Output:
needs: [Checkout_Repos, LocRes-Builder-Input]
runs-on: self-hosted
strategy:
matrix:
LocResVersion: [2, 3]
steps:
- name: LocRes-Builder Outputs
run: |
echo -e "${{ matrix.LocResVersion }}"
if [[ ${{ matrix.LocResVersion }} == 2 ]]; then
DESTINATION="Optimized_CRC32";
else
DESTINATION="Optimized_CityHash64_UTF16";
fi
echo -e "::group::\033[0;34m Building LocRes-Builder's Outputs \033[0m"
mkdir -p ${{ github.workspace }}/MATRIX/LocRes-Builder/OUTPUT/${DESTINATION}
python3 "${{ github.workspace }}/MATRIX/LocRes-Builder/src/main.py" \
-i "${{ github.workspace }}/MATRIX/LocRes-Builder/INPUT/locmeta.json" \
-v ${{ matrix.LocResVersion }} \
-o "${{ github.workspace }}/MATRIX/LocRes-Builder/OUTPUT/${DESTINATION}" -f=json
for LANGUAGE in de en es fr it ja ko pt-BR zh-Hans zh-Hant; do \
mkdir -p "${{ github.workspace }}/MATRIX/staging/${LANGUAGE}/Game/Content/Localization/Game/${LANGUAGE}"
cp \
"${{ github.workspace }}/MATRIX/LocRes-Builder/OUTPUT/${DESTINATION}/Game/${LANGUAGE}/Game.locres" \
"${{ github.workspace }}/MATRIX/staging/${LANGUAGE}/Game/Content/Localization/Game/${LANGUAGE}/Game.locres"
done
echo "::endgroup::"
########################################################################################################################################################################################################
# YAML_to_ETP:
# needs: [Checkout_Repos, LocRes-Builder]
# runs-on: self-hosted
# steps:
# - name: Install Python
# uses: actions/setup-python@v4
# with:
# architecture: "x64"
# # python-version: '3.x'
# python-version: "3.11"
# cache: "pip" # caching pip dependencies
#
# - name: Split ETP.yaml
# run: |
# mkdir -p "${{ github.workspace }}/MATRIX/dqx-offline-localization/Steam/App_ID-1358750/Build_ID-14529657/pakchunk0-WindowsNoEditor.pak/Game/Content/NonAssets/ETP"
# cd "${{ github.workspace }}/MATRIX/dqx-offline-localization/Steam/App_ID-1358750/Build_ID-14529657/pakchunk0-WindowsNoEditor.pak/Game/Content/NonAssets/ETP"
# echo -e "Splitting ETP.yaml"
# yq -s "keys[], . = .[]" \
# "./ETP.yaml" \
# --yaml-fix-merge-anchor-to-spec -o json
# rm "./anchors.json"
#
# - name: dqx_dat_dump
# run: |
# cd "${{ github.workspace }}/MATRIX/dqx_dat_dump"
# python -m venv venv
# source ./venv/bin/activate
# pip install -r requirements.txt
# cd ./tools/packing/
#
# for LANGUAGE in de en es fr it ja ko pt-BR zh-Hans zh-Hant; do
# echo -e "::group::Packing \033[0;32m ETP_${LANGUAGE}\033[0m"
# python pack_etp--KwK_20250626.py -L ${LANGUAGE}
# echo "::endgroup::"
# done
#
# deactivate
# cd ~
#
########################################################################################################################################################################################################
# UnrealPak_-Create:
# needs: [Checkout_Repos, LocRes-Builder, YAML_to_ETP]
# runs-on: self-hosted
# steps:
# - name: UnrealPak -Create
# run: |
# mkdir -p \
# "${{ github.workspace }}/MATRIX/staging" \
# "${{ github.workspace }}/MATRIX/releases"
#
# for PLATFORM in Android_ETC2 ios ps4 Switch WindowsNoEditor; do\
# for LANGUAGE in de en es fr it ja ko pt-BR zh-Hans zh-Hant; do\
# mkdir -p \
# "${{ github.workspace }}/MATRIX/staging/${LANGUAGE}" \
# "${{ github.workspace }}/MATRIX/staging/${LANGUAGE}/Game/Content/NonAssets/ETP_ko" \
# "${{ github.workspace }}/MATRIX/staging/${LANGUAGE}/Game/Content/NonAssets/ETP_zh_hans" \
# "${{ github.workspace }}/MATRIX/staging/${LANGUAGE}/Game/Content/NonAssets/ETP_zh_hant"
#
# cp \
# ${{ github.workspace }}/MATRIX/staging/${LANGUAGE}/Game/Content/NonAssets/ETP/* \
# ${{ github.workspace }}/MATRIX/staging/${LANGUAGE}/Game/Content/NonAssets/ETP_ko
#
# cp \
# ${{ github.workspace }}/MATRIX/staging/${LANGUAGE}/Game/Content/NonAssets/ETP/* \
# ${{ github.workspace }}/MATRIX/staging/${LANGUAGE}/Game/Content/NonAssets/ETP_zh_hans
#
# cp \
# ${{ github.workspace }}/MATRIX/staging/${LANGUAGE}/Game/Content/NonAssets/ETP/* \
# ${{ github.workspace }}/MATRIX/staging/${LANGUAGE}/Game/Content/NonAssets/ETP_zh_hant
#
# if [[ ${PLATFORM} == @(Android_ETC2|ios|ps4|Switch) ]]; then
# DESTINATION="Holiday";
# else
# DESTINATION="Game";
# fi
# echo -e "::group::Creating \033[0;34m Titlescreen Version Info \033[0m"
# mkdir -p "${{ github.workspace }}/MATRIX/staging/${LANGUAGE}/Game/Content/Settings/Version"
#
# jq -n "{\"AppVersionString\": \"2.0.1\n$(echo -e ${LANGUAGE}_v$(date -u +%Y.%m.%d ))\n${PLATFORM}\"}" \
# > "${{ github.workspace }}/MATRIX/staging/${LANGUAGE}/Game/Content/Settings/Version/version_settings.json"
#
# echo -e "$(jq -n "{\"AppVersionString\": \"2.0.1\n$(echo -e ${LANGUAGE}_v$(date -u +%Y.%m.%d ))\n${PLATFORM}\"}")"
# echo "::endgroup::"
#
# if [[ ${PLATFORM} == @(ps4|ps4_ZZZ) ]]; then
# # filename priority fix
# PLATFORM="ps4_ZZZ"
# else
# PLATFORM="${PLATFORM}"
# fi
#
# echo -e "::group::Creating \033[0;34m responseFile--pakchunk0-${PLATFORM}_Latest.pak.txt \033[0m"
# echo -e \
# "\
# \"..\\..\\..\\..\\\actions-runner\\_work\\dqx-offline-localization\\dqx-offline-localization\\BUILD\\staging\\\\${LANGUAGE}\\Game\\Content\\NonAssets\\\ETP\*\" \"../../../${DESTINATION}/Content/NonAssets/ETP/\"\
# \"..\\..\\..\\..\\\actions-runner\\_work\\dqx-offline-localization\\dqx-offline-localization\\BUILD\\staging\\\\${LANGUAGE}\\Game\\Content\\NonAssets\\\ETP_ko\*\" \"../../../${DESTINATION}/Content/NonAssets/ETP_ko/\"\
# \"..\\..\\..\\..\\\actions-runner\\_work\\dqx-offline-localization\\dqx-offline-localization\\BUILD\\staging\\\\${LANGUAGE}\\Game\\Content\\NonAssets\\\ETP_zh_hans\*\" \"../../../${DESTINATION}/Content/NonAssets/ETP_zh_hans/\"\
# \"..\\..\\..\\..\\\actions-runner\\_work\\dqx-offline-localization\\dqx-offline-localization\\BUILD\\staging\\\\${LANGUAGE}\\Game\\Content\\NonAssets\\\ETP_zh_hant\*\" \"../../../${DESTINATION}/Content/NonAssets/ETP_zh_hant/\"\
# \"..\\..\\..\\..\\\actions-runner\\_work\\dqx-offline-localization\\dqx-offline-localization\\BUILD\\staging\\\\${LANGUAGE}\\Game\\Content\\Localization\\Game\\\\${LANGUAGE}\\Game.locres\" \"../../../${DESTINATION}/Content/Localization/Game/ko/Game.locres\"\
# \"..\\..\\..\\..\\\actions-runner\\_work\\dqx-offline-localization\\dqx-offline-localization\\BUILD\\staging\\\\${LANGUAGE}\\Game\\Content\\Settings\\Version\\\version_settings.json\" \"../../../${DESTINATION}/Content/Settings/Version/version_settings.json\"\
# " | sed -e 's/ /\n/g ; s/^[[:space:]]*//g ; s/[[:space:]]*$//g' > ${{ github.workspace }}/MATRIX/staging/responseFile--pakchunk0-${PLATFORM}_Latest.pak.txt
#
# echo -e \
# "\
# \"..\\..\\..\\..\\\actions-runner\\_work\\dqx-offline-localization\\dqx-offline-localization\\BUILD\\staging\\\\${LANGUAGE}\\Game\\Content\\NonAssets\\\ETP\*\" \"../../../${DESTINATION}/Content/NonAssets/ETP/\"\
# \"..\\..\\..\\..\\\actions-runner\\_work\\dqx-offline-localization\\dqx-offline-localization\\BUILD\\staging\\\\${LANGUAGE}\\Game\\Content\\NonAssets\\\ETP_ko\*\" \"../../../${DESTINATION}/Content/NonAssets/ETP_ko/\"\
# \"..\\..\\..\\..\\\actions-runner\\_work\\dqx-offline-localization\\dqx-offline-localization\\BUILD\\staging\\\\${LANGUAGE}\\Game\\Content\\NonAssets\\\ETP_zh_hans\*\" \"../../../${DESTINATION}/Content/NonAssets/ETP_zh_hans/\"\
# \"..\\..\\..\\..\\\actions-runner\\_work\\dqx-offline-localization\\dqx-offline-localization\\BUILD\\staging\\\\${LANGUAGE}\\Game\\Content\\NonAssets\\\ETP_zh_hant\*\" \"../../../${DESTINATION}/Content/NonAssets/ETP_zh_hant/\"\
# \"..\\..\\..\\..\\\actions-runner\\_work\\dqx-offline-localization\\dqx-offline-localization\\BUILD\\staging\\\\${LANGUAGE}\\Game\\Content\\Localization\\Game\\\\${LANGUAGE}\\Game.locres\" \"../../../${DESTINATION}/Content/Localization/Game/ko/Game.locres\"\
# \"..\\..\\..\\..\\\actions-runner\\_work\\dqx-offline-localization\\dqx-offline-localization\\BUILD\\staging\\\\${LANGUAGE}\\Game\\Content\\Settings\\Version\\\version_settings.json\" \"../../../${DESTINATION}/Content/Settings/Version/version_settings.json\"\
# " | sed -e 's/ /\n/g ; s/^[[:space:]]*//g ; s/[[:space:]]*$//g'
# echo "::endgroup::"
#
# echo -e "::group::Creating \033[0;34m pakchunk0-${PLATFORM}_${LANGUAGE}_Dialogue_Latest_P.pak \033[0m"
# ~/UnrealEngine-4.27.2-release/Engine/Binaries/Linux/UnrealPak \
# "../../../../actions-runner/_work/dqx-offline-localization/dqx-offline-localization/MATRIX/staging/${LANGUAGE}/pakchunk0-${PLATFORM}_${LANGUAGE}_Dialogue_Latest_P.pak" \
# -Create="../../../../actions-runner/_work/dqx-offline-localization/dqx-offline-localization/MATRIX/staging/responseFile--pakchunk0-${PLATFORM}_Latest.pak.txt"
# echo "::endgroup::"
#
# echo -e "::group::Creating \033[0;34m pakchunk0-${PLATFORM}_${LANGUAGE}_Dialogue_Latest_P.pak.zip \033[0m"
# zip -uj \
# ${{ github.workspace }}/MATRIX/releases/pakchunk0-${PLATFORM}_${LANGUAGE}_Dialogue_Latest_P.pak.zip \
# ${{ github.workspace }}/MATRIX/staging/${LANGUAGE}/pakchunk0-${PLATFORM}_${LANGUAGE}_Dialogue_Latest_P.pak
# echo "::endgroup::"
#
# echo -e "::notice::\033[0;32m Successfully created: \033[0;34m pakchunk0-${PLATFORM}_${LANGUAGE}_Dialogue_Latest_P.pak \033[0m\n"
# done;
# done;
#
########################################################################################################################################################################################################
# Create_Latest_Release:
# needs: [Checkout_Repos, LocRes-Builder, YAML_to_ETP, UnrealPak_-Create]
# runs-on: self-hosted
# steps:
# - name: Create Release
# env:
# GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# run: |
# gh release create Latest \
# ${{ github.workspace }}/MATRIX/releases/pakchunk0-ps4_*_Dialogue_Latest_P.pak.zip \
# ${{ github.workspace }}/MATRIX/releases/pakchunk0-Switch_*_Dialogue_Latest_P.pak.zip \
# ${{ github.workspace }}/MATRIX/releases/pakchunk0-WindowsNoEditor_*_Dialogue_Latest_P.pak.zip \
# --notes-file ${{ github.workspace }}/MATRIX/dqx-offline-localization/docs/CHANGELOG.md \
# --title "$(echo -e v$(date -u +%Y.%m.%d ))"
#
# echo "Successfully uploaded new files to [Releases/Latest](https://github.com/KodywithaK/dqx-offline-localization/releases/tag/Latest)." >> $GITHUB_STEP_SUMMARY
# echo -e "\n::notice:: \033[0;32m Successfully uploaded new files to Latest release. \033[0m"
#
########################################################################################################################################################################################################
# 202500921_2100: `Game.locres.yaml` > `Game.locres.json`
# - To make use of anchors (&anchor) and aliases (*anchor), readability, & smaller file size
# ```bash
# clear && \
# yq "." -o=json \
# "/mnt/r/\${{ github.workspace }}/MATRIX/dqx-offline-localization/Steam/App_ID-1358750/Build_ID-14529657/pakchunk0-WindowsNoEditor.pak/Game/Content/Localization/Game/Game.locres.yaml" \
# > "/mnt/r/\${{ github.workspace }}/MATRIX/dqx-offline-localization/Steam/App_ID-1358750/Build_ID-14529657/BACKLOG/pakchunk0-WindowsNoEditor.pak/Game/Content/Localization/Game/Game.locres.json"
# ```
#
########################################################################################################################################################################################################
# 20250713_2100: `gh release edit` still not supported by github actions
# ```bash
# gh release delete Latest --yes
#
# gh release edit Multi-Languages \
# --title "(echo -e $(gh release list --json name -q ".[1].name"))" \
# --tag "previous"
# ```
#
########################################################################################################################################################################################################
# 20250728_1600: gh release edit Latest
# ```cmd
# FOR /F "usebackq" %A IN (`gh release list --json name -q "sort | reverse | .[0].name"`) DO @ECHO gh release edit Latest --title "%A" --tag "%A"
# ```
#
########################################################################################################################################################################################################
# 20250807_0000: Release PS4 `.pkg`
# - see TODO.md
# - .github/workflows/Create_Latest_Release.yml
# - PS4 `.pkg`
#
########################################################################################################################################################################################################
# 20250808_0100: `Game.locres.json` > `OUTPUT/StringTables/${LANGUAGE}/**/*.csv`
# - see TODO.md
# - .github/workflows/Create_Latest_Release.yml
# - `Game.locres.json` > `OUTPUT/StringTables/${LANGUAGE}/**/*.csv`
# - Invalid workflow file: .github/workflows/Create_Latest_Release_DEBUG.yml#L1
# (Line: 195, Col: 14): Exceeded max expression length 21000
# - Optimize/add `run` step(s)?
#
# ```yaml
# gh release create Latest \
# ...
# ${{ github.workspace }}/MATRIX/releases/StringTables.zip \
# ...
# ```
########################################################################################################################################################################################################