improve toolchain build speed #142
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
name: CI | |
on: | |
push: | |
pull_request: | |
repository_dispatch: | |
types: [run_build] | |
workflow_dispatch: {} | |
jobs: | |
build: | |
runs-on: ${{ matrix.os[0] }} | |
strategy: | |
matrix: | |
os: [ | |
[macos-latest, arm64, bash], | |
[macos-13, x86_64, bash], | |
[ubuntu-latest, x86_64, bash], | |
[windows-latest, x86_64, msys2] | |
] | |
fail-fast: false | |
defaults: | |
run: | |
shell: ${{ matrix.os[2] }} {0} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install on Ubuntu | |
if: matrix.os[0] == 'ubuntu-latest' | |
run: | | |
sudo apt-get update | |
sudo apt-get -y install texinfo bison flex gettext libgmp3-dev libmpfr-dev libmpc-dev | |
- name: Install on Mac(s) | |
if: startsWith(matrix.os[0], 'macos') | |
run: | | |
brew update | |
brew install texinfo bison flex gnu-sed gsl gmp mpfr libmpc | |
- name: Install in MSYS2 | |
if: matrix.os[0] == 'windows-latest' | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: MINGW32 | |
install: | | |
base-devel git make texinfo flex bison patch binutils mingw-w64-i686-gcc mpc-devel tar | |
mingw-w64-i686-cmake mingw-w64-i686-make mingw-w64-i686-libogg | |
update: true | |
- name: Runs all stages | |
run: | | |
export PATH="$(brew --prefix gnu-sed)/libexec/gnubin:$PATH" | |
export PSPDEV=$PWD/pspdev | |
export PATH=$PATH:$PSPDEV/bin | |
./toolchain.sh | |
- name: Get short SHA | |
id: slug | |
run: echo "sha8=$(echo ${GITHUB_SHA} | cut -c1-8)" >> $GITHUB_OUTPUT | |
- name: Compress pspdev folder | |
run: | | |
tar -zcvf pspdev.tar.gz pspdev | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: pspdev-${{ steps.slug.outputs.sha8 }}-${{ matrix.os[0] }} | |
path: pspdev.tar.gz | |
build-docker: | |
runs-on: ubuntu-latest | |
container: ${{ matrix.os[0] }}:latest | |
strategy: | |
matrix: | |
os: [[ubuntu, bash], [fedora, bash]] | |
steps: | |
- name: Install dependencies Ubuntu | |
if: matrix.os[0] == 'ubuntu' | |
run: | | |
apt-get -y update | |
DEBIAN_FRONTEND="noninteractive" TZ="Europe/London" apt-get -y install file bison make flex texinfo gettext \ | |
g++ gcc git libgmp3-dev libmpfr-dev libmpc-dev libncurses5-dev | |
- name: Install dependencies Fedora | |
if: matrix.os[0] == 'fedora' | |
run: | | |
dnf -y install gcc gcc-c++ make git gettext texinfo bison flex gmp-devel mpfr-devel libmpc-devel \ | |
ncurses-devel diffutils glibc-gconv-extra which | |
- name: Checkout git repo | |
uses: actions/checkout@v4 | |
- name: Runs all the stages in the shell | |
run: | | |
chown -R $(id -nu):$(id -ng) . | |
export PSPDEV=$PWD/pspdev | |
export PATH=$PATH:$PSPDEV/bin | |
./toolchain.sh | |
- name: Get short SHA | |
id: slug | |
run: echo "sha8=$(echo ${GITHUB_SHA} | cut -c1-8)" >> $GITHUB_OUTPUT | |
- name: Compress pspdev folder | |
run: | | |
tar -zcvf pspdev.tar.gz pspdev | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: pspdev-${{ steps.slug.outputs.sha8 }}-${{ matrix.os[0] }}-${{ matrix.os[1] }} | |
path: pspdev.tar.gz |