diff --git a/.travis.yml b/.travis.yml index d7a87143a3..6560c81bb5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,20 +1,28 @@ git: depth: 3 -language: - minimal +language: shell +os: linux +dist: xenial env: global: - CONTAINER=centos:7 - jobs: - - PYTHON_VENV=python2.7 - - PYTHON_VENV=python3.6 services: - docker -sudo: required install: - docker pull ${CONTAINER} - docker build -t leapp-tests -f utils/docker-tests/Dockerfile utils/docker-tests -script: - - docker run --rm -ti -v ${PWD}:/payload --env=PYTHON_VENV leapp-tests +jobs: + include: + - script: + - docker run --rm -ti -v ${PWD}:/payload --env=PYTHON_VENV leapp-tests + env: PYTHON_VENV=python2.7 + - script: + - docker run --rm -ti -v ${PWD}:/payload --env=PYTHON_VENV leapp-tests + env: PYTHON_VENV=python3.6 + - stage: deploy + script: + - docker run --rm -ti -v ${PWD}:/payload --entrypoint "/bin/bash" leapp-tests -c "make install-deps && make dashboard_data" + - bash ./utils/update_dashboard.sh + if: branch = master AND type = push diff --git a/.travis/githubio-data-idrsa b/.travis/githubio-data-idrsa new file mode 100644 index 0000000000..c116380b4a Binary files /dev/null and b/.travis/githubio-data-idrsa differ diff --git a/Makefile b/Makefile index e3b7756fd2..d5a6e5ee6e 100644 --- a/Makefile +++ b/Makefile @@ -222,5 +222,11 @@ test_no_lint: test: lint test_no_lint +dashboard_data: + . tut/bin/activate; \ + snactor repo find --path repos/; \ + pushd repos/system_upgrade/el7toel8/; \ + python ../../../utils/dashboard-json-dump.py > ../../../discover.json; \ + popd -.PHONY: help build clean prepare source srpm copr_build print_release register install-deps lint test_no_lint test +.PHONY: help build clean prepare source srpm copr_build print_release register install-deps lint test_no_lint test dashboard_data diff --git a/utils/dashboard-json-dump.py b/utils/dashboard-json-dump.py new file mode 100755 index 0000000000..6f428d5cef --- /dev/null +++ b/utils/dashboard-json-dump.py @@ -0,0 +1,15 @@ +from __future__ import print_function +import json + +from leapp.utils.repository import find_repository_basedir +from leapp.repository.scan import find_and_scan_repositories + +base_dir = find_repository_basedir('.') +repository = find_and_scan_repositories(base_dir, include_locals=True) + +repository.load() + +if not hasattr(repository, 'repos'): + repository.repos = [repository] + +print(json.dumps([repo.serialize() for repo in repository.repos])) diff --git a/utils/update_dashboard.sh b/utils/update_dashboard.sh new file mode 100755 index 0000000000..b9f425cac2 --- /dev/null +++ b/utils/update_dashboard.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +# Decrypt private SSH key +ENCRYPTED_FILE=.travis/githubio-data-idrsa +DECRYPTED_FILE=${ENCRYPTED_FILE}-dec +openssl aes-256-cbc -K $aes_encryption_key -iv $aes_encryption_iv -in $ENCRYPTED_FILE -out $DECRYPTED_FILE -d + +# Setup SSH agent with decrypted private SSH key +eval "$(ssh-agent -s)" +chmod 0600 $DECRYPTED_FILE +ssh-add $DECRYPTED_FILE + +# Clone githubio-data repository +git clone --depth 1 --branch master git@github.com:oamg/githubio-data + +cd githubio-data +# Setting username and email for committer +git config user.name "Leapp Build Automation" +git config user.email "leapp+build+automation@not-for-real.leapp" + +# Update data +mv -f ../discover.json files/discover.json + +# Stage and commit +git add files/discover.json +git commit -s -m "Leapp dashboard discover for ${TRAVIS_COMMIT}" --allow-empty + +# Push changes +git push origin master