Merge branch '3.x' of https://github.com/ppiecuch/godot into 3.x #496
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: 🐜 Retro-devices Builds | |
on: [push, pull_request] | |
# https://github.saobby.my.eu.orgmunity/t/how-to-use-docker-compose-with-github-actions/16850 | |
# https://github.com/sdt/docker-raspberry-pi-cross-compiler | |
# https://www.raspberrypi.org/forums/viewtopic.php?t=11629 | |
# https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/aarch64-linux-gnu/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz | |
# Global Cache Settings | |
env: | |
GODOT_BASE_BRANCH: master | |
SCONS_CACHE_LIMIT: 4096 | |
RPI_IMAGE: rpi_toolchain | |
VITASDK_PATH: /opt/vitasdk | |
GCW0_TOOLCHAIN: 2021-03-10 | |
ODROID_TAG: 2020-10-01 | |
ODROID_ARCH: gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu | |
ODROID_TOOLCHAIN: https://github.com/respeaker/toolchains/raw/master/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz | |
RETENTION_DAYS: 2 | |
jobs: | |
rpi-template: | |
runs-on: "ubuntu-20.04" | |
if: "contains(github.event.head_commit.message, '[ci]')" | |
name: RPi Template (target=release, tools=no) | |
steps: | |
- uses: actions/checkout@v2 | |
# Azure repositories are not reliable, we need to prevent azure giving us packages. | |
- name: Make apt sources.list use the default Ubuntu repositories | |
run: | | |
sudo cp -f misc/ci/sources.list /etc/apt/sources.list | |
sudo apt-get update | |
# Install all packages (except scons) | |
- name: Configure dependencies | |
run: | | |
sudo apt-get install -y wget | |
# Upload cache on completion and check it out now | |
- name: Load .scons_cache directory | |
id: rpi-template-cache | |
uses: actions/cache@v2 | |
with: | |
path: ${{github.workspace}}/.scons_cache/ | |
key: ${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}} | |
restore-keys: | | |
${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}} | |
${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}} | |
${{github.job}}-${{env.GODOT_BASE_BRANCH}} | |
- name: Configure environment | |
run: | | |
echo "RPXC_IMAGE=${{env.RPI_IMAGE}}" >> $GITHUB_ENV | |
- name: Build Docker RPi toolchain and build environment | |
run: | | |
cp misc/ci/rpi_dockerfile Dockerfile | |
docker build -t ${RPXC_IMAGE} . | |
mkdir ~/bin | |
docker run ${RPXC_IMAGE} > ~/bin/rpxc | |
chmod +x ~/bin/rpxc | |
echo "*** patching rpxc" | |
sed -i -e 's/run -i/run/' ~/bin/rpxc | |
~/bin/rpxc -- scons --version | |
~/bin/rpxc -- bash -c 'ls -l /rpxc/sysroot/opt/vc' | |
echo "::warning::Using gcc/toolchain version $(~/bin/rpxc -- arm-linux-gnueabihf-gcc --version)" | |
- name: Checkout FRT platform | |
uses: actions/checkout@v2 | |
with: | |
repository: 'ppiecuch/frt' | |
path: 'platform/frt/' | |
- name: RPi1 compilation | |
env: | |
SCONS_CACHE: ${{github.workspace}}/.scons_cache/ | |
run: | | |
~/bin/rpxc -- scons -j2 platform=frt frt_arch=pi1 verbose=yes warnings=all werror=yes target=release tools=no | |
- name: RPi2 compilation | |
env: | |
SCONS_CACHE: ${{github.workspace}}/.scons_cache/ | |
run: | | |
~/bin/rpxc -- scons -j2 platform=frt frt_arch=pi2 verbose=yes warnings=all werror=yes target=release tools=no | |
- name: RPi3 compilation | |
env: | |
SCONS_CACHE: ${{github.workspace}}/.scons_cache/ | |
run: | | |
~/bin/rpxc -- scons -j2 platform=frt frt_arch=pi3 verbose=yes warnings=all werror=yes target=release tools=no | |
- name: Upload all templates | |
uses: actions/upload-artifact@v2 | |
with: | |
name: all-rpi-templates | |
path: | | |
bin/godot.frt.opt.arm.pi1 | |
bin/godot.frt.opt.arm.pi2 | |
bin/godot.frt.opt.arm.pi3 | |
retention-days: ${{env.RETENTION_DAYS}} | |
odroid-template: | |
runs-on: "ubuntu-20.04" | |
name: Odroid Template (target=release, tools=no) | |
if: "contains(github.event.head_commit.message, '[ci]')" | |
steps: | |
- uses: actions/checkout@v2 | |
# Azure repositories are not reliable, we need to prevent azure giving us packages. | |
- name: Make apt sources.list use the default Ubuntu repositories | |
run: | | |
sudo cp -f misc/ci/sources.list /etc/apt/sources.list | |
sudo apt-get update | |
# Install all packages (except scons) | |
- name: Configure dependencies | |
run: | | |
sudo apt-get install -y wget | |
# Upload cache on completion and check it out now | |
- name: Load .scons_cache directory | |
id: rpi-template-cache | |
uses: actions/cache@v2 | |
with: | |
path: ${{github.workspace}}/.scons_cache/ | |
key: ${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}} | |
restore-keys: | | |
${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}} | |
${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}} | |
${{github.job}}-${{env.GODOT_BASE_BRANCH}} | |
- name: Build Docker ODroid toolchain and build environment | |
run: | | |
cp misc/ci/odroid_dockerfile Dockerfile | |
docker build --build-arg version=${{env.ODROID_TAG}} --build-arg toolchain=${{env.ODROID_TOOLCHAIN}} -t odroid_dev:${{env.ODROID_TAG}} . | |
CROSS="/opt/${{env.ODROID_ARCH}}/bin/aarch64-linux-gnu-gcc" | |
echo "::warning::Using gcc/toolchain version $(docker run --rm -t odroid_dev:${{env.ODROID_TAG}} $CROSS --version)" | |
- name: Checkout FRT platform | |
uses: actions/checkout@v2 | |
with: | |
repository: 'ppiecuch/frt' | |
path: 'platform/frt/' | |
- name: ODroid compilation | |
env: | |
SCONS_CACHE: ${{github.workspace}}/.scons_cache/ | |
run: | | |
echo "#!/bin/bash" > wrapper.sh | |
echo "PATH=$PATH:/opt/${{env.ODROID_ARCH}}/bin" >> wrapper.sh | |
echo "scons -j2 platform=frt frt_arch=odroid verbose=yes warnings=all werror=yes target=release tools=no" >> wrapper.sh | |
chmod a+x wrapper.sh | |
docker run --rm -t -v "$(pwd):/app" odroid_dev:${{env.ODROID_TAG}} ./wrapper.sh | |
- name: Upload templates | |
uses: actions/upload-artifact@v2 | |
with: | |
name: odroid-templates | |
path: bin/godot.frt.opt.aarch64.odroid | |
retention-days: ${{env.RETENTION_DAYS}} | |
psvita-template: | |
runs-on: "ubuntu-20.04" | |
name: PSVita Template (target=release, tools=no) | |
if: "contains(github.event.head_commit.message, '[ci]')" | |
steps: | |
- uses: actions/checkout@v2 | |
# Azure repositories are not reliable, we need to prevent azure giving us packages. | |
- name: Make apt sources.list use the default Ubuntu repositories | |
run: | | |
sudo cp -f misc/ci/sources.list /etc/apt/sources.list | |
sudo apt-get update | |
# Install all packages (except scons) | |
- name: Configure dependencies | |
run: | | |
sudo apt-get install -y wget xz-utils cmake | |
# Checkout and configure VitaSDK package | |
- name: Checkout VDPM package | |
uses: actions/checkout@v2 | |
with: | |
repository: 'vitasdk/vdpm' | |
path: 'vdpm' | |
- name: Configure environment | |
run: | | |
echo "VITASDK=${{env.VITASDK_PATH}}" >> $GITHUB_ENV | |
echo "${{env.VITASDK_PATH}}/bin" >> $GITHUB_PATH | |
- name: Configure VitaSDK and toolchain | |
run: | | |
cd vdpm | |
./bootstrap-vitasdk.sh | |
./install-all.sh | |
echo "::warning::Using gcc/toolchain version $(arm-vita-eabi-gcc --version)" | |
# Upload cache on completion and check it out now | |
- name: Load .scons_cache directory | |
id: psvita-template-cache | |
uses: actions/cache@v2 | |
with: | |
path: ${{github.workspace}}/.scons_cache/ | |
key: ${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}} | |
restore-keys: | | |
${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}} | |
${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}} | |
${{github.job}}-${{env.GODOT_BASE_BRANCH}} | |
# Use python 3.x release (works cross platform) | |
- name: Set up Python 3.x | |
uses: actions/setup-python@v2 | |
with: | |
# Semantic version range syntax or exact version of a Python version | |
python-version: '3.x' | |
# Optional - x64 or x86 architecture, defaults to x64 | |
architecture: 'x64' | |
# You can test your matrix by printing the current Python version | |
- name: Configuring Python packages | |
run: | | |
python -c "import sys; print(sys.version)" | |
python -m pip install scons | |
python --version | |
scons --version | |
- name: Compilation | |
env: | |
SCONS_CACHE: ${{github.workspace}}/.scons_cache/ | |
run: | | |
scons -j2 verbose=yes platform=psvita warnings=all werror=yes disable_3ds=yes target=release tools=no | |
- name: Upload template | |
uses: actions/upload-artifact@v2 | |
with: | |
name: psvita-template | |
path: bin/godot.psvita.opt.arm | |
retention-days: ${{env.RETENTION_DAYS}} | |
gcw0-template: | |
runs-on: "ubuntu-20.04" | |
name: GCW0 Template (target=release, tools=no) | |
if: "contains(github.event.head_commit.message, '[ci]')" | |
steps: | |
- uses: actions/checkout@v2 | |
# Azure repositories are not reliable, we need to prevent azure giving us packages. | |
- name: Make apt sources.list use the default Ubuntu repositories | |
run: | | |
sudo cp -f misc/ci/sources.list /etc/apt/sources.list | |
sudo apt-get update | |
# Install all packages (except scons) | |
- name: Configure dependencies | |
run: | | |
sudo apt-get install -y wget | |
# Upload cache on completion and check it out now | |
- name: Load .scons_cache directory | |
id: gcw0-template-cache | |
uses: actions/cache@v2 | |
with: | |
path: ${{github.workspace}}/.scons_cache/ | |
key: ${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}} | |
restore-keys: | | |
${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}} | |
${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}} | |
${{github.job}}-${{env.GODOT_BASE_BRANCH}} | |
# Use python 3.x release (works cross platform) | |
- name: Set up Python 3.x | |
uses: actions/setup-python@v2 | |
with: | |
# Semantic version range syntax or exact version of a Python version | |
python-version: '3.x' | |
# Optional - x64 or x86 architecture, defaults to x64 | |
architecture: 'x64' | |
# You can test your matrix by printing the current Python version | |
- name: Configuring Python packages | |
run: | | |
python -c "import sys; print(sys.version)" | |
python -m pip install scons | |
python --version | |
scons --version | |
- name: Build Docker GCW0 toolchain | |
run: | | |
cp misc/ci/gcw0_dockerfile Dockerfile | |
docker build --build-arg version=${{env.GCW0_TOOLCHAIN}} -t gcw_zero_dev:${{env.GCW0_TOOLCHAIN}} . | |
echo "::warning::Using gcc/toolchain version $(docker run --rm -t gcw_zero_dev:${{env.GCW0_TOOLCHAIN}} mipsel-linux-gcc --version)" | |
- name: Checkout FRT platform | |
uses: actions/checkout@v2 | |
with: | |
repository: 'ppiecuch/frt' | |
path: 'platform/frt/' | |
- name: Compilation | |
env: | |
SCONS_CACHE: ${{github.workspace}}/.scons_cache/ | |
run: | | |
docker run --rm -t -v "$(pwd):/app" gcw_zero_dev:${{env.GCW0_TOOLCHAIN}} scons -j2 platform=frt frt_arch=gcw0 verbose=yes warnings=all werror=yes target=release tools=no | |
- name: Upload template | |
uses: actions/upload-artifact@v2 | |
with: | |
name: gcw0-template | |
path: bin/godot.frt.opt.mipsel.gcw0 | |
retention-days: ${{env.RETENTION_DAYS}} | |
nds-template: | |
runs-on: "ubuntu-20.04" | |
container: "devkitpro/devkitarm" | |
name: 3DS Template (target=release, tools=no) | |
if: "contains(github.event.head_commit.message, '[ci]')" | |
steps: | |
- uses: actions/checkout@v2 | |
# Install all packages (except scons) | |
- name: Configure dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y --allow-unauthenticated wget python python-pip | |
# Environment for devkitPro | |
- name: Configure devKit | |
run: | | |
echo "CTRULIB=${DEVKITPRO}/libctru" >> $GITHUB_ENV | |
echo "${DEVKITARM}/bin" >> $GITHUB_PATH | |
# Upload cache on completion and check it out now | |
- name: Load .scons_cache directory | |
id: nds-template-cache | |
uses: actions/cache@v2 | |
with: | |
path: ${{github.workspace}}/.scons_cache/ | |
key: ${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}} | |
restore-keys: | | |
${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}} | |
${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}} | |
${{github.job}}-${{env.GODOT_BASE_BRANCH}} | |
# You can test your matrix by printing the current Python version | |
- name: Configuring Python packages | |
run: | | |
python -c "import sys; print(sys.version)" | |
python -m pip install scons | |
python --version | |
scons --version | |
- name: Compilation | |
env: | |
SCONS_CACHE: ${{github.workspace}}/.scons_cache/ | |
run: | | |
scons -j2 platform=3ds verbose=yes warnings=all werror=yes target=release tools=no disable_3d=yes | |
- name: Upload template | |
uses: actions/upload-artifact@v2 | |
with: | |
name: nds-template | |
path: bin/godot.3ds.opt.arm | |
retention-days: ${{env.RETENTION_DAYS}} |