libc-print 0.3.0

println! and eprintln! macros on libc without stdlib
Documentation
name: Rust

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

env:
  CARGO_TERM_COLOR: always

jobs:
  build:
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, macOS-latest, windows-latest]
        job: [test, miri]
    steps:
    - uses: actions/checkout@v3
    - name: Build
      run: cargo build --verbose
    - name: Run tests
      run: cargo test --lib --verbose
    - name: Install miri
      if: matrix.job == 'miri'
      shell: bash
      run: |
        rustup toolchain install nightly
        rustup component add --toolchain=nightly miri
        echo CARGO_SUBCOMMAND='+nightly miri' >> $GITHUB_ENV
    - name: Run example with RUSTFLAGS=-nostartfiles (linux)
      if: matrix.os == 'ubuntu-latest'
      run: |
        cargo ${CARGO_SUBCOMMAND:-} run --example writeln -- -C link_args="-nostartfiles" --cfg nostartfiles
    - name: Run example with RUSTFLAGS=-nostartfiles (mac)
      if: matrix.os == 'macOS-latest'
      run: |
        cargo ${CARGO_SUBCOMMAND:-} run --example writeln -- -C link_args="-e __start -nostartfiles" --cfg nostartfiles
    - name: Run example with RUSTFLAGS=-nostartfiles (windows)
      if: matrix.os == 'windows-latest'
      shell: bash
      run: |
        cargo ${CARGO_SUBCOMMAND:-} run --example writeln -- \
          --cfg nostartfiles \
          -C link-args="/ENTRY:_start /SUBSYSTEM:console /DEFAULTLIB:msvcrt /DEFAULTLIB:ucrt /DEFAULTLIB:vcruntime"