Skip to content

Commit

Permalink
Merge pull request #260 from yanganto/hotfox/fix-ci
Browse files Browse the repository at this point in the history
Hotfox/fix ci
  • Loading branch information
hackfisher authored Feb 14, 2020
2 parents a65b044 + e5565a9 commit 908aee0
Show file tree
Hide file tree
Showing 11 changed files with 373 additions and 158 deletions.
26 changes: 26 additions & 0 deletions .maintain/ci/build_script.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/usr/bin/env bash

set -eux

rustup default $RUST_TOOLCHAIN

source ~/.cargo/env

rustup --version
cargo --version
rustc --version

case $TARGET in
# Without WASM
"native")
# There is some issue to build on ci server with SKIP_WASM_BUILD=1
cargo build --release --all --locked "$@"
echo -e "\e[0;32m +-------------+ \n\e[0;32m | Native Pass | \n\e[0;32m +-------------+ \e[0m"
;;

# With WASM
"wasm")
WASM_BUILD_TYPE=release cargo build --locked "$@"
echo -e "\e[0;32m +-----------+ \n\e[0;32m | WASM Pass | \n\e[0;32m +-----------+ \e[0m"
;;
esac
27 changes: 27 additions & 0 deletions .maintain/ci/darwinia_test_script.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/usr/bin/env bash
echo -e "Test Darwinia ${1} ..."

set -eux

rustup default $RUST_TOOLCHAIN

source ~/.cargo/env

rustup --version
cargo --version
rustc --version

case $TARGET in
# Without WASM
"native")
# There is some issue to build on ci server with SKIP_WASM_BUILD=1
cargo test -p darwinia-${1}
echo -e "\e[0;32m +------------+ \n\e[0;32m | ${1} Pass | \n\e[0;32m +------------+ \e[0m"
;;

# With WASM
"wasm")
WASM_BUILD_TYPE=release cargo test -p darwinia-${1}
echo -e "\e[0;32m +------------+ \n\e[0;32m | ${1} Pass | \n\e[0;32m +------------+ \e[0m"
;;
esac
19 changes: 19 additions & 0 deletions .maintain/ci/fmt_script.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/usr/bin/env bash

set -eux

# rustfmt is check as stable rust
rustup default stable
rustup component add rustfmt

source ~/.cargo/env

rustup --version
cargo --version
rustc --version

# clean target cache if any
rm -rf target

cargo fmt --all
echo -e "\e[0;32m +-------------+ \n\e[0;32m | Format Pass | \n\e[0;32m +-------------+ \e[0m"
30 changes: 0 additions & 30 deletions .maintain/ci/script.sh

This file was deleted.

26 changes: 26 additions & 0 deletions .maintain/ci/test_script.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/usr/bin/env bash

set -eux

rustup default $RUST_TOOLCHAIN

source ~/.cargo/env

rustup --version
cargo --version
rustc --version

case $TARGET in
# Without WASM, build then test
"native")
# There is some issue to build on ci server with SKIP_WASM_BUILD=1
cargo test --release --all --locked "$@"
echo -e "\e[0;32m +------------+ \n\e[0;32m | Release OK | \n\e[0;32m +------------+ \e[0m"
;;

# With WASM, build then test
"wasm")
WASM_BUILD_TYPE=release cargo test --locked "$@"
echo -e "\e[0;32m +------------+ \n\e[0;32m | Release OK | \n\e[0;32m +------------+ \e[0m"
;;
esac
52 changes: 41 additions & 11 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
# Request an environment that provides sudo (that goes with larger containers)
# and a minimal language environment.
sudo: true
language: minimal
language: rust
rust:
- nightly

cache: cargo
cache:
cargo: true
directories:
- target

branches:
only:
Expand All @@ -13,17 +15,45 @@ branches:
env:
global:
- RUST_BACKTRACE=1
matrix:
- RUST_TOOLCHAIN=stable TARGET=rustfmt
- RUST_TOOLCHAIN=nightly TARGET=wasm
- RUST_TOOLCHAIN=nightly TARGET=native

before_install:
# Check how much space we've got on this machine.
- df -h
# TODO: cache the toolchain
- rustup target add wasm32-unknown-unknown

script:
- .maintain/ci/script.sh
jobs:
include:
- stage: Check
script: .maintain/ci/fmt_script.sh

- stage: Build
env: RUST_TOOLCHAIN=nightly TARGET=native
script: .maintain/ci/build_script.sh

- stage: Build
env: RUST_TOOLCHAIN=nightly TARGET=wasm
script: .maintain/ci/build_script.sh

- stage: Darwinia Test
env: RUST_TOOLCHAIN=nightly TARGET=native KTON
script: .maintain/ci/darwinia_test_script.sh kton

- stage: Darwinia Test
env: RUST_TOOLCHAIN=nightly TARGET=native RING
script: .maintain/ci/darwinia_test_script.sh ring

