Skip to content
Snippets Groups Projects
Unverified Commit f932a3cc authored by LinFeng Qian's avatar LinFeng Qian Committed by GitHub
Browse files

Merge pull request #53 from macisamuele/maci-build-and-test-on-all-os

Define github actions workflows and publish binaries artifacts
parents e07609cf 2a2018de
No related branches found
No related tags found
No related merge requests found
[target.x86_64-pc-windows-msvc]
rustflags = ["-Ctarget-feature=+crt-static", "-Zunstable-options"]
rustflags = ["-Ctarget-feature=+crt-static"]
\ No newline at end of file
name: ci
on:
pull_request: {}
push: {}
release:
types: [published]
jobs:
fmt:
name: Format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
override: true
components: rustfmt
- uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
override: true
components: clippy
- uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --all-targets --all-features -- -F warnings
test:
name: Unitest (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
override: true
components: clippy
- uses: actions-rs/cargo@v1
env:
RUST_BACKTRACE: full
RUSTFLAGS: -F warnings
with:
command: test
args: --all --all-features
- name: "Ensure Cargo.lock is not modified"
run: git diff --exit-code Cargo.lock
build-release:
name: Build release Executable (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-latest
target: x86_64-unknown-linux-musl
- os: macos-latest
target: x86_64-apple-darwin
- os: windows-latest
target: x86_64-pc-windows-msvc
env:
BINARY_EXTENSION: ${{ endsWith(matrix.target, '-msvc') && '.exe' || '' }}
PATH_BINARY: ${{ github.workspace }}/target/release/simple-http-server${{ endsWith(matrix.target, '-msvc') && '.exe' || '' }}
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
override: true
components: clippy
target: ${{ matrix.target }}
- uses: actions-rs/cargo@v1
with:
command: build
args: --release --bin simple-http-server --locked
- uses: actions/upload-artifact@v2
with:
name: ${{ matrix.target }}-simple-http-server${{ env.BINARY_EXTENSION }}
path: ${{ env.PATH_BINARY }}
- name: Evaluate shasum
run: echo -n $(shasum -ba 256 ${{ env.PATH_BINARY }} | cut -d " " -f 1) > ${{ env.PATH_BINARY }}.sha256
- uses: actions/upload-artifact@v2
with:
name: ${{ matrix.target }}-simple-http-server.sha256
path: ${{ env.PATH_BINARY }}.sha256
- name: '[Optional] Publish Artifact'
if: ${{ github.event_name == 'release' }}
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.PATH_BINARY }}
asset_name: ${{ matrix.target }}-simple-http-server${{ env.BINARY_EXTENSION }}
tag: ${{ github.ref }}
overwrite: true
- name: '[Optional] Publish Artifact (shasum)'
if: ${{ github.event_name == 'release' }}
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.PATH_BINARY }}.sha256
asset_name: ${{ matrix.target }}-simple-http-server${{ env.BINARY_EXTENSION }}.sha256
tag: ${{ github.ref }}
overwrite: true
......@@ -9,7 +9,6 @@ script:
stages:
- Check
- Clippy
- Example
- Test
jobs:
include:
......@@ -21,10 +20,6 @@ jobs:
name: Clippy
script:
- make clippy
- stage: Example
name: Example
script:
- make example
- stage: Test
name: Unitest
script:
......
......@@ -2,13 +2,11 @@ fmt:
cargo fmt --all -- --check
clippy:
RUSTFLAGS='-F warnings' cargo clippy --all --tests --all-features
example:
cargo build --examples
cargo clippy --all --tests --all-features -- -F warnings
test: export RUST_BACKTRACE := full
test:
RUSTFLAGS='-F warnings' RUST_BACKTRACE=full cargo test --all --all-features
RUSTFLAGS='-F warnings' cargo test --all --all-features
ci: fmt clippy example test
git diff --exit-code Cargo.lock
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment