peerplays_migrated/.gitlab-ci.yml
Milos Milosevic 2bad6a8ac6 More options
2023-04-17 10:31:11 +02:00

168 lines
4.7 KiB
YAML

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