- stage: Darwinia Test
env: RUST_TOOLCHAIN=nightly TARGET=native STAKING
script: .maintain/ci/darwinia_test_script.sh staking

- stage: Overall Test
env: RUST_TOOLCHAIN=nightly TARGET=native
script: .maintain/ci/test_script.sh

# clean up cache
- stage: Cleanup
script: cargo clean

after_script:
# Check how much free disk space left after the build
Expand Down
62 changes: 62 additions & 0 deletions CONTRIBUTING.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
= Contributing

The `Darwinia` project is an **OPENISH Open Source Project**

== What?

Individuals making significant and valuable contributions are given commit-access to a project to contribute as they see fit. A project is more like an open wiki than a standard guarded open source project.

== Rules

There are a few basic ground-rules for contributors (including the maintainer(s) of the project):

. **No `--force` pushes** or modifying the master branch history in any way. If you need to rebase, ensure you do it in your own repo.
. **Non-master branches**, prefixed with a short name moniker (e.g. `gav-my-feature`) must be used for ongoing work.
. **All modifications** must be made in a **pull-request** to solicit feedback from other contributors.
. A pull-request *must not be merged until CI* has finished successfully.
. Contributors should adhere to the https://wiki.parity.io/Substrate-Style-Guide[house coding style].


== Merge Process

Merging pull requests once CI is successful:

. A PR needs to be reviewed and approved by project maintainers unless:
- it does not alter any logic (e.g. comments, dependencies, docs), then it may be tagged https://github.com/darwinia-network/darwinia/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+label%3AA2-insubstantial[`insubstantial`] and merged by its author once CI is complete.
- it is an urgent fix with no large change to logic, then it may be merged after a non-author contributor has approved the review once CI is complete.

. Once a PR is ready for review please add the https://github.com/darwinia-network/darwinia/pulls?q=is%3Apr+is%3Aopen+label%3AA0-pleasereview[`pleasereview`] label. Generally PRs should sit with this label for 48 hours in order to garner feedback. It may be merged before if all relevant parties had a look at it.
. PRs that break the external API must be tagged with https://github.com/darwinia-network/darwinia/labels/B2-breaksapi[`breaksapi`], when it changes the SRML or consensus of running system with https://github.com/darwinia-network/darwinia/labels/B3-breaksconsensus[`breaksconsensus`]
. No PR should be merged until all reviews' comments are addressed.

*Reviewing pull requests*:

When reviewing a pull request, the end-goal is to suggest useful changes to the author. Reviews should finish with approval unless there are issues that would result in:

. Buggy behavior.
. Undue maintenance burden.
. Breaking with house coding style.
. Pessimization (i.e. reduction of speed as measured in the projects benchmarks).
. Feature reduction (i.e. it removes some aspect of functionality that a significant minority of users rely on).
. Uselessness (i.e. it does not strictly add a feature or fix a known issue).

*Reviews may not be used as an effective veto for a PR because*:

. There exists a somewhat cleaner/better/faster way of accomplishing the same feature/fix.
. It does not fit well with some other contributors' longer-term vision for the project.

== Helping out

We use https://github.com/darwinia-network/darwinia/labels[labels] to manage PRs and issues and communicate state of a PR. Please familiarize yourself with them. Furthermore we are organizing issues in https://github.com/darwinia-network/darwinia/milestones[milestones]. Best way to get started is to a pick a ticket from the current milestone tagged https://github.com/darwinia-network/darwinia/issues?q=is%3Aissue+is%3Aopen+label%3AQ2-easy[`easy`] or https://github.com/darwinia-network/darwinia/issues?q=is%3Aissue+is%3Aopen+label%3AQ3-medium[`medium`] and get going or https://github.com/darwinia-network/darwinia/issues?q=is%3Aissue+is%3Aopen+label%3AX1-mentor[`mentor`] and get in contact with the mentor offering their support on that larger task.

== Releases

Declaring formal releases remains the prerogative of the project maintainer(s).

== Changes to this arrangement

This is an experiment and feedback is welcome! This document may also be subject to pull-requests or changes by contributors where you believe you have something valuable to add or change.

== Heritage

These contributing guidelines are modified from the "OPEN Open Source Project" guidelines for the Level project: https://github.com/Level/community/blob/master/CONTRIBUTING.md
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion frame/balances/kton/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ sp-std = { version = "2.0.0", default-features = false, git = "https://github.co

# darwinia
darwinia-support = { default-features = false, path = "../../support" }
darwinia-ring = { default-features = false, path = "../ring" }

[dev-dependencies]
sp-io = { version = "2.0.0", git = "https://github.com/paritytech/substrate.git", rev = "c2fccb36ffacd118fc3502aa93453580a07dc402" }
Expand All @@ -39,4 +40,4 @@ std = [
"darwinia-support/std",
]
# test
transfer-fee = ["std"]
with-fee = ["std"]
Loading

0 comments on commit 908aee0

Please sign in to comment.