1
0
mirror of https://gitlab.xiph.org/xiph/icecast-server.git synced 2025-02-02 15:07:36 -05:00

Update: Integrate libigloo into the Icecast CI build

This commit is contained in:
Stephan Jauernick 2022-03-21 21:56:13 +00:00 committed by Philipp Schafft
parent ada8ddacbe
commit e1521749d3

View File

@ -1,20 +1,19 @@
# Build Icecast - test # Build Icecast - test
make_dist:
variables: default:
GIT_SUBMODULE_STRATEGY: recursive image: alpine:3.15
tags: tags:
- docker - docker
- linux
image: alpine:3.12 .TemplateAlpine:
stage: build
before_script: before_script:
- set -xe
- apk update - apk update
- cat /etc/os* - cat /etc/os*
- apk add musl-dev git make gcc automake autoconf libtool - apk add musl-dev git make gcc automake autoconf libtool curl ca-certificates
- apk add curl-dev libogg-dev libvorbis-dev libxslt-dev libxml2-dev - apk add curl-dev libogg-dev libvorbis-dev libxslt-dev libxml2-dev libc6-compat
# gzip required because busybox gzip does not understand best / zip for make dist # gzip required because busybox gzip does not understand best / zip for make dist
- apk add gzip zip tar - apk add gzip zip tar
# Required for tests # Required for tests
@ -22,25 +21,65 @@ make_dist:
# Create user to run tests # Create user to run tests
#- adduser -s /bin/sh -D -H icecast #- adduser -s /bin/sh -D -H icecast
make_dist:
extends: .TemplateAlpine
variables:
GIT_SUBMODULE_STRATEGY: recursive
LIBIGLOO_PACKAGE_PREFIX: "alpine-libigloo-bins"
LIBIGLOO_PACKAGE_VERSION: "0.91"
LIBIGLOO_PROJECT_ID: 143
stage: build
script: script:
- set -xe # yes i know the scripts will be merged... but for sanities sake
- ./autogen.sh - ./autogen.sh
- mkdir EXTRA-LIBS
- export PKG_CONFIG_PATH=`pwd`/EXTRA-LIBS/usr/local/lib/pkgconfig
# we build these in script as gitlab does not support nested expansion in above variables(or it is not well documented)
- if echo "$CI_COMMIT_REF_NAME" | grep -- '-with-libigloo$'; then export LIBIGLOO_PACKAGE_SUFFIX=`echo "$CI_COMMIT_REF_NAME" | sed 's/-with-libigloo$//'`; elif echo "$CI_COMMIT_REF_NAME" | grep '^devel'; then export LIBIGLOO_PACKAGE_SUFFIX='devel'; else export LIBIGLOO_PACKAGE_SUFFIX='master'; fi
- export LIBIGLOO_PACKAGE_BASE=$LIBIGLOO_PACKAGE_PREFIX-$LIBIGLOO_PACKAGE_SUFFIX
- export LIBIGLOO_PACKAGE_ARCHIVE=$LIBIGLOO_PACKAGE_BASE.tar.gz
- export LIBIGLOO_PACKAGE_VERSION_WITH_SUFFIX=$LIBIGLOO_PACKAGE_VERSION-$LIBIGLOO_PACKAGE_SUFFIX
- 'curl -LO --header "JOB-TOKEN: $CI_JOB_TOKEN" "${CI_API_V4_URL}/projects/$LIBIGLOO_PROJECT_ID/packages/generic/$LIBIGLOO_PACKAGE_PREFIX/$LIBIGLOO_PACKAGE_VERSION_WITH_SUFFIX/$LIBIGLOO_PACKAGE_ARCHIVE"'
- tar -C ./EXTRA-LIBS -xvzf $LIBIGLOO_PACKAGE_ARCHIVE
- sed -i "s#/usr/local#`pwd`/EXTRA-LIBS/\0#g" `pwd`/EXTRA-LIBS/usr/local/lib/pkgconfig/*.pc
- grep . `pwd`/EXTRA-LIBS/usr/local/lib/pkgconfig/*.pc
- ls -la `pwd`/EXTRA-LIBS/usr/local/lib
- ./configure || cat config.log - ./configure || cat config.log
- make
- make dist - make dist
- ls -la
# Tests # Tests
#- su -c "./tests/admin-tests.sh" icecast #- su -c "./tests/admin-tests.sh" icecast
artifacts: artifacts:
paths: untracked: true
- icecast-*.tar.gz
- icecast-*.zip
expire_in: 1 week expire_in: 1 week
upload_dist: upload_package:
tags: extends: .TemplateAlpine
- docker stage: deploy
- linux variables:
ICECAST_SERVER_VERSION: "2.4.99.3"
ICECAST_SERVER_PREFIX: "alpine-icecast-server-bins"
script:
- make install DESTDIR=`pwd`/_install_base/
- cd _install_base/
# see above
- export ICECAST_SERVER_BASE=$ICECAST_SERVER_PREFIX-$CI_COMMIT_REF_NAME
- export ICECAST_SERVER_ARCHIVE=$ICECAST_SERVER_BASE.tar.gz
- export ICECAST_SERVER_VERSION_WITH_SUFFIX=$ICECAST_SERVER_VERSION-$CI_COMMIT_REF_NAME
- tar -cvzf ../$ICECAST_SERVER_ARCHIVE *
- cd ..
- 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file $ICECAST_SERVER_ARCHIVE "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/$ICECAST_SERVER_PREFIX/$ICECAST_SERVER_VERSION_WITH_SUFFIX/$ICECAST_SERVER_ARCHIVE"'
needs:
- "make_dist"
upload_dist:
only: only:
- master - master
- devel - devel
@ -57,10 +96,6 @@ upload_dist:
- ./ci/osc/handle-osc-upload.sh - ./ci/osc/handle-osc-upload.sh
upload_dist_release: upload_dist_release:
tags:
- docker
- linux
only: only:
- tags - tags