40 lines
1.4 KiB
Bash
40 lines
1.4 KiB
Bash
|
#!/bin/bash -ex
|
||
|
|
||
|
# Converts "citra-emu/citra-nightly" to "citra-nightly"
|
||
|
REPO_NAME=$(echo $TRAVIS_REPO_SLUG | cut -d'/' -f 2)
|
||
|
CITRA_SRC_DIR="/citra"
|
||
|
BUILD_DIR="$CITRA_SRC_DIR/build"
|
||
|
REPO_DIR="$CITRA_SRC_DIR/repo"
|
||
|
STATE_DIR="$CITRA_SRC_DIR/.flatpak-builder"
|
||
|
KEYS_ARCHIVE="/tmp/keys.tar"
|
||
|
SSH_DIR="/upload"
|
||
|
SSH_KEY="/tmp/ssh.key"
|
||
|
GPG_KEY="/tmp/gpg.key"
|
||
|
|
||
|
# Extract keys
|
||
|
openssl aes-256-cbc -K $FLATPAK_ENC_K -iv $FLATPAK_ENC_IV -in "$CITRA_SRC_DIR/keys.tar.enc" -out "$KEYS_ARCHIVE" -d
|
||
|
tar -C /tmp -xvf $KEYS_ARCHIVE
|
||
|
|
||
|
# Configure SSH keys
|
||
|
eval "$(ssh-agent -s)"
|
||
|
chmod -R 600 "$HOME/.ssh"
|
||
|
chown -R root "$HOME/.ssh"
|
||
|
chmod 600 "$SSH_KEY"
|
||
|
ssh-add "$SSH_KEY"
|
||
|
echo "[$FLATPAK_SSH_HOSTNAME]:$FLATPAK_SSH_PORT,[$(dig +short $FLATPAK_SSH_HOSTNAME)]:$FLATPAK_SSH_PORT $FLATPAK_SSH_PUBLIC_KEY" > ~/.ssh/known_hosts
|
||
|
|
||
|
# Configure GPG keys
|
||
|
gpg2 --import "$GPG_KEY"
|
||
|
|
||
|
# Mount our flatpak repository
|
||
|
mkdir -p "$REPO_DIR"
|
||
|
sshfs "$FLATPAK_SSH_USER@$FLATPAK_SSH_HOSTNAME:$SSH_DIR" "$REPO_DIR" -C -p "$FLATPAK_SSH_PORT" -o IdentityFile="$SSH_KEY"
|
||
|
|
||
|
# setup ccache location
|
||
|
mkdir -p "$STATE_DIR"
|
||
|
ln -sv /root/.ccache "$STATE_DIR/ccache"
|
||
|
|
||
|
# Build the citra 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.citra.$REPO_NAME.json"
|
||
|
flatpak build-update-repo "$REPO_DIR" -v --generate-static-deltas --gpg-sign="$FLATPAK_GPG_PUBLIC_KEY"
|