Skip to content
Snippets Groups Projects
build-docker.sh 3.17 KiB
Newer Older
akiraohgaki's avatar
akiraohgaki committed
#!/bin/bash

akiraohgaki's avatar
akiraohgaki committed
PKGUSER='pkgbuilder'

BUILDTYPE=''
if [ "${1}" ]; then
    BUILDTYPE="${1}"
fi

PROJDIR="$(cd "$(dirname "${0}")/../" && pwd)"

BUILDSCRIPT="${PROJDIR}/scripts/build.sh"

akiraohgaki's avatar
akiraohgaki committed
TRANSFERLOG="${PROJDIR}/transfer.log"

transfer_file() {
    filepath="${1}"
    if [ -f "${filepath}" ]; then
        filename="$(basename "${filepath}")"
akiraohgaki's avatar
akiraohgaki committed
        echo "Uploading ${filename}" >> "${TRANSFERLOG}"
akiraohgaki's avatar
akiraohgaki committed
        curl -fsSL -T "${filepath}" "https://transfer.sh/${filename}" >> "${TRANSFERLOG}"
        echo '' >> "${TRANSFERLOG}"
akiraohgaki's avatar
akiraohgaki committed
build_ubuntu() {
    # docker-image: ubuntu:14.04
akiraohgaki's avatar
akiraohgaki committed

akiraohgaki's avatar
akiraohgaki committed
    apt update -qq
akiraohgaki's avatar
akiraohgaki committed
    apt -y install curl git
akiraohgaki's avatar
akiraohgaki committed
    apt -y install build-essential qt5-default libqt5svg5-dev qtdeclarative5-dev
akiraohgaki's avatar
akiraohgaki committed
    apt -y install devscripts debhelper fakeroot
akiraohgaki's avatar
akiraohgaki committed

    useradd -m ${PKGUSER}
    chown -R ${PKGUSER}:${PKGUSER} "${PROJDIR}"

akiraohgaki's avatar
akiraohgaki committed
    su -c "export HOME=/home/${PKGUSER} && sh "${BUILDSCRIPT}" ${BUILDTYPE}" ${PKGUSER}
akiraohgaki's avatar
akiraohgaki committed
    transfer_file "$(find "${PROJDIR}/build_"*${BUILDTYPE} -type f -name "${PKGNAME}*.deb")"
akiraohgaki's avatar
akiraohgaki committed
}

build_fedora() {
    # docker-image: fedora:20
akiraohgaki's avatar
akiraohgaki committed

    yum -y install curl git
akiraohgaki's avatar
akiraohgaki committed
    yum -y install make automake gcc gcc-c++ libtool qt5-qtbase-devel qt5-qtsvg-devel qt5-qtdeclarative-devel
akiraohgaki's avatar
akiraohgaki committed
    yum -y install rpm-build
akiraohgaki's avatar
akiraohgaki committed

    useradd -m ${PKGUSER}
    chown -R ${PKGUSER}:${PKGUSER} "${PROJDIR}"

akiraohgaki's avatar
akiraohgaki committed
    su -c "export HOME=/home/${PKGUSER} && sh "${BUILDSCRIPT}" ${BUILDTYPE}" ${PKGUSER}
akiraohgaki's avatar
akiraohgaki committed
    transfer_file "$(find "${PROJDIR}/build_"*${BUILDTYPE} -type f -name "${PKGNAME}*.rpm")"
akiraohgaki's avatar
akiraohgaki committed
build_opensuse() {
    # docker-image: opensuse:42.1
akiraohgaki's avatar
akiraohgaki committed

akiraohgaki's avatar
akiraohgaki committed
    zypper --non-interactive refresh
akiraohgaki's avatar
akiraohgaki committed
    zypper --non-interactive install curl git
akiraohgaki's avatar
akiraohgaki committed
    zypper --non-interactive install make automake gcc gcc-c++ libtool libqt5-qtbase-devel libqt5-qtsvg-devel libqt5-qtdeclarative-devel
akiraohgaki's avatar
akiraohgaki committed
    zypper --non-interactive install rpm-build
akiraohgaki's avatar
akiraohgaki committed

    useradd -m ${PKGUSER}
    chown -R ${PKGUSER}:${PKGUSER} "${PROJDIR}"

akiraohgaki's avatar
akiraohgaki committed
    su -c "export HOME=/home/${PKGUSER} && sh "${BUILDSCRIPT}" ${BUILDTYPE}" ${PKGUSER}
akiraohgaki's avatar
akiraohgaki committed

akiraohgaki's avatar
akiraohgaki committed
    transfer_file "$(find "${PROJDIR}/build_"*${BUILDTYPE} -type f -name "${PKGNAME}*.rpm")"
akiraohgaki's avatar
akiraohgaki committed
}

akiraohgaki's avatar
akiraohgaki committed
build_archlinux() {
    # docker-image: base/archlinux:latest
akiraohgaki's avatar
akiraohgaki committed

akiraohgaki's avatar
akiraohgaki committed
    pacman -Syu --noconfirm
akiraohgaki's avatar
akiraohgaki committed
    pacman -S --noconfirm curl git
akiraohgaki's avatar
akiraohgaki committed
    pacman -S --noconfirm base-devel qt5-base qt5-svg qt5-declarative qt5-quickcontrols

    useradd -m ${PKGUSER}
    chown -R ${PKGUSER}:${PKGUSER} "${PROJDIR}"

akiraohgaki's avatar
akiraohgaki committed
    su -c "export HOME=/home/${PKGUSER} && sh "${BUILDSCRIPT}" ${BUILDTYPE}" ${PKGUSER}
akiraohgaki's avatar
akiraohgaki committed
    transfer_file "$(find "${PROJDIR}/build_"*${BUILDTYPE} -type f -name "${PKGNAME}*.pkg.tar.xz")"
akiraohgaki's avatar
akiraohgaki committed
build_appimage() {
    echo 'Not implemented yet'
akiraohgaki's avatar
akiraohgaki committed
build_snap() {
akiraohgaki's avatar
akiraohgaki committed
    echo 'Not implemented yet'
}

akiraohgaki's avatar
akiraohgaki committed
build_flatpak() {
    echo 'Not implemented yet'
akiraohgaki's avatar
akiraohgaki committed
}

if [ "${BUILDTYPE}" = 'ubuntu' ]; then
    build_ubuntu
elif [ "${BUILDTYPE}" = 'fedora' ]; then
    build_fedora
akiraohgaki's avatar
akiraohgaki committed
elif [ "${BUILDTYPE}" = 'opensuse' ]; then
    build_opensuse
akiraohgaki's avatar
akiraohgaki committed
elif [ "${BUILDTYPE}" = 'archlinux' ]; then
    build_archlinux
akiraohgaki's avatar
akiraohgaki committed
elif [ "${BUILDTYPE}" = 'appimage' ]; then
    build_appimage
akiraohgaki's avatar
akiraohgaki committed
elif [ "${BUILDTYPE}" = 'snap' ]; then
    build_snap
akiraohgaki's avatar
akiraohgaki committed
elif [ "${BUILDTYPE}" = 'flatpak' ]; then
    build_flatpak
akiraohgaki's avatar
akiraohgaki committed
else
akiraohgaki's avatar
akiraohgaki committed
    echo "sh $(basename "${0}") [ubuntu|fedora|archlinux|appimage|snap|flatpak]"
akiraohgaki's avatar
akiraohgaki committed
    exit 1
fi