CircleCI config.
This commit is contained in:
parent
eb1174ae97
commit
d2583f6d75
|
@ -0,0 +1,118 @@
|
||||||
|
version: 2.1
|
||||||
|
|
||||||
|
executors:
|
||||||
|
default:
|
||||||
|
description: Executor environment for building Rust crates.
|
||||||
|
docker:
|
||||||
|
- image: circleci/rust:1
|
||||||
|
|
||||||
|
commands:
|
||||||
|
update_toolchain:
|
||||||
|
description: Update the Rust toolchain to use for building.
|
||||||
|
parameters:
|
||||||
|
toolchain:
|
||||||
|
description: Rust toolchain to use. Overrides the default toolchain (stable) or any toolchain specified in the project via `rust-toolchain`.
|
||||||
|
type: string
|
||||||
|
default: ""
|
||||||
|
steps:
|
||||||
|
- run:
|
||||||
|
name: Update toolchain
|
||||||
|
command: |
|
||||||
|
test -z "<<parameters.toolchain>>" || echo "<<parameters.toolchain>>" >rust-toolchain
|
||||||
|
rustup show active-toolchain
|
||||||
|
- run:
|
||||||
|
name: Version information
|
||||||
|
command: |
|
||||||
|
rustup --version
|
||||||
|
rustc --version
|
||||||
|
cargo --version
|
||||||
|
|
||||||
|
build:
|
||||||
|
description: Build all targets of a Rust crate.
|
||||||
|
steps:
|
||||||
|
- run:
|
||||||
|
name: Calculate dependencies
|
||||||
|
command: |
|
||||||
|
rustc --version >rust-version
|
||||||
|
test -e Cargo.lock || cargo generate-lockfile
|
||||||
|
- restore_cache:
|
||||||
|
keys:
|
||||||
|
- v6-cargo-cache-{{arch}}-{{checksum "rust-version"}}-{{checksum "Cargo.lock"}}
|
||||||
|
- run:
|
||||||
|
name: Build all targets
|
||||||
|
command: cargo build --tests
|
||||||
|
- save_cache:
|
||||||
|
paths:
|
||||||
|
- /usr/local/cargo/registry
|
||||||
|
- target
|
||||||
|
key: v6-cargo-cache-{{arch}}-{{checksum "rust-version"}}-{{checksum "Cargo.lock"}}
|
||||||
|
|
||||||
|
check:
|
||||||
|
description: Check all targets of a Rust crate.
|
||||||
|
steps:
|
||||||
|
- run:
|
||||||
|
name: Calculate dependencies
|
||||||
|
command: test -e Cargo.lock || cargo generate-lockfile
|
||||||
|
- run:
|
||||||
|
name: Check all targets
|
||||||
|
command: |
|
||||||
|
if rustup component add clippy; then
|
||||||
|
cargo clippy --all --all-targets -- -Dwarnings
|
||||||
|
else
|
||||||
|
echo Skipping clippy
|
||||||
|
fi
|
||||||
|
|
||||||
|
test:
|
||||||
|
description: Run all tests of a Rust crate. Make sure to build first.
|
||||||
|
parameters:
|
||||||
|
release:
|
||||||
|
description: By default, the crate is build in debug mode without optimizations. Set this to true to compile in release mode.
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
steps:
|
||||||
|
- run:
|
||||||
|
name: Run all tests
|
||||||
|
command: cargo test
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
check:
|
||||||
|
description: Check a Rust crate.
|
||||||
|
parameters:
|
||||||
|
toolchain:
|
||||||
|
description: Rust toolchain to use. Overrides the default toolchain (stable) or any toolchain specified in the project via `rust-toolchain`.
|
||||||
|
type: string
|
||||||
|
default: ""
|
||||||
|
executor: default
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- update_toolchain:
|
||||||
|
toolchain: <<parameters.toolchain>>
|
||||||
|
- check
|
||||||
|
|
||||||
|
test:
|
||||||
|
description: Builds a Rust crate and runs all tests.
|
||||||
|
parameters:
|
||||||
|
toolchain:
|
||||||
|
description: Rust toolchain to use. Overrides the default toolchain (stable) or any toolchain specified in the project via `rust-toolchain`.
|
||||||
|
type: string
|
||||||
|
default: ""
|
||||||
|
executor: default
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- update_toolchain:
|
||||||
|
toolchain: <<parameters.toolchain>>
|
||||||
|
- build
|
||||||
|
- test
|
||||||
|
|
||||||
|
workflows:
|
||||||
|
Project:
|
||||||
|
jobs:
|
||||||
|
# - test:
|
||||||
|
# name: cargo test (stable)
|
||||||
|
# toolchain: stable
|
||||||
|
# - test:
|
||||||
|
# name: cargo test (beta)
|
||||||
|
# toolchain: beta
|
||||||
|
- test:
|
||||||
|
name: cargo test (nightly)
|
||||||
|
toolchain: nightly
|
|
@ -1,48 +1,48 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# Copyright 2015 The Rust Project Developers. See the COPYRIGHT
|
# Copyright 2015 The Rust Project Developers. See the COPYRIGHT
|
||||||
# file at the top-level directory of this distribution and at
|
# file at the top-level directory of this distribution and at
|
||||||
# http://rust-lang.org/COPYRIGHT.
|
# http://rust-lang.org/COPYRIGHT.
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||||
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||||
# option. This file may not be copied, modified, or distributed
|
# option. This file may not be copied, modified, or distributed
|
||||||
# except according to those terms.
|
# except according to those terms.
|
||||||
|
|
||||||
# A script to update the references for particular tests. The idea is
|
# A script to update the references for particular tests. The idea is
|
||||||
# that you do a run, which will generate files in the build directory
|
# that you do a run, which will generate files in the build directory
|
||||||
# containing the (normalized) actual output of the compiler. This
|
# containing the (normalized) actual output of the compiler. This
|
||||||
# script will then copy that output and replace the "expected output"
|
# script will then copy that output and replace the "expected output"
|
||||||
# files. You can then commit the changes.
|
# files. You can then commit the changes.
|
||||||
#
|
#
|
||||||
# If you find yourself manually editing a foo.stderr file, you're
|
# If you find yourself manually editing a foo.stderr file, you're
|
||||||
# doing it wrong.
|
# doing it wrong.
|
||||||
|
|
||||||
if [[ "$1" == "--help" || "$1" == "-h" || "$1" == "" || "$2" == "" ]]; then
|
if [[ "$1" == "--help" || "$1" == "-h" || "$1" == "" || "$2" == "" ]]; then
|
||||||
echo "usage: $0 <build-directory> <relative-path-to-rs-files>"
|
echo "usage: $0 <build-directory> <relative-path-to-rs-files>"
|
||||||
echo ""
|
echo ""
|
||||||
echo "For example:"
|
echo "For example:"
|
||||||
echo " $0 ../../../build/x86_64-apple-darwin/test/ui *.rs */*.rs"
|
echo " $0 ../../../build/x86_64-apple-darwin/test/ui *.rs */*.rs"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
MYDIR=$(dirname $0)
|
MYDIR=$(dirname $0)
|
||||||
|
|
||||||
BUILD_DIR="$1"
|
BUILD_DIR="$1"
|
||||||
shift
|
shift
|
||||||
|
|
||||||
while [[ "$1" != "" ]]; do
|
while [[ "$1" != "" ]]; do
|
||||||
STDERR_NAME="${1/%.rs/.stderr}"
|
STDERR_NAME="${1/%.rs/.stderr}"
|
||||||
STDOUT_NAME="${1/%.rs/.stdout}"
|
STDOUT_NAME="${1/%.rs/.stdout}"
|
||||||
shift
|
shift
|
||||||
if [ -f $BUILD_DIR/$STDOUT_NAME ] && \
|
if [ -f $BUILD_DIR/$STDOUT_NAME ] && \
|
||||||
! (diff $BUILD_DIR/$STDOUT_NAME $MYDIR/$STDOUT_NAME >& /dev/null); then
|
! (diff $BUILD_DIR/$STDOUT_NAME $MYDIR/$STDOUT_NAME >& /dev/null); then
|
||||||
echo updating $MYDIR/$STDOUT_NAME
|
echo updating $MYDIR/$STDOUT_NAME
|
||||||
cp $BUILD_DIR/$STDOUT_NAME $MYDIR/$STDOUT_NAME
|
cp $BUILD_DIR/$STDOUT_NAME $MYDIR/$STDOUT_NAME
|
||||||
fi
|
fi
|
||||||
if [ -f $BUILD_DIR/$STDERR_NAME ] && \
|
if [ -f $BUILD_DIR/$STDERR_NAME ] && \
|
||||||
! (diff $BUILD_DIR/$STDERR_NAME $MYDIR/$STDERR_NAME >& /dev/null); then
|
! (diff $BUILD_DIR/$STDERR_NAME $MYDIR/$STDERR_NAME >& /dev/null); then
|
||||||
echo updating $MYDIR/$STDERR_NAME
|
echo updating $MYDIR/$STDERR_NAME
|
||||||
cp $BUILD_DIR/$STDERR_NAME $MYDIR/$STDERR_NAME
|
cp $BUILD_DIR/$STDERR_NAME $MYDIR/$STDERR_NAME
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
Loading…
Reference in New Issue