Skip to content
Snippets Groups Projects
Select Git revision
  • 1ddcc816883dea9a74bfdf2fd4d665bd465aa6f8
  • master default protected
2 results

make.sh

Blame
  • make.sh 2.68 KiB
    #!/bin/bash
    
    # Prikaz pro stazeni baliku
    # wget -O build.zip "https://gitlab.cesnet.cz/api/v4/projects/586/jobs/artifacts/master/download?job=build:bullseye"
    
    set -x
    
    # Nastaveni promennych, pokud je SINVERSION zakomentovana, pokusime se odhadnout nejnovejsi
    export DEBIAN_FRONTEND=noninteractive
    export GOVERSION=1.17.5 OS=linux ARCH=amd64
    #export SINVERSION=3.9.2
    
    # Nacteni promennych o bezicim systemu vcetne verzi
    . /etc/os-release
    
    # Od Debian 11 Bullseye ma debian-security trochu jinou cestu, abychom mohli pouzit heredoc, rozskocime si pres funkci
    function get_debian_security() {
        if [ "${VERSION_ID}" -lt "11" ]; then echo "${VERSION_CODENAME}/updates"; else echo "${VERSION_CODENAME}-security"; fi
    }
    
    # Vygenerovani sources.list podle verze Debianu
    cat > /etc/apt/sources.list << EOSOURCES
    deb http://ftp.zcu.cz/pub/linux/debian ${VERSION_CODENAME} main contrib non-free
    deb http://ftp.zcu.cz/pub/linux/debian ${VERSION_CODENAME}-updates main contrib non-free
    deb http://ftp.zcu.cz/pub/linux/debian-security $(get_debian_security) main contrib non-free
    
    deb-src http://ftp.zcu.cz/pub/linux/debian ${VERSION_CODENAME} main contrib non-free
    deb-src http://ftp.zcu.cz/pub/linux/debian ${VERSION_CODENAME}-updates main contrib non-free
    deb-src http://ftp.zcu.cz/pub/linux/debian-security $(get_debian_security) main contrib non-free
    EOSOURCES
    
    # Instalace buildovacich veci a zavislosti
    apt update -qqq
    apt install -yqqq build-essential dpkg-dev debhelper build-essential libssl-dev uuid-dev libseccomp-dev pkg-config squashfs-tools cryptsetup wget curl git devscripts dh-golang
    
    # Automaticka detekce posledni releasnute verze
    SINVERSION=${SINVERSION:-$(curl -s https://github.com/sylabs/singularity/releases/latest | grep -Po "\/v\K[^\"]+")}
    
    # Priprava adresare pro hotove balicky a zapamatovani cesty
    mkdir build
    export BUILD=${PWD}/build
    
    # Stazeni a instalace GO
    wget -q -O /tmp/go${GOVERSION}.${OS}-${ARCH}.tar.gz https://dl.google.com/go/go${GOVERSION}.${OS}-${ARCH}.tar.gz && tar -C /usr/local -xzf /tmp/go${GOVERSION}.${OS}-${ARCH}.tar.gz
    rm /tmp/go${GOVERSION}.${OS}-${ARCH}.tar.gz
    
    # Nastaveni promennych GO
    echo 'export GOPATH=${HOME}/go' >> ~/.bashrc
    echo 'export PATH=/usr/local/go/bin:${PATH}:${GOPATH}/bin' >> ~/.bashrc
    source ~/.bashrc
    
    # Stazeni a rozbaleni zdrojovych kodu
    mkdir -p ${GOPATH}/src/github.com/sylabs && cd ${GOPATH}/src/github.com/sylabs && wget -q -O singularity.tar.gz https://github.com/sylabs/singularity/releases/download/v${SINVERSION}/singularity-ce-${SINVERSION}.tar.gz && tar xvf singularity.tar.gz && cd singularity-ce-${SINVERSION}
    
    # Build balicku
    dpkg-buildpackage -uc -us -b
    
    cd ..
    
    # Presunuti balicku do spravneho adresare, aby ho gitlab vystavil jako artifact
    mv *.deb ${BUILD}/