Skip to content

matrix 3

matrix 3 #493

Workflow file for this run

name: Dolphin-AppImage
on:
push:
workflow_dispatch:
schedule:
#- cron: "0 0 * * 1"
- cron: "1 22 * * 2"
jobs:
dolphin-appimage:
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
RELEASE: [continuous, beta]
env:
yaqti: 6.6.1
steps:
- name: Beta Run Check
id: check
run: |
export RUNHASH=$(curl -sSfL https://github.com/qurious-pixel/dolphin/releases/tag/beta | grep '<tt>' | awk '{print $NF}' | grep -E -o 'commit.{41}' | sed 's/commit\///g')
export BETAHASH=$(curl -sSfL https://dolphin-emu.org/update/latest/beta/ | jq .hash | tr -d '"')
echo "BETAHASH=$BETAHASH" >> $GITHUB_ENV
echo "RUNHASH is $RUNHASH"
echo "BETAHASH is $BETAHASH"
if [[ $RUNHASH == $BETAHASH ]]; then
echo "BETAUPDATE=true" >> $GITHUB_OUTPUT
else
echo "Updating..."
echo "BETAUPDATE=false" >> $GITHUB_OUTPUT
fi
- name: Get Beta Hash
run: |
echo "Release is ${{ matrix.RELEASE }}"
- name: Checkout Upstream Repo
if: ${{ matrix.RELEASE == 'beta' }}
uses: actions/checkout@v4
with:
repository: dolphin-emu/dolphin
ref: ${{ env.BETAHASH }}
- name: Checkout Upstream Repo
if: ${{ matrix.RELEASE == 'continuous' }}
uses: actions/checkout@v4
with:
repository: dolphin-emu/dolphin
ref: master
- name: Get Release Run
if: matrix.RELEASE == 'continuous'
run: |
echo "Running Well"
echo "Release is ${{ matrix.RELEASE }}"
- name: Checkout Submodules
if: steps.cache-submodules.outputs.cache-hit != 'true'
run: git submodule update --init --recursive -j $(getconf _NPROCESSORS_ONLN)
- name: Checkout AppImage Repo
uses: actions/checkout@v4
with:
clean: false
path: ci
# Runs the Dolphin action
- name: Get Date
id: get-date
run: |
echo "date=$(/bin/date -u "+%Y%m%d")" >> $GITHUB_OUTPUT
shell: bash
- name: cache
uses: actions/cache@v3
with:
path: ~/.ccache
key: build-ccache-${{ matrix.RELEASE }}-${{ steps.get-date.outputs.date }}
restore-keys: |
build-ccache-${{ matrix.RELEASE }}
env:
CCACHE_MAXSIZE: 200M
- name: Install Qt
run: |
curl -sLO https://files.pythonhosted.org/packages/47/42/351389ca36c7adfc5f4e92d086cdb2bdbde13f1b89ee882f4a1cab2183ac/yaqti-2021.7.29-py3-none-any.whl
python3 -m pip install yaqti-2021.7.29-py3-none-any.whl
pyver=$(python3 --version | awk '{print $2}')
curl -sL https://raw.githubusercontent.com/qurious-pixel/yaqti/fetch/yaqti/fetchers.py -o $HOME/.local/lib/python${pyver%.*}/site-packages/yaqti/fetchers.py
python -m yaqti install --os linux --platform desktop --version ${{ env.yaqti }} --modules gcc_64 --set-envs --install-deps
- name: Install Packages
run: |
sudo apt-get install -y build-essential dialog dpkg libbluetooth-dev liblz4-dev liblzma-dev libssl-dev libopus-dev libpng-dev libsystemd-dev \
libzip-dev libzstd-dev zlib1g-dev libasound2-dev libpulse-dev pulseaudio p7zip p7zip-full libsfml-dev libminiupnpc-dev libmbedtls-dev libpugixml-dev \
libbz2-dev liblzo2-dev libxi-dev libavcodec-dev libudev-dev libusb-1.0-0-dev libevdev-dev libc6-dev libhidapi-dev libavformat-dev libavdevice-dev \
libfmt-dev libwayland-dev libxrandr-dev libglu1-mesa-dev libcurl4-openssl-dev x11-utils zenity wget curl git gettext ccache make cmake ninja-build \
libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-icccm4 libxcb-image0-dev libxcb-cursor-dev jq
- name: Update Patchelf
run: |
PATCHELFVER=0.14.5
curl -sL https://github.com/NixOS/patchelf/releases/download/${PATCHELFVER}/patchelf-${PATCHELFVER}-x86_64.tar.gz -o /tmp/patchelf.tar.gz
tar -xvf /tmp/patchelf.tar.gz --directory /tmp/ ./bin/patchelf --strip-components=2
sudo mv /tmp/patchelf /usr/bin
patchelf --version
- name: Dolphin-Build Number beta
if: ${{ matrix.RELEASE == 'beta' }}
run: |
export LASTCOMMIT=$(git log --pretty=format:%H -1)
export DOLPHINVER=$(curl -L https://dolphin-emu.org/update/latest/beta/ | jq .shortrev | tr -d '"')
echo "DOLPHIN Build $DOLPHINVER"
echo "DOLPHINVER=$DOLPHINVER" >> $GITHUB_ENV
sed -i "s|\${DOLPHIN_WC_DESCRIBE}|$DOLPHINVER|g" Source/Core/Common/scmrev.h.in
- name: Dolphin-Build Number
if: ${{ matrix.RELEASE == 'continuous' }}
run: |
export LASTCOMMIT=$(git log --pretty=format:%H -1)
export DOLPHINVER=$(wget -qO- https://dolphin-emu.org/download/dev/${LASTCOMMIT} | grep '<title>' | awk '{print $NF}' | cut -d '<' -f 1)
echo "DOLPHIN Build $DOLPHINVER"
echo "DOLPHINVER=$DOLPHINVER" >> $GITHUB_ENV
sed -i "s|\${DOLPHIN_WC_DESCRIBE}|$DOLPHINVER|g" Source/Core/Common/scmrev.h.in
- name: Build Dolphin
run: |
export Qt_DIR="${{github.workspace}}/qt/${{ env.yaqti }}/gcc_64/lib/cmake/Qt6"
mkdir -p "$HOME/.ccache"
mkdir build
cd build
cmake .. -GNinja -DCMAKE_C_COMPILER=/usr/lib/ccache/gcc-10 -DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++-10 -DCMAKE_PREFIX_PATH="${{github.workspace}}/qt/${{ env.yaqti }}/gcc_64/" -Ddatadir:PATH="share/dolphin-emu" -DBIN_INSTALL_DIR="install/usr/bin" -DCMAKE_INSTALL_PREFIX="install/usr" -DINC_INSTALL_DIR="install/usr/include" -DLIB_INSTALL_DIR="install/usr/lib" -DPKGCONFIG_INSTALL_DIR="install/usr/lib/pkgconfig"
ninja
- name: Install Dolphin
run: |
cd build
ninja install
- name: Package Dolphin-Binary
run: |
mkdir -p $GITHUB_WORKSPACE/{artifacts,uploads}
cp -P build/install/usr/bin/dolphin-emu $GITHUB_WORKSPACE/artifacts