Skip to content

ci: switch to GitHub Actions #643

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

Merged
merged 2 commits into from
Feb 2, 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
173 changes: 173 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
name: ci
on:
pull_request:
push:
branches:
- master
schedule:
- cron: '00 01 * * *'
jobs:
test:
name: test
env:
# For some builds, we use cross to test on 32-bit and big-endian
# systems.
CARGO: cargo
# When CARGO is set to CROSS, TARGET is set to `--target matrix.target`.
TARGET:
runs-on: ${{ matrix.os }}
strategy:
matrix:
build:
- pinned
- stable
- stable-32
- stable-mips
- beta
- nightly
- macos
- win-msvc
- win-gnu
include:
- build: pinned
os: ubuntu-18.04
rust: 1.28.0
- build: stable
os: ubuntu-18.04
rust: stable
- build: stable-32
os: ubuntu-18.04
rust: stable
target: i686-unknown-linux-gnu
- build: stable-mips
os: ubuntu-18.04
rust: stable
target: mips64-unknown-linux-gnuabi64
- build: beta
os: ubuntu-18.04
rust: beta
- build: nightly
os: ubuntu-18.04
rust: nightly
- build: macos
os: macos-latest
rust: stable
- build: win-msvc
os: windows-2019
rust: stable
- build: win-gnu
os: windows-2019
rust: stable-x86_64-gnu
steps:

- name: Checkout repository
uses: actions/checkout@v1
with:
fetch-depth: 1

- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
profile: minimal
override: true

- name: Install and configure Cross
if: matrix.target != ''
run: |
# FIXME: to work around bugs in latest cross release, install master.
# See: https://github.com/rust-embedded/cross/issues/357
cargo install --git https://github.com/rust-embedded/cross
echo "::set-env name=CARGO::cross"
echo "::set-env name=TARGET::--target ${{ matrix.target }}"

- name: Show command used for Cargo
run: |
echo "cargo command is: ${{ env.CARGO }}"
echo "target flag is: ${{ env.TARGET }}"

- name: Show CPU info for debugging
if: matrix.os == 'ubuntu-18.04'
run: lscpu

- name: Basic build
run: ${{ env.CARGO }} build --verbose $TARGET

- name: Build docs
run: ${{ env.CARGO }} doc --verbose $TARGET

# Our dev dependencies evolve more rapidly than we'd like, so only run
# tests when we aren't pinning the Rust version.
#
# Also, our "full" test suite does quite a lot of work, so we only run it
# on one build. Otherwise, we just run the "default" set of tests.
- name: Run subset of tests
if: matrix.build != 'pinned' && matrix.build != 'stable'
run: ${{ env.CARGO }} test --verbose --test default $TARGET

- name: Run full test suite
if: matrix.build == 'stable'
# 'stable' is Linux only, so we have bash.
run: ./test

- name: Run randomized tests against regexes from the wild
if: matrix.build == 'stable'
run: |
# We run the tests in release mode since it winds up being faster.
RUST_REGEX_RANDOM_TEST=1 ${{ env.CARGO }} test --release --verbose --test crates-regex $TARGET

- name: Build regex-syntax docs
if: matrix.build != 'pinned'
run: |
${{ env.CARGO }} doc --verbose --manifest-path regex-syntax/Cargo.toml $TARGET

- name: Run subset of regex-syntax tests
if: matrix.build != 'pinned' && matrix.build != 'stable'
run: |
${{ env.CARGO }} test --verbose --manifest-path regex-syntax/Cargo.toml $TARGET

- name: Run full regex-syntax test suite
if: matrix.build == 'stable'
run: |
# 'stable' is Linux only, so we have bash.
cd regex-syntax
./test

- name: Run regex-capi tests
if: matrix.build == 'stable'
run: |
# 'stable' is Linux only, so we have bash.
cd regex-capi
./test

- if: matrix.build == 'nightly'
name: Compile regex-debug
run: |
${{ env.CARGO }} build --verbose --manifest-path regex-debug/Cargo.toml $TARGET

- if: matrix.build == 'nightly'
name: Run benchmarks as tests
run: |
cd bench
./run rust --no-run --verbose

rustfmt:
name: rustfmt
runs-on: ubuntu-18.04
steps:
- name: Checkout repository
uses: actions/checkout@v1
with:
fetch-depth: 1
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
components: rustfmt
- name: Install rustfmt
run: rustup component add rustfmt
- name: Check formatting
run: |
cargo fmt --all -- --check
29 changes: 0 additions & 29 deletions .travis.yml

This file was deleted.

6 changes: 1 addition & 5 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,7 @@ finite automata and guarantees linear time matching on all inputs.
"""
categories = ["text-processing"]
autotests = false
exclude = ["/.travis.yml", "/appveyor.yml", "/ci/*", "/scripts/*"]

[badges]
travis-ci = { repository = "rust-lang/regex" }
appveyor = { repository = "rust-lang-libs/regex" }
exclude = ["/scripts/*", "/.github/*"]

[workspace]
members = [
Expand Down
4 changes: 1 addition & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,7 @@ linear time with respect to the size of the regular expression and search text.
Much of the syntax and implementation is inspired
by [RE2](https://github.com/google/re2).

[![Build status](https://travis-ci.com/rust-lang/regex.svg?branch=master)](https://travis-ci.com/rust-lang/regex)
[![Build status](https://ci.appveyor.com/api/projects/status/github/rust-lang/regex?svg=true)](https://ci.appveyor.com/project/rust-lang-libs/regex)
[![Coverage Status](https://coveralls.io/repos/github/rust-lang/regex/badge.svg?branch=master)](https://coveralls.io/github/rust-lang/regex?branch=master)
[![Build status](https://github.com/rust-lang/regex/workflows/ci/badge.svg)](https://github.com/rust-lang/regex/actions)
[![](https://meritbadge.herokuapp.com/regex)](https://crates.io/crates/regex)
[![Rust](https://img.shields.io/badge/rust-1.28.0%2B-blue.svg?maxAge=3600)](https://github.com/rust-lang/regex)

Expand Down
19 changes: 0 additions & 19 deletions appveyor.yml

This file was deleted.

25 changes: 0 additions & 25 deletions ci/after_success.sh

This file was deleted.

44 changes: 0 additions & 44 deletions ci/run-kcov

This file was deleted.

18 changes: 0 additions & 18 deletions ci/run-shootout-test

This file was deleted.

Loading