From 6bf76a178840a3bd71ed632b38dc4a0aa9238b90 Mon Sep 17 00:00:00 2001 From: Ashmita Date: Sun, 6 Dec 2020 04:04:41 +0800 Subject: [PATCH] Add github action for crossdock tests (#297) * Add github action for crossdock Signed-off-by: Ashmita Bohara * Increase code coverage Signed-off-by: Ashmita Bohara --- .github/workflows/ci-crossdock.yml | 61 +++++++++++++++++++ .../{ci-tests.yml => ci-unit-tests.yml} | 4 +- scripts/build-crossdock.sh | 29 ++++----- tests/test_config.py | 8 +++ 4 files changed, 86 insertions(+), 16 deletions(-) create mode 100644 .github/workflows/ci-crossdock.yml rename .github/workflows/{ci-tests.yml => ci-unit-tests.yml} (97%) diff --git a/.github/workflows/ci-crossdock.yml b/.github/workflows/ci-crossdock.yml new file mode 100644 index 00000000..d5cc1611 --- /dev/null +++ b/.github/workflows/ci-crossdock.yml @@ -0,0 +1,61 @@ +name: CIT Crossdock + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + crossdock: + runs-on: ubuntu-latest + env: + TORNADO: ">=4,<5" + VIRTUAL_ENV: "github" + steps: + - uses: actions/checkout@v2 + with: + submodules: true + + - uses: actions/setup-python@v2 + with: + python-version: 2.7 + + - uses: docker/login-action@v1 + id: dockerhub-login + with: + username: jaegertracingbot + password: ${{ secrets.DOCKERHUB_TOKEN }} + env: + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + if: env.DOCKERHUB_TOKEN != null + + - name: Export DOCKERHUB_LOGIN variable + run: | + echo "DOCKERHUB_LOGIN=true" >> $GITHUB_ENV + if: steps.dockerhub-login.outcome == 'success' + + - name: Export BRANCH variable for pull_request event + run: | + export BRANCH=${GITHUB_HEAD_REF} + echo "we are on branch=$BRANCH" + echo "BRANCH=${BRANCH}" >> $GITHUB_ENV + if: github.event_name == 'pull_request' + + - name: Export BRANCH variable for push event + run: | + echo "BRANCH=${GITHUB_REF##*/}" >> $GITHUB_ENV + if: github.event_name == 'push' + + - name: Install pycurl dependencies + run: sudo apt-get install libgnutls28-dev libcurl4-openssl-dev libssl-dev + + - name: Install dependencies + run: make bootstrap + + - name: Build crossdock + run: bash scripts/build-crossdock.sh + + - name: Output crossdock logs + run: make crossdock-logs + if: ${{ failure() }} diff --git a/.github/workflows/ci-tests.yml b/.github/workflows/ci-unit-tests.yml similarity index 97% rename from .github/workflows/ci-tests.yml rename to .github/workflows/ci-unit-tests.yml index d1bb441c..df221f8d 100644 --- a/.github/workflows/ci-tests.yml +++ b/.github/workflows/ci-unit-tests.yml @@ -1,4 +1,4 @@ -name: CI Tests +name: Unit Tests on: push: @@ -7,7 +7,7 @@ on: branches: [ master ] jobs: - ci-tests: + unit-tests: env: VIRTUAL_ENV: github runs-on: ubuntu-latest diff --git a/scripts/build-crossdock.sh b/scripts/build-crossdock.sh index 8b1e5fee..64efcc4c 100644 --- a/scripts/build-crossdock.sh +++ b/scripts/build-crossdock.sh @@ -1,29 +1,30 @@ #!/bin/bash -set -e +set -euxf -o pipefail make crossdock -export REPO=jaegertracing/xdock-py -export BRANCH=$(if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then echo $TRAVIS_BRANCH; else echo $TRAVIS_PULL_REQUEST_BRANCH; fi) -export TAG=`if [ "$BRANCH" == "master" ]; then echo "latest"; else echo "${BRANCH///}"; fi` -export TORNADO=$TORNADO -echo "TRAVIS_BRANCH=$TRAVIS_BRANCH, REPO=$REPO, PR=$PR, BRANCH=$BRANCH, TAG=$TAG, TORNADO=$TORNADO" +REPO=jaegertracing/xdock-py +BRANCH=${BRANCH:?'missing BRANCH env var'} +TORNADO=${TORNADO:?'missing TORNADO env var'} +TAG=$([ "$BRANCH" == "master" ] && echo "latest" || echo "$BRANCH") +COMMIT=${GITHUB_SHA::8} +DOCKERHUB_LOGIN=${DOCKERHUB_LOGIN:-false} -# Only push the docker container to Docker Hub for master branch -if [[ "$BRANCH" == "master" && "$TRAVIS_SECURE_ENV_VARS" == "true" ]]; then +echo "REPO=$REPO, BRANCH=$BRANCH, TAG=$TAG, TORNADO=$TORNADO, COMMIT=$COMMIT" + +# Only push the docker container to dockerhub for master branch and when dockerhub login is done +if [[ "$BRANCH" == "master" && "$DOCKERHUB_LOGIN" == "true" ]]; then echo 'upload to Docker Hub' else echo 'skip docker upload for PR' exit 0 fi -docker login -u $DOCKER_USER -p $DOCKER_PASS - -set -x - -docker build --build-arg tornado=$TORNADO -f crossdock/Dockerfile -t $REPO:$COMMIT . +docker build -f crossdock/Dockerfile \ + --build-arg tornado=$TORNADO \ + --tag $REPO:$COMMIT . docker tag $REPO:$COMMIT $REPO:$TAG -docker tag $REPO:$COMMIT $REPO:travis-$TRAVIS_BUILD_NUMBER +docker tag $REPO:$COMMIT $REPO:gh-$GITHUB_RUN_NUMBER docker push $REPO diff --git a/tests/test_config.py b/tests/test_config.py index cf275a44..33ac7583 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -163,9 +163,17 @@ def test_initialize_tracer(self): assert opentracing.global_tracer() == tracer + def test_initialize_tracer_twice(self): + c = Config({}, service_name='x') + tracer = c.initialize_tracer() + tracer = c.initialize_tracer() + + assert tracer is None + def test_default_local_agent_reporting_port(self): c = Config({}, service_name='x') assert c.local_agent_reporting_port == 6831 + assert c.local_agent_enabled is True def test_generate_128bit_trace_id(self): c = Config({}, service_name='x')