👷 Add publishing crates.io #900
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
# .github/workflows/test.yml | |
name: Test | |
on: | |
push: | |
branches: | |
- main | |
- release/** | |
- ci* | |
pull_request: | |
branches: | |
- main | |
- release/** | |
jobs: | |
test: | |
name: test ${{ matrix.target }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- target: x86_64-apple-darwin | |
os: macos-latest | |
- target: x86_64-pc-windows-msvc | |
os: windows-latest | |
- target: x86_64-unknown-linux-musl | |
os: ubuntu-latest | |
runs-on: ${{matrix.os}} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup | |
uses: ./.github/actions/setup | |
- name: Test | |
run: just test --features=disable_icmp_ping | |
env: | |
USE_CROSS: ${{ matrix.os == 'ubuntu-latest' }} | |
- name: Setup upterm session for debugging | |
uses: lhotari/action-upterm@v1 | |
if: ${{ failure() }} | |
with: | |
limit-access-to-actor: true | |
wait-timeout-minutes: 5 | |
cleanliness: | |
name: cleanliness ${{ matrix.target }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- target: x86_64-apple-darwin | |
os: macos-latest | |
- target: x86_64-pc-windows-msvc | |
os: windows-latest | |
- target: x86_64-unknown-linux-musl | |
os: ubuntu-latest | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup | |
uses: ./.github/actions/setup | |
- name: Install Rust Toolchain Components | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
components: rustfmt, clippy | |
target: ${{ matrix.target }} | |
- name: Clippy & Rustfmt | |
run: just cleanliness | |
env: | |
USE_CROSS: ${{ matrix.os == 'ubuntu-latest' }} | |
compatibility: | |
name: compatibility ${{ matrix.target }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- target: x86_64-pc-windows-msvc | |
os: windows-latest | |
archive: zip | |
- target: x86_64-pc-windows-gnu | |
os: windows-latest | |
archive: zip | |
- target: aarch64-pc-windows-msvc | |
os: windows-latest | |
archive: zip | |
- target: i686-pc-windows-msvc | |
os: windows-latest | |
archive: zip | |
# - target: i686-pc-windows-gnu # error: linker `i686-w64-mingw32-gcc` not found | |
# os: windows-latest | |
# archive: zip | |
- target: x86_64-apple-darwin | |
os: macos-latest | |
archive: zip | |
- target: aarch64-apple-darwin | |
os: macos-latest | |
archive: zip | |
- target: aarch64-unknown-linux-gnu | |
os: ubuntu-latest | |
archive: tar.gz tar.xz tar.zst | |
- target: aarch64-unknown-linux-musl | |
os: ubuntu-latest | |
archive: tar.gz tar.xz tar.zst | |
# - target: arch64-unknown-linux-musl | |
# archive: tar.gz tar.xz tar.zst | |
- target: x86_64-unknown-linux-musl | |
os: ubuntu-latest | |
archive: tar.gz tar.xz tar.zst | |
- target: x86_64-unknown-linux-gnu | |
os: ubuntu-latest | |
archive: tar.gz tar.xz tar.zst | |
- target: arm-unknown-linux-musleabi | |
os: ubuntu-latest | |
archive: tar.gz tar.xz tar.zst | |
- target: arm-unknown-linux-musleabihf | |
os: ubuntu-latest | |
archive: tar.gz tar.xz tar.zst | |
# - target: mips-unknown-linux-musl | |
# archive: tar.gz tar.xz tar.zst | |
# - target: mips-unknown-linux-musl | |
# archive: tar.gz tar.xz tar.zst | |
# - target: mips64-unknown-linux-muslabi64 | |
# archive: tar.gz tar.xz tar.zst | |
- target: aarch64-linux-android | |
os: ubuntu-latest | |
archive: tar.gz tar.xz tar.zst | |
# - target: x86_64-unknown-freebsd | |
# os: ubuntu-latest | |
# archive: tar.gz tar.xz tar.zst | |
# - target: x86_64-unknown-netbsd | |
# os: ubuntu-latest | |
# archive: tar.gz tar.xz tar.zst | |
# - target: wasm32-unknown-emscripten | |
# archive: tar.gz tar.xz tar.zst | |
runs-on: ${{matrix.os}} | |
env: | |
RUSTFLAGS: -D warnings | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup | |
uses: ./.github/actions/setup | |
- name: Check | |
run: just check --target ${{ matrix.target }} | |
env: | |
USE_CROSS: ${{ matrix.os == 'ubuntu-latest' }} | |