diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..c64699b --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,85 @@ +version: 2.1 + +##################################### YAML ANCHORS ############################################ + +tag-trigger: &tag-trigger + tags: + only: /^v.*/ + +jobs: + ubuntu-build: + docker: + - image: ubuntu:20.04 + steps: + - checkout + - run: + name: Install Ubuntu 20.04 deps + command: | + apt update && apt install -y git ruby ruby-dev libffi-dev build-essential + - run: + name: Ubuntu 20.04 package + command: | + ./build.sh + - persist_to_workspace: + root: ./pkg + paths: + - "*.deb" + + centos-build: + docker: + - image: centos/ruby-27-centos7 + user: root + steps: + - run: + name: Install Centos7 deps + command: | + yum -y install rpm-build yajl yajl-devel + - run: + # builtin checkout does not work with root user, + # ssh fingerprint prompt screws up the job + name: Manual checkout + command: | + git clone https://github.com/3scale-labs/3scale_toolbox_packaging.git . + if [ -n "$CIRCLE_TAG" ]; then + git checkout --force "$CIRCLE_TAG" + else + git checkout --force -B "$CIRCLE_BRANCH" "$CIRCLE_SHA1" + fi + - run: + name: Centos7 package + command: | + ./build.sh + - persist_to_workspace: + root: ./pkg + paths: + - "*.rpm" + + publish-github-release: + docker: + - image: cibuilds/github:0.10 + steps: + - attach_workspace: + at: ./artifacts + - run: + name: "Publish Release on GitHub" + command: | + ghr -t ${GITHUB_TOKEN} -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} -c ${CIRCLE_SHA1} ${CIRCLE_TAG} ./artifacts/ + +workflows: + version: 2 + build: + jobs: + - ubuntu-build: + filters: + <<: *tag-trigger + - centos-build: + filters: + <<: *tag-trigger + - publish-github-release: + requires: + - ubuntu-build + - centos-build + filters: + <<: *tag-trigger + branches: + ignore: /.*/ diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index d7e3c0c..0000000 --- a/.travis.yml +++ /dev/null @@ -1,30 +0,0 @@ -language: ruby -install: true -jobs: - include: - - os: linux - env: - - BUILD_ENGINE=docker - - DOCKER_IMAGE=centos/ruby-27-centos7 - services: - - docker - - os: linux - env: - - BUILD_ENGINE=docker - - DOCKER_IMAGE="ubuntu:20.04" - services: - - docker -deploy: - provider: releases - token: - secure: V/by4b2X1GtiK0dtBWHEdeh7BSgCMZ1eah2jZHR0GSOcSwanj4KGrBhmAxrRc9Vm0ZxwawWOMmHibVvHCRPH30Cq6foVhwdGnCTqeVFdOhDtkguOw+dpe3MJ6HMPX46+o53rvg6/RPqfq03Ls4PLr+dEjWp2EWUUurTCQPynHeISfFaCroV8HMl4lK3WPlfN/t+xDBK7FgoL+92wLMQCrez7Fk1HPN/RwCUG8LfqIScgjegctY38zu8LA45nYl/neha6e19cDGDtK7nvCJb6J/U5fWXpP60/9GI2iJn7Yy24Z3vbQsjyTKAM1gekoMbaZm6QU7ZYG0FNxs3TqSj9vPIwWLJQpxSpfd7KrbcfrQ6QpAJUvh2e6/AySw4R4sMhNbM5w6oXtnk6NoUaEmMRrQfVnSkbLz6qYOWNdWskdIbJZr9UMblzQWJnTRNPqJ9TmWw1BCwaS3lxrvvV6lK0+A9ioNGuz6qfj2UkKh6suKdAHeaAWddjLe+XbBG5UMKq+7vJ6Ef30zEW8/pjqKynYjP67qg+XVxHHhk+jeqCFrMlqLA0sdXrCC4EIDLKKTSoZLgtXVk/A9JX+0ls5M+gbFZfh0QQM2D5jKmOS4TW2j1VhYjfgGKMSFqEpr0YryTh6vQFXDe3Fajx/BOlR9VkkIF3pVfYeh2nFx3gCLvbFjU= - file_glob: true - file: - - pkg/*.rpm - - pkg/*.deb - on: - tags: true -before_script: -- rm -rf pkg/* -script: -- "./${BUILD_ENGINE}.sh" diff --git a/native.sh b/build.sh similarity index 67% rename from native.sh rename to build.sh index 58270f4..174c737 100755 --- a/native.sh +++ b/build.sh @@ -3,17 +3,6 @@ set -o errexit set -o nounset set -o xtrace -DOCKER_IMAGE="${DOCKER_IMAGE:-}" - -if [ "${DOCKER_IMAGE}" = "centos/ruby-27-centos7" ] -then - yum -y install rpm-build yajl yajl-devel -elif [ "${DOCKER_IMAGE}" = "ubuntu:20.04" ] -then - apt update - apt install -y git ruby ruby-dev libffi-dev build-essential -fi - # Since secure_path is set on our CentOS build images, we also need to ensure # we only use absolute paths when referencing the binaries we want to run. GEM="$(command -v gem)" diff --git a/docker.sh b/docker.sh deleted file mode 100755 index aa7f232..0000000 --- a/docker.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -set -o errexit -set -o nounset -set -o xtrace - -BUILD_AT="/build" - -docker run -u root -e DOCKER_IMAGE=${DOCKER_IMAGE} -it --rm -v "${PWD}:${BUILD_AT}" -w "${BUILD_AT}" "$DOCKER_IMAGE" ./native.sh