Skip to content

Commit

Permalink
Migrate CI to Github Actions
Browse files Browse the repository at this point in the history
  • Loading branch information
gnzlbg committed Nov 28, 2019
1 parent 181c3ad commit 2d89934
Show file tree
Hide file tree
Showing 6 changed files with 210 additions and 173 deletions.
181 changes: 172 additions & 9 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,180 @@
name: CI

on: [push]
on:
push:
branches:
- master
pull_request:
branches:
- master

jobs:
build:
style:
name: Check Style
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Install Rust
run: rustup update nightly && rustup default nightly
- run: ci/style.sh

docs:
name: Build Documentation
needs: [style]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Install Rust
run: rustup update nightly && rustup default nightly
- run: ci/dox.sh
env:
CI: 1
- name: Publish documentation
run: |
cd target/doc
git init
git add .
git -c user.name='ci' -c user.email='ci' commit -m init
git push -f -q https://git:${{ secrets.github_token }}@github.com/${{ github.repository }} HEAD:gh-pages
if: github.event_name == 'push' && github.event.ref == 'refs/heads/master'

benches:
name: Build benchmarks
needs: [style]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Install Rust
run: rustup update ${{ matrix.rust }} && rustup default ${{ matrix.rust }}
- name: Benchmarks
run: |
cargo test --bench roundtrip
cargo test --features=alloc_trait --bench roundtrip
test:
needs: [style]
name: Test
runs-on: ${{ matrix.os }}
strategy:
matrix:
target:
- aarch64-unknown-linux-gnu
- x86_64-apple-darwin
- x86_64-unknown-linux-gnu
include:
# - target: aarch64-linux-android
# os: ubuntu-latest
# rust: nightly
# no_jemalloc_tests: 1
- target: aarch64-unknown-linux-gnu
os: ubuntu-latest
rust: nightly
no_jemalloc_tests: 1
# - target: arm-linux-androideabi
# os: ubuntu-latest
# rust: nightly
# no_jemalloc_tests: 1
# - target: arm-unknown-linux-gnueabi
# os: ubuntu-latest
# rust: nightly
# no_jemalloc_tests: 1
# - target: armv7-unknown-linux-gnueabihf
# os: ubuntu-latest
# rust: nightly
# no_jemalloc_tests: 1
# - target: i586-unknown-linux-gnu
# os: ubuntu-latest
# rust: nightly
# - target: i686-pc-windows-gnu
# os: windows-latest
# rust: nightly
# - target: i686-pc-windows-msvc
# os: windows-latest
# rust: nightly
# - target: i686-unknown-linux-gnu
# os: ubuntu-latest
# rust: nightly
# - target: mips-unknown-linux-gnu
# os: ubuntu-latest
# rust: nightly
# no_jemalloc_tests: 1
# - target: mips64-unknown-linux-gnuabi64
# os: ubuntu-latest
# rust: nightly
# no_jemalloc_tests: 1
# - target: mips64el-unknown-linux-gnuabi64
# os: ubuntu-latest
# rust: nightly
# no_jemalloc_tests: 1
# - target: mipsel-unknown-linux-gnu
# os: ubuntu-latest
# rust: nightly
# no_jemalloc_tests: 1
# - target: s390x-unknown-linux-gnu
# os: ubuntu-latest
# rust: nightly
# no_jemalloc_tests: 1
- target: x86_64-apple-darwin
os: macos-latest
rust: nightly
# - target: x86_64-apple-darwin
# os: macos-latest
# rust: beta
# - target: x86_64-apple-darwin
# os: macos-latest
# rust: stable
# - target: x86_64-linux-android
# os: ubuntu-latest
# rust: nightly
- target: x86_64-unknown-linux-gnu
os: ubuntu-latest
rust: nightly
# - target: x86_64-unknown-linux-gnu
# os: ubuntu-latest
# rust: nightly
# valgrind: 1
- target: x86_64-unknown-linux-gnu
os: ubuntu-latest
rust: nightly
jemalloc-dev: 1
valgrind: 1
# - target: x86_64-unknown-linux-gnu
# os: ubuntu-latest
# rust: beta
- target: x86_64-unknown-linux-gnu
os: ubuntu-latest
rust: stable

steps:
- uses: actions/checkout@v1
- name: Run a one-line script
run: echo Hello, world!
- name: Run a multi-line script
- uses: actions/checkout@master
- name: Install Rust (rustup)
run: rustup update ${{ matrix.rust }} --no-self-update && rustup default ${{ matrix.rust }}
if: matrix.os != 'macos-latest'
- name: Install Rust (macos)
run: |
echo Add other actions to build,
echo test, and deploy your project.
curl https://sh.rustup.rs | sh -s -- -y --default-toolchain nightly
echo "##[add-path]$HOME/.cargo/bin"
if: matrix.os == 'macos-latest'
- run: rustup target add ${{ matrix.target }}
- run: cargo generate-lockfile

# Configure some env vars based on matrix configuration
- run: echo "##[set-env name=NO_JEMALLOC_TESTS]1"
if: matrix.no_jemalloc_tests != ''
- run: echo "##[set-env name=JEMALLOC_SYS_GIT_DEV_BRANCH]1"
if: matrix.jemalloc-dev != ''
- run: echo "##[set-env name=VALGRIND]1"
if: matrix.valgrind != ''

# Windows & OSX go straight to `run.sh` ...
- run: ./ci/run.sh
shell: bash
if: matrix.os != 'ubuntu-latest'
env:
TARGET: ${{ matrix.target }}

# ... while Linux goes to `run-docker.sh`
- run: ./ci/run-docker.sh ${{ matrix.target }}
shell: bash
if: "matrix.os == 'ubuntu-latest'"
env:
TARGET: ${{ matrix.target }}
164 changes: 0 additions & 164 deletions .travis.yml

This file was deleted.

7 changes: 7 additions & 0 deletions ci/docker/aarch64-unknown-linux-gnu/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
FROM ubuntu:19.04
RUN apt-get update && apt-get install -y --no-install-recommends \
gcc libc6-dev ca-certificates \
gcc-aarch64-linux-gnu libc6-dev-arm64-cross qemu-user
ENV CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc \
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER="qemu-aarch64 -L /usr/aarch64-linux-gnu" \
PATH=$PATH:/rust/bin
6 changes: 6 additions & 0 deletions ci/docker/x86_64-unknown-linux-gnu/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
FROM ubuntu:19.04
RUN apt-get update
RUN apt-get install -y --no-install-recommends \
gcc libc6-dev ca-certificates valgrind

ENV PATH=$PATH:/rust/bin
1 change: 1 addition & 0 deletions ci/dox.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ export RUSTDOCFLAGS="--cfg jemallocator_docs"
cargo doc --features alloc_trait
cargo doc -p jemalloc-sys
cargo doc -p jemalloc-ctl
cargo doc -p jemallocator-global
24 changes: 24 additions & 0 deletions ci/style.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/usr/bin/env sh

set -ex

if rustup component add rustfmt-preview ; then
command -v rustfmt
rustfmt -V
cargo fmt --all -- --check
fi

if rustup component add clippy-preview ; then
cargo clippy -V
cargo clippy -p jemalloc-sys -- -D clippy::pedantic
cargo clippy -p jemallocator -- -D clippy::pedantic
cargo clippy -p jemallocator-global -- -D clippy::pedantic
cargo clippy -p jemalloc-ctl -- -D clippy::pedantic
fi

if shellcheck --version ; then
shellcheck ci/*.sh
else
echo "shellcheck not found"
exit 1
fi

0 comments on commit 2d89934

Please sign in to comment.