name: Rust Master
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
env:
CARGO_TERM_COLOR: always
jobs:
unix_like:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04, macos-latest, windows-latest]
include:
- os: ubuntu-20.04
build_name: pa2
upload_name: pa2
os_name: Ubuntu 20.04
- os: macos-latest
build_name: pa2
upload_name: pa2
os_name: MacOS
- os: windows-latest
build_name: pa2.exe
upload_name: pa2.exe
os_name: Windows
steps:
- uses: actions/checkout@v2
- name: Libs
if: (matrix.os == 'ubuntu-20.04') || (matrix.os == 'macos-latest')
run: sudo apt-get install -y bats || true
- name: Build
run: cargo build --verbose --release
- name: Tests
run: cargo test
- name: Bats
if: (matrix.os == 'ubuntu-20.04') || (matrix.os == 'macos-latest')
run: if bats --help; then export PATH=$PATH:./target/release; bats ./bats-tests/pipeawesome.bats; else true; fi
- name: Release
id: release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}-${{ matrix.os }}
release_name: "Release ${{ github.ref }}: ${{ matrix.os_name }}"
draft: true
- name: Upload Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.release.outputs.upload_url }}
asset_path: target/release/${{ matrix.build_name }}
asset_name: ${{ matrix.upload_name }}
asset_content_type: application/x-executable