From 879e295de04bc0699462c959a1d331dcf5446345 Mon Sep 17 00:00:00 2001 From: "Rafael G. Martins" Date: Tue, 27 Dec 2016 03:57:49 +0100 Subject: github-lambda: drop external dependencies --- build-aux/travis-build-github-lambda.sh | 42 ------------------------------ build-aux/travis-build.sh | 29 ++++++++++++++++----- src/blogc-github-lambda/lambda_function.py | 18 +++---------- 3 files changed, 26 insertions(+), 63 deletions(-) delete mode 100755 build-aux/travis-build-github-lambda.sh diff --git a/build-aux/travis-build-github-lambda.sh b/build-aux/travis-build-github-lambda.sh deleted file mode 100755 index 6a46c05..0000000 --- a/build-aux/travis-build-github-lambda.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash - -set -ex - -PV_DEPS=2 - -PN_DEPS="blogc-lambda-deps" -P_DEPS="${PN_DEPS}-${PV_DEPS}" -A_DEPS="${P_DEPS}.tar.xz" -SRC_DEPS="https://travis-distfiles.rgm.io/${PN_DEPS}/${P_DEPS}/${P_DEPS}.tar.xz" - -rm -rf root build -mkdir -p root build - -wget -c "${SRC_DEPS}" "${SRC_DEPS}.sha512" -sha512sum -c "${A_DEPS}.sha512" -tar -xvf "${A_DEPS}" -C root/ - -pushd build > /dev/null -../configure \ - CFLAGS="-Wall -g -O0" \ - --disable-ronn \ - --disable-silent-rules \ - --disable-tests \ - --disable-valgrind \ - --disable-git-receiver \ - --disable-runserver \ - --enable-make-embedded -popd > /dev/null - -make -C build LDFLAGS="-all-static" blogc - -PV="$(grep PACKAGE_VERSION build/config.h | cut -d\" -f2)" - -install -m 755 build/blogc root/bin/blogc -install -m 644 src/blogc-github-lambda/lambda_function.py root/lambda_function.py -install -m 644 LICENSE root/licenses/blogc -strip root/bin/blogc - -pushd root/ > /dev/null -zip --symlinks -rq "../blogc-github-lambda-${PV}.zip" * -popd > /dev/null diff --git a/build-aux/travis-build.sh b/build-aux/travis-build.sh index 8725a0b..223d145 100755 --- a/build-aux/travis-build.sh +++ b/build-aux/travis-build.sh @@ -2,16 +2,15 @@ set -ex -if [[ "x${TARGET}" = "xblogc-github-lambda" ]]; then - build-aux/travis-build-github-lambda.sh - exit $? -fi - MAKE_CONFIGURE="--enable-make" if [[ "x${TARGET}" = "xblogc-make-embedded" ]]; then MAKE_CONFIGURE="--enable-make-embedded" TARGET="check" fi +if [[ "x${TARGET}" = "xblogc-github-lambda" ]]; then + MAKE_CONFIGURE="--enable-make-embedded" +fi + rm -rf build mkdir -p build @@ -28,4 +27,22 @@ pushd build > /dev/null ${MAKE_CONFIGURE} popd > /dev/null -make -C build "${TARGET}" +if [[ "x${TARGET}" = "xblogc-github-lambda" ]]; then + make -C build LDFLAGS="-all-static" blogc + + rm -rf root + mkdir -p root + + PV="$(grep PACKAGE_VERSION build/config.h | cut -d\" -f2)" + + install -m 755 build/blogc root/blogc + install -m 644 src/blogc-github-lambda/lambda_function.py root/lambda_function.py + install -m 644 LICENSE root/LICENSE + strip root/blogc + + pushd root/ > /dev/null + zip --symlinks -rq "../blogc-github-lambda-${PV}.zip" * + popd > /dev/null +else + make -C build "${TARGET}" +fi diff --git a/src/blogc-github-lambda/lambda_function.py b/src/blogc-github-lambda/lambda_function.py index 3f7d13d..44f1bc9 100644 --- a/src/blogc-github-lambda/lambda_function.py +++ b/src/blogc-github-lambda/lambda_function.py @@ -22,9 +22,7 @@ import urllib2 import shutil cwd = os.path.dirname(os.path.abspath(__file__)) -bindir = os.path.join(cwd, 'bin') - -os.environ['PATH'] = '%s:%s' % (bindir, os.environ.get('PATH', '')) +os.environ['PATH'] = '%s:%s' % (cwd, os.environ.get('PATH', '')) s3 = boto3.resource('s3') @@ -33,16 +31,6 @@ if GITHUB_AUTH is not None and ':' not in GITHUB_AUTH: GITHUB_AUTH = boto3.client('kms').decrypt( CiphertextBlob=base64.b64decode(GITHUB_AUTH))['Plaintext'] -# this is just a safeguard, just in case lambda stops supporting symlinks -# in zip files -for binary in subprocess.check_output([os.path.join(bindir, 'busybox'), - '--list']).split(): - dst = os.path.join(bindir, binary) - if not os.path.islink(dst): - os.symlink('busybox', dst) - else: - break # if one symlink exists, all the others will likely exist - def get_tarball(repo_name): tarball_url = 'https://api.github.com/repos/%s/tarball/master' % repo_name @@ -157,8 +145,8 @@ def lambda_handler(event, context): stream = None if debug else subprocess.PIPE rootdir = get_tarball(payload['repository']['full_name']) - rv = subprocess.call([os.path.join(bindir, 'make'), '-C', rootdir, - 'BLOGC=%s' % os.path.join(bindir, 'blogc'), + rv = subprocess.call(['make', '-C', rootdir, + 'BLOGC=%s' % os.path.join(cwd, 'blogc'), 'OUTPUT_DIR=_build'], stdout=stream, stderr=stream) if rv != 0: -- cgit v1.2.3-18-g5258