. #409
Workflow file for this run
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
# This workflow will compile burrio_link.exe, the burrito binary, and any | |
# additional libraries needed to run. All these files will then be available | |
# as an artifact. | |
name: CI | |
env: | |
# The version of Godot to use | |
GODOT_VERSION: 3.3.2 | |
# Used as a makeshift cache expiry | |
CACHE_STRING: "Zo6AbxJk4KQl0sGE" | |
# Controls when the workflow will run | |
on: | |
# Triggers the workflow on push or pull request events but only for the main branch | |
push: | |
branches: [ "*" ] | |
pull_request: | |
branches: [ "*" ] | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
# A workflow run is made up of one or more jobs that can run sequentially or in parallel | |
jobs: | |
# This workflow contains a single job called "build" | |
Build-XMLConverter-Linux: | |
# The type of runner that the job will run on | |
runs-on: ubuntu-20.04 | |
# Steps represent a sequence of tasks that will be executed as part of the job | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v2 | |
- name: Create the Output Directory | |
run: mkdir -v -p output | |
# # `clang-9` must be installed here because of a weird unlisted dependency | |
# # on some sort of file that clang-9 installs. Without it iwyu would | |
# # complain about missing files and error out. | |
# - name: Install include-what-you-use | |
# run: | | |
# sudo apt-get install iwyu | |
# sudo apt-get install clang-9 | |
- name: Install protoc | |
run: sudo apt-get install protobuf-compiler | |
- name: Install gtest | |
run: sudo apt-get install libgtest-dev | |
- name: Install cpplint | |
run: | | |
pip3 install cpplint | |
- name: Install xml_converter/generators Dependencies | |
run: | | |
cd xml_converter/generators | |
python3 -m venv venv | |
source venv/bin/activate | |
pip install -r requirements.txt | |
- name: Build xml_converter | |
run: | | |
cd xml_converter | |
mkdir -v -p build | |
cd build | |
cmake .. | |
make | |
mv xml_converter ../../output/ | |
cp compile_commands.json ../compile_commands.json | |
- name: Validate xml_converter | |
run: | | |
cd xml_converter | |
./presubmit.sh | |
- name: Upload created file | |
uses: actions/upload-artifact@v2 | |
with: | |
name: xml_converter | |
path: xml_converter/build/xml_converter | |
Build-BurritoLink-Linux: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v2 | |
- name: Create the Output Directory | |
run: mkdir -v -p output | |
- name: Install mingw | |
run: sudo apt-get install gcc-mingw-w64 | |
- name: Build Burrito Link | |
run: | | |
cd burrito_link | |
make | |
- name: Upload created file | |
uses: actions/upload-artifact@v2 | |
with: | |
name: burrito_link.exe | |
path: burrito_link/burrito_link.exe | |
Build-BurritoUI-Linux: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v2 | |
- name: Create the Output Directory | |
run: mkdir -v -p output | |
# - name: Cache Godot | |
# id: cache-godot | |
# uses: actions/cache@v2 | |
# with: | |
# path: ./Godot_v${GODOT_VERSION}-stable_linux_headless.64 | |
# key: ${{ runner.os }}-godot-${GODOT_VERSION}-${CACHE_STRING} | |
- name: Download Godot | |
# if: steps.cache-godot.outputs.cache-hit != 'true' | |
run: | | |
wget -q https://downloads.tuxfamily.org/godotengine/${GODOT_VERSION}/Godot_v${GODOT_VERSION}-stable_linux_headless.64.zip | |
unzip Godot_v${GODOT_VERSION}-stable_linux_headless.64.zip | |
rm Godot_v${GODOT_VERSION}-stable_linux_headless.64.zip | |
# - name: Cache Godot Templates | |
# id: cache-godot-templates | |
# uses: actions/cache@v2 | |
# with: | |
# path: ~/.local/share/godot/templates/${GODOT_VERSION}.stable/ | |
# key: ${{ runner.os }}-godot-${GODOT_VERSION}-${CACHE_STRING} | |
- name: Download Godot Export Templates | |
# if: steps.cache-godot-templates.outputs.cache-hit != 'true' | |
run: | | |
mkdir -v -p ~/.local/share/godot/templates/${GODOT_VERSION}.stable/ | |
wget -q https://downloads.tuxfamily.org/godotengine/${GODOT_VERSION}/Godot_v${GODOT_VERSION}-stable_export_templates.tpz | |
unzip Godot_v${GODOT_VERSION}-stable_export_templates.tpz | |
mv templates/* ~/.local/share/godot/templates/${GODOT_VERSION}.stable/ | |
ls ~/.local/share/godot/templates/${GODOT_VERSION}.stable/ | |
- name: Build X11_FG | |
run: | | |
cd burrito-fg | |
cargo build --release | |
- name: Build taco_parser | |
run: | | |
cd taco_parser | |
cargo build --release | |
- name: Build Burrito | |
run: | | |
mkdir -v -p build | |
./Godot_v${GODOT_VERSION}-stable_linux_headless.64 --export "Linux/X11" | |
chmod +x build/burrito.x86_64 | |
mv build/burrito.x86_64 output/ | |
mv build/libburrito_fg.so output/ | |
mv build/libgw2_taco_parser.so output/ | |
- uses: actions/upload-artifact@v2 | |
with: | |
# Artifact name | |
name: "Burrito_UI" # optional, default is artifact | |
# A file, directory or wildcard pattern that describes what to upload | |
path: "output/*" | |
# The desired behavior if no files are found using the provided path. | |
if-no-files-found: error | |
Package-Burrito-Linux: | |
runs-on: ubuntu-20.04 | |
needs: | |
- Build-XMLConverter-Linux | |
- Build-BurritoLink-Linux | |
- Build-BurritoUI-Linux | |
steps: | |
- name: Download Burrito UI | |
uses: actions/download-artifact@v2 | |
with: | |
name: Burrito_UI | |
- name: List Files | |
run: ls -al | |
- name: Download XML Converter | |
uses: actions/download-artifact@v2 | |
with: | |
name: xml_converter | |
- name: List Files | |
run: ls -al | |
- name: Download XML Converter | |
uses: actions/download-artifact@v2 | |
with: | |
name: burrito_link.exe | |
- name: List Files | |
run: ls -al | |
- name: Move Burrito Link | |
run: mv burrito_link/burrito_link.exe output/ | |
- uses: actions/[email protected] | |
with: | |
# Artifact name | |
name: "Burrito_Linux" # optional, default is artifact | |
# A file, directory or wildcard pattern that describes what to upload | |
path: "output/*" | |
# The desired behavior if no files are found using the provided path. | |
if-no-files-found: error | |
# Duration after which artifact will expire in days. 0 means using default retention. | |
retention-days: 7 |