Skip to content

cleanup submodules #498

cleanup submodules

cleanup submodules #498

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}}