49 lines
1.7 KiB
Bash
49 lines
1.7 KiB
Bash
#!/bin/bash -ex
|
|
|
|
# Converts "yuzu-emu/yuzu-release" to "yuzu-release"
|
|
REPO_NAME=$(echo $AZURE_REPO_SLUG | cut -d'/' -f 2)
|
|
YUZU_SRC_DIR="/yuzu"
|
|
BUILD_DIR="$YUZU_SRC_DIR/build"
|
|
REPO_DIR="$YUZU_SRC_DIR/repo"
|
|
STATE_DIR="$YUZU_SRC_DIR/.flatpak-builder"
|
|
SSH_DIR="/upload"
|
|
SSH_KEY="/tmp/ssh.key"
|
|
GPG_KEY="/tmp/gpg.key"
|
|
|
|
# Generate flatpak Manifest and AppData files (/tmp/appdata.xml and /tmp/org.yuzu.$REPO_NAME.json)
|
|
/bin/bash -ex $YUZU_SRC_DIR/.ci/scripts/linux-flatpak/generate-data.sh $1
|
|
|
|
# Configure SSH keys
|
|
eval "$(ssh-agent -s)"
|
|
chmod 700 "$HOME/.ssh"
|
|
ssh-add "$SSH_KEY"
|
|
echo "[$FLATPAK_SSH_HOSTNAME]:$FLATPAK_SSH_PORT,[$(dig +short $FLATPAK_SSH_HOSTNAME)]:$FLATPAK_SSH_PORT $FLATPAK_SSH_PUBLIC_KEY" > $HOME/.ssh/known_hosts
|
|
|
|
# Configure GPG keys
|
|
gpg2 --import "$GPG_KEY"
|
|
|
|
# Set permissions
|
|
chown -R yuzu "$YUZU_SRC_DIR"
|
|
chmod -R 700 "$YUZU_SRC_DIR"
|
|
|
|
# Mount our flatpak repository
|
|
# -o reconnect and -o ServerAliveInterval ensure that
|
|
# the share stays active during long flatpak builds
|
|
mkdir -p "$REPO_DIR"
|
|
#sshfs "$FLATPAK_SSH_USER@$FLATPAK_SSH_HOSTNAME:$SSH_DIR" "$REPO_DIR" -C -p "$FLATPAK_SSH_PORT" -o IdentityFile="$SSH_KEY" -o ServerAliveInterval=60 -o "reconnect" -o auto_cache -o no_readahead
|
|
|
|
# setup ccache location
|
|
chown -R yuzu "$HOME/ccache"
|
|
chmod -R 700 "$HOME/ccache"
|
|
mkdir -p "$STATE_DIR"
|
|
chown -R yuzu "$STATE_DIR"
|
|
chmod -R 700 "$STATE_DIR"
|
|
ln -sv --force $HOME/ccache "$STATE_DIR/ccache"
|
|
|
|
# Set ccache permissions
|
|
chmod -R 700 "$STATE_DIR/ccache"
|
|
|
|
# Build the yuzu flatpak
|
|
flatpak-builder -v --jobs=4 --ccache --force-clean --state-dir="$STATE_DIR" --gpg-sign="$FLATPAK_GPG_PUBLIC_KEY" --repo="$REPO_DIR" "$BUILD_DIR" "/tmp/org.yuzu.$REPO_NAME.json"
|
|
flatpak build-update-repo "$REPO_DIR" -v --generate-static-deltas --gpg-sign="$FLATPAK_GPG_PUBLIC_KEY"
|