Skip to content

anew just bitcoin nodes #189

anew just bitcoin nodes

anew just bitcoin nodes #189

name: Build and Test
on:
push:
branches:
- '**'
pull_request:
types: [opened, reopened, ready_for_review]
branches:
- '**'
jobs:
# build:
# runs-on: ubuntu-latest
# container:
# image: openjdk:8-jdk
# env:
# _JAVA_OPTIONS: "-Xmx3G -Xms2G"
# defaults:
# run:
# working-directory: .
# steps:
# - uses: actions/checkout@v2
# - name: Setup System Tools
# run: |
# apt update -y
# apt install -y gnupg2 curl
# - name: Install Node.js
# run: |
# curl -fsSL https://deb.nodesource.com/setup_16.x | bash -
# apt-get install -y nodejs
# - name: Check Node.js version
# run: node --version
# - name: Verify files
# run: |
# curl -sSL https://secchannel.rsk.co/SUPPORT.asc | gpg2 --import -
# gpg2 --verify SHA256SUMS.asc && sha256sum --check SHA256SUMS.asc
#
# - uses: actions/cache@v4
# name: Cache Gradle
# with:
# path: |
# .gradle/caches
# gradle/wrapper
# key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
# restore-keys: |
# ${{ runner.os }}-gradle-
#
# - uses: actions/cache@v4
# name: Cache build
# with:
# path: |
# build
# key: ${{ runner.os }}-build-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
# restore-keys: |
# ${{ runner.os }}-build-
#
# - name: Build
# run: |
# ./configure.sh
# ./gradlew --no-daemon dependencies
# ./gradlew --no-daemon --stacktrace build -x test
# ls -la ./gradle/wrapper/gradle-wrapper.jar
#
# sonarqube:
# needs: build
# runs-on: ubuntu-latest
# container:
# image: eclipse-temurin:17-jdk
# defaults:
# run:
# working-directory: .
# steps:
# - uses: actions/checkout@v2
# - name: Run SonarQube analysis
# run: |
# echo "Installing git"
# apt-get update && apt-get install -yqq git
# extra_flags=""
# echo "Get GH event type"
# event_name="${{ github.event_name }}"
# if [ "$event_name" = "pull_request" ]; then
# echo "Setting up PR analysis"
# echo "switch to master"
# git branch -f master origin/master
# pr_number=${{ github.event.pull_request.number }}
# echo "PR number: $pr_number"
# extra_flags="-Dsonar.pullrequest.base=master -Dsonar.pullrequest.branch=${{ github.head_ref }} -Dsonar.pullrequest.key=$pr_number"
# echo "PR analysis flags: $extra_flags"
# else
# echo "Setting up branch analysis"
# extra_flags="-Dsonar.branch.name=master"
# echo "Branch analysis flags: $extra_flags"
# fi
#
# sonar_url=${{ secrets.SONAR_URL }}
# sonar_token=${{ secrets.SONAR_TOKEN }}
# echo "Event name: $event_name"
# echo "Sonar URL: $sonar_url"
#
# echo "Running SonarQube analysis"
# ./configure.sh
# ./gradlew sonarqube --no-daemon -x build -x test $extra_flags \
# -Dsonar.organization=rsksmart -Dsonar.host.url="$sonar_url" -Dsonar.login="$sonar_token"
#
# tests:
# needs: build
# runs-on: ubuntu-latest
# container:
# image: openjdk:8-jdk
# defaults:
# run:
# working-directory: .
# steps:
# - uses: actions/checkout@v2
#
# - name: Setup System Tools
# run: |
# apt update -y
# apt install -y curl
# - name: Install Node.js
# run: |
# curl -fsSL https://deb.nodesource.com/setup_16.x | bash -
# apt-get install -y nodejs
# - name: Check Node.js version
# run: node --version
#
# - uses: actions/cache@v4
# name: Restore gradle cache
# with:
# path: |
# .gradle/caches
# gradle/wrapper
# key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
# restore-keys: |
# ${{ runner.os }}-gradle-
#
# - name: Get Gradle jar
# run: |
# ./configure.sh
#
# - name: Unit tests
# run: |
# chmod +x ./gradlew
# ./gradlew --no-daemon --stacktrace test
# - name: Integration tests
# run: |
# chmod +x ./gradlew
# ./gradlew --no-daemon --stacktrace test
#
# - name: Save test results
# run: |
# mkdir -p ~/junit/
# find rskj-core/build/test-results -type f -name "*.xml" -exec cp {} ~/junit/ \;
# if: always()
mining-tests:
runs-on: ubuntu-latest
defaults:
run:
working-directory: .
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup System Tools
run: |
sudo apt update -y
sudo apt install -y curl jq lsof
- name: Start bitcoin containers
run: |
sudo docker compose --file docker-compose.yml up -d
- name: Wait for Bitcoin nodes to initialize
run: |
while ! curl -s -u admin:admin --data-binary '{"jsonrpc":"1.0","id":"curltext","method":"getblockchaininfo","params":[]}' -H 'content-type:text/plain;' http://localhost:32591; do
echo "Waiting for bitcoind1 to start..."
sleep 5
done
# mining-tests:
## needs: build
# runs-on: ubuntu-latest
## container:
## image: openjdk:8-jdk
# defaults:
# run:
# working-directory: .
#
# steps:
# - name: Checkout
# uses: actions/checkout@v2
#
## - name: Setup System Tools
## run: |
## sudo apt-get update -y
## sudo apt-get install -y jq lsof
#
# - name: Setup Node.js
# uses: actions/setup-node@v4
# with:
# node-version: '21.x'
# - name: Check Node.js version
# run: node --version
#
# - name: Checkout Mining Integration Tests Repository
# uses: actions/checkout@v2
# with:
# repository: jurajpiar/mining-integration-tests
## ref: ${{ secrets.MINING_INTEGRATION_TESTS_REF }}
## token: ${{ secrets.GITHUB_TOKEN }}
# path: mining-integration-tests
#
# - name: Start bitcoin containers
# run: |
# sudo docker compose --file mining-integration-tests/docker-compose.yml up -d
#
# - name: Wait for Bitcoin nodes to initialize
# run: |
# while ! curl -s -u admin:admin --data-binary '{"jsonrpc":"1.0","id":"curltext","method":"getblockchaininfo","params":[]}' -H 'content-type:text/plain;' http://localhost:32591; do
# echo "Waiting for bitcoind1 to start..."
# sleep 5
# done
#
# - name: Check bitcoin nodes
# uses: docker://docker
# with:
# args: |
# docker ps -a
# - name: Check bitcoind1 logs
# uses: docker://docker
# with:
# args: |
# docker logs bitcoind1
# - name: Check bitcoind2 logs
# uses: docker://docker
# with:
# args: |
# docker logs bitcoind2
#
# - name: Test bitcoin node 1 as localhost
# if: always()
# run: |
# echo Test bitcoin node 1
# curl -v -s -u admin:admin --data-binary '{"jsonrpc":"1.0","id":"curltext","method":"getblockchaininfo","params":[]}' -H 'content-type:text/plain;' http://localhost:32591
# - name: Test bitcoin nodes as bitcoind1
# if: always()
# run: |
# echo Test bitcoin node 1
# curl -v -s -u admin:admin --data-binary '{"jsonrpc":"1.0","id":"curltext","method":"getblockchaininfo","params":[]}' -H 'content-type:text/plain;' http://bitcoind1:32591
#
# - name: Test bitcoin node 2 as localhost
# if: always()
# run: |
# echo Test bitcoin node 2
# curl -v -s -u admin:admin --data-binary '{"jsonrpc":"1.0","id":"curltext","method":"getblockchaininfo","params":[]}' -H 'content-type:text/plain;' http://localhost:32592
#
# - name: Test bitcoin nodes as bitcoind2
# if: always()
# run: |
# echo Test bitcoin node 2
# curl -v -s -u admin:admin --data-binary '{"jsonrpc":"1.0","id":"curltext","method":"getblockchaininfo","params":[]}' -H 'content-type:text/plain;' http://bitcoind2:32592
#
## - uses: actions/cache@v2
## with:
## path: |
## node_modules
## key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }}
## restore-keys: |
## ${{ runner.os }}-node-
#
# - name: "Modify test suite config"
# run: |
# ls -al mining-integration-tests
# cat mining-integration-tests/config.json
# echo "bitcoind url before"
# jq -r '.bitcoind.url' "mining-integration-tests/config.json"
# jq --arg new_url "localhost" '.bitcoind.url = $new_url' "mining-integration-tests/config.json" > temp.json && mv temp.json "mining-integration-tests/config.json"
# echo "bitcoind url after"
# jq -r '.bitcoind.url' "mining-integration-tests/config.json"
#
# - name: Install Mining Integration Tests dependencies
# working-directory: mining-integration-tests
# run: |
# npm install
#
# - name: Generate BTC blocks
# working-directory: mining-integration-tests
# run: |
# node --unhandled-rejections=strict generateBtcBlocks.js
#
# - name: Setup Java JDK
# uses: actions/setup-java@v3
# with:
# java-version: '17'
# distribution: 'temurin'
#
# - name: Verify Java installation
# run: java -version
#
## - uses: actions/cache@v4
## name: Restore gradle cache
## with:
## path: |
## .gradle/caches
## gradle/wrapper
## key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
## restore-keys: |
## ${{ runner.os }}-gradle-
##
# - name: Get Gradle jar
# run: |
# ./configure.sh
#
## - uses: actions/cache@v4
## name: Restore build
## with:
## path: |
## rsk-core/build
## key: ${{ runner.os }}-build-${{ hashFiles('build') }}
## restore-keys: |
## ${{ runner.os }}-build-
#
# - name: Build
# run: |
# ./configure.sh
# ./gradlew --no-daemon dependencies
# ./gradlew --no-daemon --stacktrace build -x test
# ls -la ./gradle/wrapper/gradle-wrapper.jar
#
# - name: Start RSKj
# run: |
# version=$(tr -d "'\"" < rskj-core/src/main/resources/version.properties \
# | cut -d = -f 2- | paste -sd - -)
# ls -la rskj-core/build/libs/rskj-core-"$version"-all.jar
# java -Drsk.conf.file=./rsk-integration-test.conf -cp rskj-core/build/libs/rskj-core-"$version"-all.jar co.rsk.Start --regtest
#
#
## - name: Run Mining Integration Tests
## run: |
## chmod +x mining-test/run.sh
## ./mining-test/run.sh
#
# - name: Run Mining Integration Tests
# working-directory: mining-integration-tests
# run: |
# npm test
#
# - name: Review test results
# working-directory: mining-integration-tests
# if: always()
# run: |
# cat ./Results/mocha/Test-Results.xml
#
# - name: Stop and Remove Docker Containers
# uses: docker://docker
# if: always()
# with:
# args: |
# docker stop bitcoind1 bitcoind2
# docker rm bitcoind1 bitcoind2