diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..4d7b328a0 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,68 @@ +name: Continuous integration + +on: + push: + +jobs: + rustfmt: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2.4.0 + - uses: actions-rs/toolchain@v1.0.7 + with: + profile: minimal + override: true + components: rustfmt + - name: Check formatting + run: cargo fmt -- --check + check-clippy: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2.4.0 + - uses: actions-rs/toolchain@v1.0.7 + with: + profile: minimal + target: wasm32-unknown-unknown + override: true + components: clippy + # we don't check the lockfile in; this is needed for cache restoration/saving + - uses: actions-rs/cargo@v1.0.3 + with: + command: generate-lockfile + - uses: Swatinem/rust-cache@v1.3.0 + with: + # change this to invalidate cache for this job + key: v0 + # otherwise the include_bytes! macro fails because this file hasn't been generated + - run: touch examples/fvm/fvm_example_actor.wasm + shell: bash + - name: Run cargo clippy + run: cargo clippy --all --all-targets + shell: bash + build: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2.4.0 + - uses: actions/setup-go@v2 + with: + go-version: 1.17.3 + - uses: actions-rs/toolchain@v1.0.7 + with: + target: wasm32-unknown-unknown + override: true + # we don't check the lockfile in; this is needed for cache restoration/saving + - uses: actions-rs/cargo@v1.0.3 + with: + command: generate-lockfile + - uses: protocol/cache-go-action@v1 + - uses: Swatinem/rust-cache@v1.3.0 + with: + # change this to invalidate cache for this job + key: v0 + - uses: actions-rs/cargo@v1.0.3 + with: + command: install + args: cbindgen + - name: Build on wasm32-unknown-unknown + run: make RUSTFLAGS="-D warnings" + shell: bash