Skip to content

Commit

Permalink
chore(ci) adjust Kong to build multi architecture assets via kong-bui…
Browse files Browse the repository at this point in the history
…ld-tools (Kong#4868)

Bump the kong-build-tools version which includes some breaking changes.

* CI specific steps that might use sudo and assume Linux have been moved out to their own task
* The release artifacts are architecture specific
* The new kong-build-tools is able to build arm64 but that is currently disabled by default
  • Loading branch information
hutchic authored and hishamhm committed Aug 15, 2019
1 parent 289e287 commit 7699c4f
Show file tree
Hide file tree
Showing 3 changed files with 116 additions and 52 deletions.
1 change: 0 additions & 1 deletion .requirements
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,3 @@ RESTY_VERSION=1.15.8.1
RESTY_LUAROCKS_VERSION=3.1.3
RESTY_OPENSSL_VERSION=1.1.1c
RESTY_PCRE_VERSION=8.41
KONG_BUILD_TOOLS=1.0.1
144 changes: 104 additions & 40 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ env:
- KONG_TEST_PG_DATABASE=travis
- KONG_TEST_PG_USER=postgres
- JOBS=2
- DOCKER_MACHINE_ARM64_NAME=travis-ci-kong-${TRAVIS_JOB_ID}
matrix:
- KONG_TEST_DATABASE=postgres TEST_SUITE=integration
- KONG_TEST_DATABASE=cassandra CASSANDRA=2.2 TEST_SUITE=integration
Expand All @@ -60,7 +61,6 @@ cache:
stages:
- lint and unit
- test
- functional tests
- Deploy daily build
- Release

Expand All @@ -72,83 +72,147 @@ jobs:
- bin/busted -v -o gtest spec/01-unit
env:
- KONG_DATABASE=none
- stage: functional tests
script: make functional_tests
if: type=cron
- stage: release
install: skip
before_install: skip
script: make release
script:
- make setup-kong-build-tools
- pushd kong-build-tools && make setup-ci && popd
- make release
env: PACKAGE_TYPE=src RESTY_IMAGE_BASE=src KONG_PACKAGE_NAME=${PWD##*/} KONG_VERSION=${TRAVIS_TAG}
if: tag IS present AND tag ~= 1.
- script: make release
- script:
- make setup-kong-build-tools
- pushd kong-build-tools && make setup-ci && popd
- make release
env: PACKAGE_TYPE=deb RESTY_IMAGE_BASE=ubuntu RESTY_IMAGE_TAG=trusty KONG_PACKAGE_NAME=${PWD##*/} KONG_VERSION=${TRAVIS_TAG}
if: tag IS present AND tag ~= 1.
- script: make release
- script:
- make setup-kong-build-tools
- pushd kong-build-tools && make setup-ci && popd
- make release
env: PACKAGE_TYPE=deb RESTY_IMAGE_BASE=ubuntu RESTY_IMAGE_TAG=xenial KONG_PACKAGE_NAME=${PWD##*/} KONG_VERSION=${TRAVIS_TAG}
if: tag IS present AND tag ~= 1.
- script: make release
- script:
- make setup-kong-build-tools
- pushd kong-build-tools && make setup-ci && popd
- make release
env: PACKAGE_TYPE=deb RESTY_IMAGE_BASE=ubuntu RESTY_IMAGE_TAG=bionic KONG_PACKAGE_NAME=${PWD##*/} KONG_VERSION=${TRAVIS_TAG}
if: tag IS present AND tag ~= 1.
- script: make release
- script:
- make setup-kong-build-tools
- pushd kong-build-tools && make setup-ci && popd
- make release
env: PACKAGE_TYPE=deb RESTY_IMAGE_BASE=debian RESTY_IMAGE_TAG=stretch KONG_PACKAGE_NAME=${PWD##*/} KONG_VERSION=${TRAVIS_TAG}
if: tag IS present AND tag ~= 1.
- script: make release
- script:
- make setup-kong-build-tools
- pushd kong-build-tools && make setup-ci && popd
- make release
env: PACKAGE_TYPE=deb RESTY_IMAGE_BASE=debian RESTY_IMAGE_TAG=jessie KONG_PACKAGE_NAME=${PWD##*/} KONG_VERSION=${TRAVIS_TAG}
if: tag IS present AND tag ~= 1.
- script: make release
- script:
- make setup-kong-build-tools
- pushd kong-build-tools && make setup-ci && popd
- make release
env: PACKAGE_TYPE=rpm RESTY_IMAGE_BASE=centos RESTY_IMAGE_TAG=6 KONG_PACKAGE_NAME=${PWD##*/} KONG_VERSION=${TRAVIS_TAG}
if: tag IS present AND tag ~= 1.
- script: make release
- script:
- make setup-kong-build-tools
- pushd kong-build-tools && make setup-ci && popd
- make release
env: PACKAGE_TYPE=rpm RESTY_IMAGE_BASE=centos RESTY_IMAGE_TAG=7 KONG_PACKAGE_NAME=${PWD##*/} KONG_VERSION=${TRAVIS_TAG}
if: tag IS present AND tag ~= 1.
- script: make release
env: PACKAGE_TYPE=apk RESTY_IMAGE_BASE=alpine RESTY_IMAGE_TAG=latest KONG_PACKAGE_NAME=${PWD##*/} KONG_VERSION=${TRAVIS_TAG}
- script:
- make setup-kong-build-tools
- pushd kong-build-tools && make setup-ci && popd
- make release
env: PACKAGE_TYPE=apk RESTY_IMAGE_BASE=alpine RESTY_IMAGE_TAG=1 KONG_PACKAGE_NAME=${PWD##*/} KONG_VERSION=${TRAVIS_TAG}
if: tag IS present AND tag ~= 1.
- script: make release
- script:
- make setup-kong-build-tools
- pushd kong-build-tools && make setup-ci && popd
- make release
env: PACKAGE_TYPE=rpm RESTY_IMAGE_BASE=rhel RESTY_IMAGE_TAG=6 KONG_PACKAGE_NAME=${PWD##*/} KONG_VERSION=${TRAVIS_TAG}
if: tag IS present AND tag ~= 1.
- script: make release
- script:
- make setup-kong-build-tools
- pushd kong-build-tools && make setup-ci && popd
- make release
env: PACKAGE_TYPE=rpm RESTY_IMAGE_BASE=rhel RESTY_IMAGE_TAG=7 KONG_PACKAGE_NAME=${PWD##*/} KONG_VERSION=${TRAVIS_TAG}
if: tag IS present AND tag ~= 1.
- script: make release
- script:
- make setup-kong-build-tools
- pushd kong-build-tools && make setup-ci && popd
- make release
env: PACKAGE_TYPE=rpm RESTY_IMAGE_BASE=amazonlinux RESTY_IMAGE_TAG=1 KONG_PACKAGE_NAME=${PWD##*/} KONG_VERSION=${TRAVIS_TAG}
if: tag IS present AND tag ~= 1.
- stage: deploy daily build
install: skip
before_install: skip
script: make nightly-release
env: PACKAGE_TYPE=deb RESTY_IMAGE_BASE=ubuntu RESTY_IMAGE_TAG=trusty KONG_PACKAGE_NAME=${PWD##*/}-$TRAVIS_BRANCH KONG_VERSION=`date +%Y-%m-%d` REPOSITORY_NAME=${PWD##*/}-nightly REPOSITORY_OS_NAME=$TRAVIS_BRANCH
script:
- make setup-kong-build-tools
- pushd kong-build-tools && make setup-ci && popd
- make nightly-release
env: PACKAGE_TYPE=deb RESTY_IMAGE_BASE=ubuntu RESTY_IMAGE_TAG=trusty KONG_PACKAGE_NAME=${PWD##*/} KONG_VERSION=`date +%Y-%m-%d` REPOSITORY_NAME=${PWD##*/}-nightly REPOSITORY_OS_NAME=$TRAVIS_BRANCH
if: type=cron
- script: make nightly-release
env: PACKAGE_TYPE=deb RESTY_IMAGE_BASE=ubuntu RESTY_IMAGE_TAG=xenial KONG_PACKAGE_NAME=${PWD##*/}-$TRAVIS_BRANCH KONG_VERSION=`date +%Y-%m-%d` REPOSITORY_NAME=${PWD##*/}-nightly REPOSITORY_OS_NAME=$TRAVIS_BRANCH
- script:
- make setup-kong-build-tools
- pushd kong-build-tools && make setup-ci && popd
- make nightly-release
env: PACKAGE_TYPE=deb RESTY_IMAGE_BASE=ubuntu RESTY_IMAGE_TAG=xenial KONG_PACKAGE_NAME=${PWD##*/} KONG_VERSION=`date +%Y-%m-%d` REPOSITORY_NAME=${PWD##*/}-nightly REPOSITORY_OS_NAME=$TRAVIS_BRANCH
if: type=cron
- script: make nightly-release
env: PACKAGE_TYPE=deb RESTY_IMAGE_BASE=ubuntu RESTY_IMAGE_TAG=bionic KONG_PACKAGE_NAME=${PWD##*/}-$TRAVIS_BRANCH KONG_VERSION=`date +%Y-%m-%d` REPOSITORY_NAME=${PWD##*/}-nightly REPOSITORY_OS_NAME=$TRAVIS_BRANCH
- script:
- make setup-kong-build-tools
- pushd kong-build-tools && make setup-ci && popd
- make nightly-release
env: PACKAGE_TYPE=deb RESTY_IMAGE_BASE=ubuntu RESTY_IMAGE_TAG=bionic KONG_PACKAGE_NAME=${PWD##*/} KONG_VERSION=`date +%Y-%m-%d` REPOSITORY_NAME=${PWD##*/}-nightly REPOSITORY_OS_NAME=$TRAVIS_BRANCH
if: type=cron
- script: make nightly-release
env: PACKAGE_TYPE=deb RESTY_IMAGE_BASE=debian RESTY_IMAGE_TAG=stretch KONG_PACKAGE_NAME=${PWD##*/}-$TRAVIS_BRANCH KONG_VERSION=`date +%Y-%m-%d` REPOSITORY_NAME=${PWD##*/}-nightly REPOSITORY_OS_NAME=$TRAVIS_BRANCH
- script:
- make setup-kong-build-tools
- pushd kong-build-tools && make setup-ci && popd
- make nightly-release
env: PACKAGE_TYPE=deb RESTY_IMAGE_BASE=debian RESTY_IMAGE_TAG=stretch KONG_PACKAGE_NAME=${PWD##*/} KONG_VERSION=`date +%Y-%m-%d` REPOSITORY_NAME=${PWD##*/}-nightly REPOSITORY_OS_NAME=$TRAVIS_BRANCH
if: type=cron
- script: make nightly-release
env: PACKAGE_TYPE=deb RESTY_IMAGE_BASE=debian RESTY_IMAGE_TAG=jessie KONG_PACKAGE_NAME=${PWD##*/}-$TRAVIS_BRANCH KONG_VERSION=`date +%Y-%m-%d` REPOSITORY_NAME=${PWD##*/}-nightly REPOSITORY_OS_NAME=$TRAVIS_BRANCH
- script:
- make setup-kong-build-tools
- pushd kong-build-tools && make setup-ci && popd
- make nightly-release
env: PACKAGE_TYPE=deb RESTY_IMAGE_BASE=debian RESTY_IMAGE_TAG=jessie KONG_PACKAGE_NAME=${PWD##*/} KONG_VERSION=`date +%Y-%m-%d` REPOSITORY_NAME=${PWD##*/}-nightly REPOSITORY_OS_NAME=$TRAVIS_BRANCH
if: type=cron
- script: make nightly-release
env: PACKAGE_TYPE=rpm RESTY_IMAGE_BASE=centos RESTY_IMAGE_TAG=6 KONG_PACKAGE_NAME=${PWD##*/}-$TRAVIS_BRANCH KONG_VERSION=`date +%Y-%m-%d` REPOSITORY_NAME=${PWD##*/}-nightly REPOSITORY_OS_NAME=$TRAVIS_BRANCH
- script:
- make setup-kong-build-tools
- pushd kong-build-tools && make setup-ci && popd
- make nightly-release
env: PACKAGE_TYPE=rpm RESTY_IMAGE_BASE=centos RESTY_IMAGE_TAG=6 KONG_PACKAGE_NAME=${PWD##*/} KONG_VERSION=`date +%Y-%m-%d` REPOSITORY_NAME=${PWD##*/}-nightly REPOSITORY_OS_NAME=$TRAVIS_BRANCH
if: type=cron
- script: make nightly-release
- script:
- make setup-kong-build-tools
- pushd kong-build-tools && make setup-ci && popd
- make nightly-release
env: PACKAGE_TYPE=rpm RESTY_IMAGE_BASE=centos RESTY_IMAGE_TAG=7 KONG_PACKAGE_NAME=${PWD##*/} KONG_VERSION=`date +%Y-%m-%d` REPOSITORY_NAME=${PWD##*/}-nightly REPOSITORY_OS_NAME=$TRAVIS_BRANCH
if: type=cron
- script: make nightly-release
env: PACKAGE_TYPE=apk RESTY_IMAGE_BASE=alpine RESTY_IMAGE_TAG=latest KONG_PACKAGE_NAME=${PWD##*/}-$TRAVIS_BRANCH KONG_VERSION=`date +%Y-%m-%d` REPOSITORY_NAME=${PWD##*/}-nightly REPOSITORY_OS_NAME=$TRAVIS_BRANCH
- script:
- make setup-kong-build-tools
- pushd kong-build-tools && make setup-ci && popd
- make nightly-release
env: PACKAGE_TYPE=apk RESTY_IMAGE_BASE=alpine RESTY_IMAGE_TAG=latest KONG_PACKAGE_NAME=${PWD##*/} KONG_VERSION=`date +%Y-%m-%d` REPOSITORY_NAME=${PWD##*/}-nightly REPOSITORY_OS_NAME=$TRAVIS_BRANCH
if: type=cron
- script: make nightly-release
env: PACKAGE_TYPE=rpm RESTY_IMAGE_BASE=rhel RESTY_IMAGE_TAG=6 KONG_PACKAGE_NAME=${PWD##*/}-$TRAVIS_BRANCH KONG_VERSION=`date +%Y-%m-%d` REPOSITORY_NAME=${PWD##*/}-nightly REPOSITORY_OS_NAME=$TRAVIS_BRANCH
- script:
- make setup-kong-build-tools
- pushd kong-build-tools && make setup-ci && popd
- make nightly-release
env: PACKAGE_TYPE=rpm RESTY_IMAGE_BASE=rhel RESTY_IMAGE_TAG=6 KONG_PACKAGE_NAME=${PWD##*/} KONG_VERSION=`date +%Y-%m-%d` REPOSITORY_NAME=${PWD##*/}-nightly REPOSITORY_OS_NAME=$TRAVIS_BRANCH
if: type=cron
- script: make nightly-release
env: PACKAGE_TYPE=rpm RESTY_IMAGE_BASE=rhel RESTY_IMAGE_TAG=7 KONG_PACKAGE_NAME=${PWD##*/}-$TRAVIS_BRANCH KONG_VERSION=`date +%Y-%m-%d` REPOSITORY_NAME=${PWD##*/}-nightly REPOSITORY_OS_NAME=$TRAVIS_BRANCH
- script:
- make setup-kong-build-tools
- pushd kong-build-tools && make setup-ci && popd
- make nightly-release
env: PACKAGE_TYPE=rpm RESTY_IMAGE_BASE=rhel RESTY_IMAGE_TAG=7 KONG_PACKAGE_NAME=${PWD##*/} KONG_VERSION=`date +%Y-%m-%d` REPOSITORY_NAME=${PWD##*/}-nightly REPOSITORY_OS_NAME=$TRAVIS_BRANCH
if: type=cron
- script: make nightly-release
env: PACKAGE_TYPE=rpm RESTY_IMAGE_BASE=amazonlinux RESTY_IMAGE_TAG=latest KONG_PACKAGE_NAME=${PWD##*/}-$TRAVIS_BRANCH KONG_VERSION=`date +%Y-%m-%d` REPOSITORY_NAME=${PWD##*/}-nightly REPOSITORY_OS_NAME=$TRAVIS_BRANCH
- script:
- make setup-kong-build-tools
- pushd kong-build-tools && make setup-ci && popd
- make nightly-release
env: PACKAGE_TYPE=rpm RESTY_IMAGE_BASE=amazonlinux RESTY_IMAGE_TAG=latest KONG_PACKAGE_NAME=${PWD##*/} KONG_VERSION=`date +%Y-%m-%d` REPOSITORY_NAME=${PWD##*/}-nightly REPOSITORY_OS_NAME=$TRAVIS_BRANCH
if: type=cron
script:
- .ci/run_tests.sh
23 changes: 12 additions & 11 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -22,34 +22,35 @@ RESTY_VERSION ?= `grep RESTY_VERSION .requirements | awk -F"=" '{print $$2}'`
RESTY_LUAROCKS_VERSION ?= `grep RESTY_LUAROCKS_VERSION .requirements | awk -F"=" '{print $$2}'`
RESTY_OPENSSL_VERSION ?= `grep RESTY_OPENSSL_VERSION .requirements | awk -F"=" '{print $$2}'`
RESTY_PCRE_VERSION ?= `grep RESTY_PCRE_VERSION .requirements | awk -F"=" '{print $$2}'`
KONG_BUILD_TOOLS ?= `grep KONG_BUILD_TOOLS .requirements | awk -F"=" '{print $$2}'`
KONG_BUILD_TOOLS ?= '2.0.0'
KONG_VERSION ?= `cat kong-*.rockspec | grep tag | awk '{print $$3}' | sed 's/"//g'`

setup-release:
setup-kong-build-tools:
-rm -rf kong-build-tools; \
git clone https://github.com/Kong/kong-build-tools.git; fi
cd kong-build-tools; \
git reset --hard $(KONG_BUILD_TOOLS); \
./.ci/setup_ci.sh

functional_tests: setup-release
functional-tests: setup-kong-build-tools
cd kong-build-tools; \
export KONG_SOURCE_LOCATION=`pwd`/../ && \
make package-kong && \
make test
$(MAKE) setup-build && \
$(MAKE) build-kong && \
$(MAKE) test

nightly-release: setup-release
nightly-release: setup-kong-build-tools
sed -i -e '/return string\.format/,/\"\")/c\return "$(KONG_VERSION)\"' kong/meta.lua && \
cd kong-build-tools; \
export KONG_SOURCE_LOCATION=`pwd`/../ && \
make package-kong && \
make release-kong
$(MAKE) setup-build && \
$(MAKE) build-kong && \
$(MAKE) release-kong

release: setup-release
cd kong-build-tools; \
export KONG_SOURCE_LOCATION=`pwd`/../ && \
make package-kong && \
make release-kong
$(MAKE) package-kong && \
$(MAKE) release-kong

install:
@luarocks make OPENSSL_DIR=$(OPENSSL_DIR) CRYPTO_DIR=$(OPENSSL_DIR)
Expand Down

0 comments on commit 7699c4f

Please sign in to comment.