Solve proc-macro build issue on nightly, see https://github.com/rust-… #529
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
tags: | |
- 'v*.*.*' | |
jobs: | |
style: | |
name: Check Style | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v1 | |
- name: Install rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
components: rustfmt | |
profile: minimal | |
override: true | |
- name: cargo fmt -- --check | |
uses: actions-rs/cargo@v1 | |
with: | |
command: fmt | |
args: --all -- --check | |
test: | |
name: Test | |
needs: [style] | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
build: [stable, beta, nightly] | |
include: | |
- build: beta | |
rust: beta | |
- build: nightly | |
rust: nightly | |
benches: true | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v1 | |
- name: Install rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.rust || 'stable' }} | |
profile: minimal | |
override: true | |
- name: Build debug | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: ${{ matrix.features }} | |
- name: Test | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: ${{ matrix.features }} | |
- name: Test all benches | |
if: matrix.benches | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --benches ${{ matrix.features }} | |
# Publish latest and releases (e.g. tags with semver) on dockerhub. | |
docker-push-release-latest: | |
needs: [test] | |
runs-on: ubuntu-latest | |
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/master' | |
steps: | |
- uses: actions/checkout@master | |
- name: Publish to Registry | |
uses: elgohr/Publish-Docker-Github-Action@master | |
with: | |
name: federicoponzi/horust | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
tag_names: true | |
## This will create a new release in github/releases page. It will run only for tags with semver format. | |
create-release: | |
name: deploy | |
needs: [test] | |
if: startsWith(github.ref, 'refs/tags/') | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
target: [ aarch64-unknown-linux-gnu, armv7-unknown-linux-gnueabihf, i686-unknown-linux-gnu, i686-unknown-linux-musl,x86_64-unknown-linux-gnu,x86_64-unknown-linux-musl] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v1 | |
- name: Install rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
profile: minimal | |
override: true | |
target: ${{ matrix.target }} | |
- name: Build target | |
uses: actions-rs/cargo@v1 | |
with: | |
use-cross: true | |
command: build | |
args: --release --target ${{ matrix.target }} | |
- name: Package | |
shell: bash | |
run: | | |
#strip target/${{ matrix.target }}/release/horust | |
cd target/${{ matrix.target }}/release | |
tar czvf ../../../horust-${{ matrix.target }}.tar.gz horust | |
cd - | |
- name: Publish | |
uses: softprops/action-gh-release@v1 | |
# TODO: if any of the build step fails, the release should be deleted. | |
with: | |
files: 'horust*' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |