Upgrade all dependencies #63
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: Continuous integration | |
on: | |
push: | |
branches: | |
- "**" | |
tags-ignore: | |
- "omegasort-*" | |
pull_request: | |
env: | |
CRATE_NAME: omegasort | |
RUST_BACKTRACE: 1 | |
jobs: | |
test: | |
name: Test - ${{ matrix.platform.os_name }} with rust ${{ matrix.toolchain }} | |
runs-on: ${{ matrix.platform.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
platform: | |
- os_name: FreeBSD-x86_64 | |
os: ubuntu-20.04 | |
target: x86_64-unknown-freebsd | |
bin: omegasort | |
name: omegasort-FreeBSD-x86_64.tar.gz | |
skip_tests: true | |
- os_name: Linux-x86_64 | |
os: ubuntu-20.04 | |
target: x86_64-unknown-linux-musl | |
bin: omegasort | |
name: omegasort-Linux-x86_64-musl.tar.gz | |
- os_name: Linux-aarch64 | |
os: ubuntu-20.04 | |
target: aarch64-unknown-linux-musl | |
bin: omegasort | |
name: omegasort-Linux-aarch64-musl.tar.gz | |
- os_name: Linux-arm | |
os: ubuntu-20.04 | |
target: arm-unknown-linux-musleabi | |
bin: omegasort | |
name: omegasort-Linux-arm-musl.tar.gz | |
- os_name: Linux-i686 | |
os: ubuntu-20.04 | |
target: i686-unknown-linux-musl | |
bin: omegasort | |
name: omegasort-Linux-i686-musl.tar.gz | |
- os_name: Linux-powerpc | |
os: ubuntu-20.04 | |
target: powerpc-unknown-linux-gnu | |
bin: omegasort | |
name: omegasort-Linux-powerpc-gnu.tar.gz | |
- os_name: Linux-powerpc64 | |
os: ubuntu-20.04 | |
target: powerpc64-unknown-linux-gnu | |
bin: omegasort | |
name: omegasort-Linux-powerpc64-gnu.tar.gz | |
- os_name: Linux-powerpc64le | |
os: ubuntu-20.04 | |
target: powerpc64le-unknown-linux-gnu | |
bin: omegasort | |
name: omegasort-Linux-powerpc64le.tar.gz | |
- os_name: Linux-riscv64 | |
os: ubuntu-20.04 | |
target: riscv64gc-unknown-linux-gnu | |
bin: omegasort | |
name: omegasort-Linux-riscv64gc-gnu.tar.gz | |
- os_name: Linux-s390x | |
os: ubuntu-20.04 | |
target: s390x-unknown-linux-gnu | |
bin: omegasort | |
name: omegasort-Linux-s390x-gnu.tar.gz | |
- os_name: NetBSD-x86_64 | |
os: ubuntu-20.04 | |
target: x86_64-unknown-netbsd | |
bin: omegasort | |
name: omegasort-NetBSD-x86_64.tar.gz | |
skip_tests: true | |
- os_name: Windows-aarch64 | |
os: windows-latest | |
target: aarch64-pc-windows-msvc | |
bin: omegasort.exe | |
name: omegasort-Windows-aarch64.zip | |
skip_tests: true | |
- os_name: Windows-i686 | |
os: windows-latest | |
target: i686-pc-windows-msvc | |
bin: omegasort.exe | |
name: omegasort-Windows-i686.zip | |
- os_name: Windows-x86_64 | |
os: windows-latest | |
target: x86_64-pc-windows-msvc | |
bin: omegasort.exe | |
name: omegasort-Windows-x86_64.zip | |
- os_name: macOS-x86_64 | |
os: macOS-latest | |
target: x86_64-apple-darwin | |
bin: omegasort | |
name: omegasort-Darwin-x86_64.tar.gz | |
- os_name: macOS-aarch64 | |
os: macOS-latest | |
target: aarch64-apple-darwin | |
bin: omegasort | |
name: omegasort-Darwin-aarch64.tar.gz | |
skip_tests: true | |
toolchain: | |
- stable | |
- beta | |
- nightly | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Cache cargo & target directories | |
uses: Swatinem/rust-cache@v2 | |
- name: Build binary | |
uses: houseabsolute/actions-rust-cross@v0 | |
with: | |
command: "build" | |
target: ${{ matrix.platform.target }} | |
toolchain: ${{ matrix.toolchain }} | |
args: "--locked --release" | |
strip: true | |
- name: Run tests | |
uses: houseabsolute/actions-rust-cross@v0 | |
with: | |
command: "test" | |
target: ${{ matrix.platform.target }} | |
toolchain: ${{ matrix.toolchain }} | |
args: "--locked --release" | |
if: ${{ !matrix.platform.skip_tests }} | |
- name: Package as archive | |
shell: bash | |
run: | | |
cd target/${{ matrix.platform.target }}/release | |
if [[ "${{ matrix.platform.os }}" == "windows-latest" ]]; then | |
7z a ../../../${{ matrix.platform.name }} ${{ matrix.platform.bin }} | |
else | |
tar czvf ../../../${{ matrix.platform.name }} ${{ matrix.platform.bin }} | |
fi | |
cd - | |
if: | | |
matrix.toolchain == 'stable' && | |
( startsWith( github.ref, 'refs/tags/v' ) || | |
github.ref == 'refs/tags/test-release' ) | |
- name: Publish release artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: omegasort-${{ matrix.platform.os_name }} | |
path: "omegasort*" | |
if: matrix.toolchain == 'stable' && github.ref == 'refs/tags/test-release' | |
- name: Generate SHA-256 | |
run: shasum -a 256 ${{ matrix.platform.name }} | |
if: | | |
matrix.toolchain == 'stable' && | |
matrix.platform.os == 'macOS-latest' && | |
( startsWith( github.ref, 'refs/tags/v' ) || | |
github.ref == 'refs/tags/test-release' ) | |
- name: Publish GitHub release | |
uses: softprops/action-gh-release@v1 | |
with: | |
draft: true | |
files: "omegasort*" | |
body_path: Changes.md | |
if: matrix.toolchain == 'stable' && startsWith( github.ref, 'refs/tags/v' ) |