Commit c0c3e426 authored by soc1c's avatar soc1c

ci: create a github action for pull requests

parent 0b025e01
Pipeline #71689 passed with stages
in 20 minutes and 5 seconds
name: Pull Requests
on: pull_request
jobs:
build-linux:
runs-on: ubuntu-latest
steps:
- name: Checkout Action
uses: actions/checkout@v1
- name: Install Dependencies
run: |
git status
sudo apt update
sudo apt install -y build-essential cmake pkg-config clang file cmake
rustup update stable
export RUST_LOG=debug
export RUST_BACKTRACE=1
rustc --version
cargo --version
rustup --version
- name: Test Linux
run: |
./.github/workflows/scripts/test-linux.sh
test-linux:
runs-on: ubuntu-latest
steps:
- name: Checkout Action
uses: actions/checkout@v1
- name: Install Dependencies
run: |
git status
sudo apt update
sudo apt install -y build-essential cmake pkg-config clang file cmake
rustup update stable
export RUST_LOG=debug
export RUST_BACKTRACE=1
rustc --version
cargo --version
rustup --version
- name: Test Linux
run: |
./.github/workflows/scripts/test-linux.sh
#!/bin/bash
set -e # fail on any error
set -u # treat unset variables as error
export CC="sccache "$CC
export CXX="sccache "$CXX
echo "__________Show ENVIROMENT__________"
echo "CI_SERVER_NAME: " $CI_SERVER_NAME
echo "CARGO_HOME: " $CARGO_HOME
echo "CARGO_TARGET: " $CARGO_TARGET
echo "CC: " $CC
echo "CXX: " $CXX
#strip ON
export RUSTFLAGS=" -C link-arg=-s"
echo "_____ Building target: "$CARGO_TARGET" _____"
if [ "${CARGO_TARGET}" = "armv7-linux-androideabi" ]
then
time cargo build --target $CARGO_TARGET --verbose --color=always --release -p parity-clib --features final
else
if [ "${CARGO_TARGET}" = "x86_64-unknown-linux-gnu" ] || [ "${CARGO_TARGET}" = "x86_64-apple-darwin" ]
then
# NOTE: Enables the aes-ni instructions for RustCrypto dependency.
# If you change this please remember to also update .cargo/config
export RUSTFLAGS="$RUSTFLAGS -Ctarget-feature=+aes,+sse2,+ssse3"
fi
time cargo build --target $CARGO_TARGET --verbose --color=always --release --features final
time cargo build --target $CARGO_TARGET --verbose --color=always --release -p evmbin
time cargo build --target $CARGO_TARGET --verbose --color=always --release -p ethstore-cli
time cargo build --target $CARGO_TARGET --verbose --color=always --release -p ethkey-cli
fi
echo "_____ Post-processing binaries _____"
rm -rf artifacts/*
mkdir -p artifacts/$CARGO_TARGET
cd artifacts/$CARGO_TARGET
if [ "${CARGO_TARGET}" = "armv7-linux-androideabi" ]
then
cp -v ../../target/$CARGO_TARGET/release/libparity.so ./libparity.so
else
cp -v ../../target/$CARGO_TARGET/release/parity ./parity
cp -v ../../target/$CARGO_TARGET/release/parity-evm ./parity-evm
cp -v ../../target/$CARGO_TARGET/release/ethstore ./ethstore
cp -v ../../target/$CARGO_TARGET/release/ethkey ./ethkey
fi
echo "_____ Calculating checksums _____"
for binary in $(ls)
do
rhash --sha256 $binary -o $binary.sha256 #do we still need this hash (SHA2)?
if [[ $CARGO_TARGET == *"x86_64"* ]];
then
./parity tools hash $binary > $binary.sha3
else
echo ">[WARN] ${binary} cannot be hashed with cross-compiled binary (keccak256)"
fi
done
#show sccache statistics
sccache --show-stats
#!/bin/bash
# ARGUMENT $1 Rust flavor to run test with (stable/beta/nightly)
echo "________Running test-linux.sh________"
set -e # fail on any error
set -u # treat unset variables as error
export CC="sccache gcc"
export CXX="sccache g++"
FEATURES="json-tests"
OPTIONS="--release"
#use nproc `linux only
THREADS=$(nproc)
rustup default $1
rustup show
echo "________Running Parity Full Test Suite________"
# Why are we using RUSTFLAGS? See https://github.com/paritytech/parity-ethereum/pull/10719
CARGO_INCREMENTAL=0 RUSTFLAGS="-C opt-level=3 -C overflow-checks=on -C debuginfo=2 -Ctarget-feature=+aes,+sse2,+ssse3" time cargo test $OPTIONS --features "$FEATURES" --locked --all --target $CARGO_TARGET --verbose --color=never -- --test-threads $THREADS
#show sccache statistics
sccache --show-stats
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment