-
Notifications
You must be signed in to change notification settings - Fork 40
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'develop' into bug/1922-block-by-number-error
- Loading branch information
Showing
2 changed files
with
190 additions
and
122 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -25,126 +25,26 @@ on: | |
default: RelWithDebInfo | ||
|
||
jobs: | ||
main_job: | ||
runs-on: self-hosted | ||
env: | ||
ACTIONS_ALLOW_UNSECURE_COMMANDS: true | ||
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} | ||
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} | ||
BUILD_TYPE: ${{ github.event.inputs.build_type }} | ||
steps: | ||
- name: update apt | ||
run: | | ||
sudo add-apt-repository ppa:ubuntu-toolchain-r/test || true | ||
sudo apt-get update || true | ||
- name: install packages | ||
run: | | ||
sudo apt-get -y remove libzmq* || true | ||
sudo apt-get -y install software-properties-common gcc-9 g++-9 || true | ||
core_build: | ||
uses: ./.github/workflows/setup-build-publish.yml | ||
with: | ||
image_version: ${{ github.event.inputs.image_version }} | ||
branch_name: ${{ github.event.inputs.branch_name }} | ||
cmake_options: ${{ github.event.inputs.cmake_options }} | ||
build_type: ${{ github.event.inputs.build_type }} | ||
node_type: core | ||
secrets: | ||
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} | ||
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} | ||
|
||
- name: Use g++-9 and gcov-9 by default | ||
run: | | ||
echo "Updating all needed alternatives" | ||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 9 | ||
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 9 | ||
sudo update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-9 9 | ||
sudo update-alternatives --install /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-9 9 | ||
sudo update-alternatives --install /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-9 9 | ||
echo "Checking alternative for gcc" | ||
which gcc | ||
gcc --version | ||
echo "Checking alternative for g++" | ||
which g++ | ||
g++ --version | ||
echo "Checking alternative for gcov" | ||
which gcov | ||
gcov --version | ||
echo "Checking alternative for gcov-dump" | ||
which gcov-dump | ||
gcov-dump --version | ||
echo "Checking alternative for gcov-tool" | ||
which gcov-tool | ||
gcov-tool --version | ||
- name: Extract repo name | ||
run: echo ::set-env name=REPOSITORY_NAME::$(echo "$GITHUB_REPOSITORY" | awk -F / '{print $2}') | ||
shell: bash | ||
env: | ||
ACTIONS_ALLOW_UNSECURE_COMMANDS: true | ||
- name: Extract branch name | ||
shell: bash | ||
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})" | ||
id: extract_branch | ||
- name: checkout | ||
uses: actions/checkout@v2 | ||
with: | ||
ref: ${{ github.event.inputs.branch_name }} | ||
- name: Submodule update | ||
run: | | ||
rm -rf ./libconsensus || true | ||
ls -1 | ||
git submodule update --init --recursive | ||
- name: Prepare ccache timestamp | ||
id: ccache_cache_timestamp | ||
shell: cmake -P {0} | ||
run: | | ||
string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC) | ||
message("::set-output name=timestamp::${current_date}") | ||
- name: Ccache cache files | ||
uses: actions/[email protected] | ||
with: | ||
path: .ccache | ||
key: ${ { matrix.config.name } }-ccache-${ { steps.ccache_cache_timestamp.outputs.timestamp } } | ||
restore-keys: | | ||
${ { matrix.config.name } }-ccache- | ||
- name: Build dependencies | ||
run: | | ||
export CC=gcc-9 | ||
export CXX=g++-9 | ||
export TARGET=all | ||
export CMAKE_BUILD_TYPE=$BUILD_TYPE | ||
[[ $CMAKE_BUILD_TYPE = "Debug" ]] && export DEBUG_FLAG=1 || export DEBUG_FLAG=0 | ||
cd deps | ||
./clean.sh | ||
rm -f ./libwebsockets-from-git.tar.gz | ||
./build.sh PARALLEL_COUNT=$(nproc) DEBUG=$DEBUG_FLAG | ||
cd .. | ||
- name: Configure all | ||
run: | | ||
export CC=gcc-9 | ||
export CXX=g++-9 | ||
export TARGET=all | ||
export CMAKE_BUILD_TYPE=$BUILD_TYPE | ||
mkdir -p build | ||
cd build | ||
cmake -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE ${{ github.event.inputs.cmake_options }} .. | ||
cd .. | ||
- name: Build all | ||
run: | | ||
export CC=gcc-9 | ||
export CXX=g++-9 | ||
export TARGET=all | ||
export CMAKE_BUILD_TYPE=$BUILD_TYPE | ||
cd build | ||
make skaled -j$(nproc) | ||
#echo "Ensure release mode skaled does not have any debug markers" | ||
#strip skaled/skaled | ||
cd .. | ||
- name: Build and publish container | ||
run: | | ||
cp build/skaled/skaled scripts/skale_build/executable/ | ||
export BRANCH=${{ github.event.inputs.branch_name }} | ||
[[ $BUILD_TYPE = "Debug" ]] && export VERSION_SUFFIX=debug || export VERSION_SUFFIX=release | ||
export VERSION=${{ github.event.inputs.image_version }}-$VERSION_SUFFIX | ||
echo "Version $VERSION" | ||
export RELEASE=true | ||
bash ./scripts/build_and_publish.sh | ||
- name: Upload skaled binary as artifact | ||
uses: actions/upload-artifact@v2 | ||
if: ${{ always() }} | ||
with: | ||
name: skaled | ||
path: ./build/skaled/skaled | ||
historic_build: | ||
uses: ./.github/workflows/setup-build-publish.yml | ||
with: | ||
image_version: ${{ github.event.inputs.image_version }} | ||
branch_name: ${{ github.event.inputs.branch_name }} | ||
cmake_options: ${{ github.event.inputs.cmake_options }} | ||
build_type: ${{ github.event.inputs.build_type }} | ||
node_type: historic | ||
secrets: | ||
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} | ||
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,168 @@ | ||
name: 'Setup, Build and Publish' | ||
on: | ||
workflow_call: | ||
inputs: | ||
branch_name: | ||
type: string | ||
description: 'Branch name' | ||
required: true | ||
image_version: | ||
type: string | ||
description: 'Image version for docker hub' | ||
required: true | ||
cmake_options: | ||
type: string | ||
description: 'Additional cmake options' | ||
required: false | ||
build_type: | ||
type: string | ||
description: 'Build type of skaled binary' | ||
required: true | ||
node_type: | ||
type: string | ||
description: 'Node type of skaled build' | ||
required: true | ||
secrets: | ||
DOCKER_USERNAME: | ||
required: true | ||
DOCKER_PASSWORD: | ||
required: true | ||
|
||
jobs: | ||
main: | ||
runs-on: self-hosted | ||
env: | ||
ACTIONS_ALLOW_UNSECURE_COMMANDS: true | ||
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} | ||
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} | ||
BUILD_TYPE: ${{ inputs.build_type }} | ||
steps: | ||
- name: Prepare workflow variables | ||
if: inputs.node_type != 'historic' | ||
run: | | ||
[[ $BUILD_TYPE = "Debug" ]] && export VERSION_SUFFIX=debug || export VERSION_SUFFIX=release | ||
export VERSION=${{ inputs.image_version }}-$VERSION_SUFFIX | ||
echo "VERSION=$VERSION" >> $GITHUB_ENV | ||
export CMAKE_OPTS="${{ inputs.cmake_options }}" | ||
echo "CMAKE_OPTS=$CMAKE_OPTS" >> $GITHUB_ENV | ||
- name: Prepare workflow variables (historic) | ||
if: inputs.node_type == 'historic' | ||
run: | | ||
[[ $BUILD_TYPE = "Debug" ]] && export VERSION_SUFFIX=debug || export VERSION_SUFFIX=release | ||
export VERSION=${{ inputs.image_version }}-$VERSION_SUFFIX-historic | ||
echo "VERSION=$VERSION" >> $GITHUB_ENV | ||
export CMAKE_OPTS="-DHISTORIC_STATE=1 ${{ inputs.cmake_options }}" | ||
echo "CMAKE_OPTS=$CMAKE_OPTS" >> $GITHUB_ENV | ||
- name: update apt | ||
run: | | ||
sudo add-apt-repository ppa:ubuntu-toolchain-r/test || true | ||
sudo apt-get update || true | ||
- name: install packages | ||
run: | | ||
sudo apt-get -y remove libzmq* || true | ||
sudo apt-get -y install software-properties-common gcc-9 g++-9 || true | ||
- name: Use g++-9 and gcov-9 by default | ||
run: | | ||
echo "Updating all needed alternatives" | ||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 9 | ||
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 9 | ||
sudo update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-9 9 | ||
sudo update-alternatives --install /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-9 9 | ||
sudo update-alternatives --install /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-9 9 | ||
echo "Checking alternative for gcc" | ||
which gcc | ||
gcc --version | ||
echo "Checking alternative for g++" | ||
which g++ | ||
g++ --version | ||
echo "Checking alternative for gcov" | ||
which gcov | ||
gcov --version | ||
echo "Checking alternative for gcov-dump" | ||
which gcov-dump | ||
gcov-dump --version | ||
echo "Checking alternative for gcov-tool" | ||
which gcov-tool | ||
gcov-tool --version | ||
- name: Extract repo name | ||
run: echo ::set-env name=REPOSITORY_NAME::$(echo "$GITHUB_REPOSITORY" | awk -F / '{print $2}') | ||
shell: bash | ||
env: | ||
ACTIONS_ALLOW_UNSECURE_COMMANDS: true | ||
- name: Extract branch name | ||
shell: bash | ||
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})" | ||
id: extract_branch | ||
- name: checkout | ||
uses: actions/checkout@v2 | ||
with: | ||
ref: ${{ inputs.branch_name }} | ||
- name: Submodule update | ||
run: | | ||
rm -rf ./libconsensus || true | ||
ls -1 | ||
git submodule update --init --recursive | ||
- name: Prepare ccache timestamp | ||
id: ccache_cache_timestamp | ||
shell: cmake -P {0} | ||
run: | | ||
string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC) | ||
message("::set-output name=timestamp::${current_date}") | ||
- name: Ccache cache files | ||
uses: actions/[email protected] | ||
with: | ||
path: .ccache | ||
key: ${ { matrix.config.name } }-ccache-${ { steps.ccache_cache_timestamp.outputs.timestamp } } | ||
restore-keys: | | ||
${ { matrix.config.name } }-ccache- | ||
- name: Build dependencies | ||
run: | | ||
export CC=gcc-9 | ||
export CXX=g++-9 | ||
export TARGET=all | ||
export CMAKE_BUILD_TYPE=$BUILD_TYPE | ||
[[ $CMAKE_BUILD_TYPE = "Debug" ]] && export DEBUG_FLAG=1 || export DEBUG_FLAG=0 | ||
cd deps | ||
./clean.sh | ||
rm -f ./libwebsockets-from-git.tar.gz | ||
./build.sh PARALLEL_COUNT=$(nproc) DEBUG=$DEBUG_FLAG | ||
cd .. | ||
- name: Configure all | ||
env: | ||
CMAKE_OPTS: ${{ env.CMAKE_OPTS }} | ||
run: | | ||
export CC=gcc-9 | ||
export CXX=g++-9 | ||
export TARGET=all | ||
export CMAKE_BUILD_TYPE=$BUILD_TYPE | ||
mkdir -p build | ||
cd build | ||
cmake -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE $CMAKE_OPTS .. | ||
cd .. | ||
- name: Build all | ||
run: | | ||
export CC=gcc-9 | ||
export CXX=g++-9 | ||
export TARGET=all | ||
export CMAKE_BUILD_TYPE=$BUILD_TYPE | ||
cd build | ||
make skaled -j$(nproc) | ||
cd .. | ||
- name: Build and publish container | ||
env: | ||
VERSION: ${{ env.VERSION }} | ||
run: | | ||
cp build/skaled/skaled scripts/skale_build/executable/ | ||
export BRANCH=${{ inputs.branch_name }} | ||
export RELEASE=true | ||
bash ./scripts/build_and_publish.sh | ||
- name: Upload skaled binary as artifact | ||
uses: actions/upload-artifact@v2 | ||
if: ${{ always() }} | ||
with: | ||
name: skaled-${{ inputs.node_type }} | ||
path: ./build/skaled/skaled |