include: - template: Code-Quality.gitlab-ci.yml - template: Dependency-Scanning.gitlab-ci.yml - template: License-Scanning.gitlab-ci.yml - template: SAST.gitlab-ci.yml - template: Secret-Detection.gitlab-ci.yml stages: - python-test - dockerize - build - test build-mainnet: stage: build script: - rm -rf .git/modules/docs .git/modules/libraries/fc ./docs ./libraries/fc - git submodule sync - git submodule update --init --recursive - rm -rf build - mkdir build - cd build - cmake -DCMAKE_BUILD_TYPE=Release .. - make -j$(nproc) artifacts: untracked: true paths: - build/libraries/ - build/programs/ - build/tests/ tags: - builder when: manual test-mainnet: stage: test dependencies: - build-mainnet script: - ./build/libraries/fc/tests/all_tests - ./build/tests/betting_test --log_level=message - ./build/tests/chain_test --log_level=message - ./build/tests/cli_test --log_level=message tags: - builder dockerize-mainnet: stage: dockerize variables: IMAGE: $CI_REGISTRY_IMAGE/mainnet/$CI_COMMIT_REF_SLUG:$CI_COMMIT_SHA before_script: - docker info - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - df -BM $pwd script: - docker images - docker builder prune -a -f - docker build --no-cache -t $IMAGE . - docker images - docker push $IMAGE after_script: - docker rmi $IMAGE - docker images tags: - builder timeout: 3h test-e2e: stage: python-test before_script: - docker info - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - docker stop $(docker ps -a -q) - docker rm $(docker ps -aq) - git clone https://gitlab.com/PBSA/tools-libs/peerplays-utils.git - pwd - cd peerplays-utils/peerplays-qa-environment - FULL_PWD=$(pwd) - cd e2e-tests/ - python3 -m venv venv - source venv/bin/activate - pip3 install -r requirements.txt - docker ps -a -q - python3 main.py --stop - docker ps -a -q - python3 main.py --start btc hive eth - docker ps -a -q - python3 -m pytest test_btc_init_state.py test_hive_inital_state.py - docker pull registry.gitlab.com/pbsa/peerplays/mainnet/feature-python-e2e-tests:943e02cdcd9fb8a90137851635b998cf1b4f622c - ls -la $FULL_PWD/peerplays/config.ini - ls -la $FULL_PWD/peerplays/genesis.json - ls -la $FULL_PWD/peerplays/init-network.sh - PP_CONTAINER_ID=$(docker run --name pp -d registry.gitlab.com/pbsa/peerplays/mainnet/feature-python-e2e-tests:943e02cdcd9fb8a90137851635b998cf1b4f622c tail -f /dev/null) - docker cp $FULL_PWD/e2e-tests/peerplays-utils/peerplays-qa-environment/peerplays/config.ini $PP_CONTAINER_ID:/home/peerplays/peerplays-network/witness_node_data_dir/config.ini - docker cp $FULL_PWD/e2e-tests/peerplays-utils/peerplays-qa-environment/peerplays/genensis.json $PP_CONTAINER_ID:/home/peerplays/peerplays-network/witness_node_data_dir/genensis.json - docker cp $FULL_PWD/e2e-tests/peerplays-utils/peerplays-qa-environment/peerplays/init-network.sh $PP_CONTAINER_ID:/home/peerplays/peerplays-network/init-network.sh - docker exec -c pp ./init-network.sh - docker ps -a -q - docker exec pp sh -c ./witness_node -d ./witness_node_data_dir --replay-blockchain - docker exec pp sh -c ./init-network.sh - python3 -m pytest test_pp_inital_state.py - ./main.py --stop - deactivate - docker ps -a -q tags: - python-tests build-testnet: stage: build script: - rm -rf .git/modules/docs .git/modules/libraries/fc ./docs ./libraries/fc - git submodule sync - git submodule update --init --recursive - rm -rf build - mkdir build - cd build - cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_PEERPLAYS_TESTNET=1 .. - make -j$(nproc) artifacts: untracked: true paths: - build/libraries/ - build/programs/ - build/tests/ tags: - builder when: manual timeout: 3h test-testnet: stage: test dependencies: - build-testnet script: - ./build/libraries/fc/tests/all_tests - ./build/tests/betting_test --log_level=message - ./build/tests/chain_test --log_level=message - ./build/tests/cli_test --log_level=message tags: - builder when: manual timeout: 1h dockerize-testnet: stage: dockerize variables: IMAGE: $CI_REGISTRY_IMAGE/testnet/$CI_COMMIT_REF_SLUG:$CI_COMMIT_SHA before_script: - docker info - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - docker build --no-cache -t $IMAGE . - docker push $IMAGE after_script: - docker rmi $IMAGE tags: - builder when: manual timeout: 3h