Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hotfox/fix ci #260

Merged
merged 6 commits into from
Feb 14, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It takes quite long time, does it do env clean before each stage? I mean, does every stage require rebuilding?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I cache target to solve this issue.

- 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