Skip to content

Commit

Permalink
Updating the repo to make it usable again
Browse files Browse the repository at this point in the history
 * CI is fixed, deprecated actions-rs were removed
 * More CI targets added
 * MSRV is set to 1.67.0
 * New cargo and clippy lints fixed
  • Loading branch information
svartalf committed Mar 31, 2024
1 parent ecf28eb commit 554b306
Show file tree
Hide file tree
Showing 7 changed files with 248 additions and 144 deletions.
284 changes: 203 additions & 81 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,132 +12,254 @@ jobs:
- macOS-latest
- windows-latest
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
uses: dtolnay/rust-toolchain@master
with:
profile: minimal
toolchain: nightly
override: true
components: rustfmt, clippy

- name: Run rustfmt
uses: actions-rs/cargo@v1
# No need to execute it multiple times
if: matrix.os == 'ubuntu-latest'
with:
command: fmt
args: --all -- --check
run: |
cargo fmt --all -- --check
- name: Run clippy
uses: actions-rs/cargo@v1
with:
command: clippy
args: --all-targets --all-features -- -D warnings -A clippy::needless_doctest_main
run: |
cargo clippy --all-targets --all-features -- -D warnings
tier1:
# Matches the Rust Tier 1 platform support
# See https://doc.rust-lang.org/nightly/rustc/platform-support.html#tier-1-with-host-tools
name: Tier 1
needs: lints
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
- macOS-latest
- windows-latest
toolchain:
- 1.19.0
- stable
include:
- os: ubuntu-latest
target: aarch64-unknown-linux-gnu
use_cross: true
- os: ubuntu-latest
target: i686-unknown-linux-gnu
use_cross: true
- os: ubuntu-latest
target: x86_64-unknown-linux-gnu
# TODO: Enable it back
# - os: windows-latest
# target: i686-pc-windows-gnu
- os: windows-latest
target: i686-pc-windows-msvc
use_cross: true
- os: windows-latest
target: x86_64-pc-windows-gnu
- os: windows-latest
target: x86_64-pc-windows-msvc
- os: macos-latest
target: x86_64-apple-darwin
steps:
- uses: actions/checkout@v1
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
uses: dtolnay/rust-toolchain@master
with:
toolchain: 1.67.0
targets: ${{ matrix.target }}
- uses: taiki-e/install-action@v2
with:
profile: minimal
toolchain: ${{ matrix.toolchain }}
override: true
tool: cross

- name: Check without features
uses: actions-rs/cargo@v1
with:
command: check
run: cargo check --target=${{ matrix.target }}

- name: Check with all features enabled
uses: actions-rs/cargo@v1
with:
command: check
args: --all-features
run: ${{ env.CARGO_BINARY }} check --all-features --target=${{ matrix.target }}
env:
CARGO_BINARY: ${{ matrix.use_cross == true && 'cross' || 'cargo' }}

- name: Run tests
if: matrix.toolchain == 'stable'
uses: actions-rs/cargo@v1
run: ${{ env.CARGO_BINARY }} test --all-features --target=${{ matrix.target }}
env:
CARGO_BINARY: ${{ matrix.use_cross == true && 'cross' || 'cargo' }}

tier2_with_host_tools:
# Matches Rust "Tier 2 with Host Tools" platform support
# For as much as possible
#
# See https://doc.rust-lang.org/nightly/rustc/platform-support.html#tier-2-with-host-tools
name: Tier 2 (with Host Tools)
needs: tier1
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: macos-latest
target: aarch64-apple-darwin
- os: windows-latest
target: aarch64-pc-windows-msvc
- os: ubuntu-latest
target: aarch64-unknown-linux-musl
- os: ubuntu-latest
target: arm-unknown-linux-gnueabi
- os: ubuntu-latest
target: arm-unknown-linux-gnueabihf
- os: ubuntu-latest
target: armv7-unknown-linux-gnueabihf
# `rust-std` is not available
# - os: ubuntu-latest
# target: loongarch64-unknown-linux-gnu
- os: ubuntu-latest
target: mips-unknown-linux-gnu
- os: ubuntu-latest
target: mips64-unknown-linux-gnuabi64
- os: ubuntu-latest
target: mips64el-unknown-linux-gnuabi64
- os: ubuntu-latest
target: mipsel-unknown-linux-gnu
- os: ubuntu-latest
target: powerpc-unknown-linux-gnu
- os: ubuntu-latest
target: powerpc64-unknown-linux-gnu
- os: ubuntu-latest
target: powerpc64le-unknown-linux-gnu
- os: ubuntu-latest
target: riscv64gc-unknown-linux-gnu
- os: ubuntu-latest
target: s390x-unknown-linux-gnu
- os: ubuntu-latest
target: x86_64-unknown-linux-musl
steps:
- uses: actions/checkout@v1
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@master
with:
command: test
args: --all-features
toolchain: 1.67.0
targets: ${{ matrix.target }}
- uses: taiki-e/install-action@v2
with:
tool: cross
- name: Run build
run: |
cross build --all-features --target=${{ matrix.target }}
tier2:
name: Tier 2
tier2_with_host_tools_via_cross:
# Matches Rust "Tier 2 with Host Tools" platform support
# For as much as possible, but where `cross` is needed for cross-compilation
#
# See https://doc.rust-lang.org/nightly/rustc/platform-support.html#tier-2-with-host-tools
name: Tier 2 (with Host Tools, via Cross)
needs: tier1
runs-on: ubuntu-latest
strategy:
matrix:
target:
# Solaris
- x86_64-sun-solaris

# DragonflyBSD
# TODO: No std available
# - x86_64-unknown-dragonfly

# NetBSD
- x86_64-unknown-freebsd
- x86_64-unknown-illumos
- x86_64-unknown-netbsd

# Android
- arm-linux-androideabi
- armv7-linux-androideabi
- aarch64-linux-android
- i686-linux-android
steps:
- uses: actions/checkout@v1
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
uses: dtolnay/rust-toolchain@master
with:
profile: minimal
toolchain: stable
target: ${{ matrix.target }}
override: true

- name: Run build
uses: actions-rs/cargo@v1
toolchain: 1.67.0
targets: ${{ matrix.target }}
- uses: taiki-e/install-action@v2
with:
use-cross: true
command: build
args: --all-features
tool: cross
- name: Run build
run: |
cross build --all-features --target=${{ matrix.target }}
tier2_ios:
name: Tier 2 (iOS)
tier2_without_host_tools:
# Matches Rust "Tier 2 with host tools" platform support
# For as much as possible, but where `cross` is needed for cross-compilation
#
# See https://doc.rust-lang.org/nightly/rustc/platform-support.html#tier-2-with-host-tools
name: Tier 2 (without Host Tools)
needs: tier1
runs-on: macOS-latest
runs-on: ${{ matrix.os }}
strategy:
matrix:
target:
- armv7-apple-ios
- armv7s-apple-ios
- x86_64-apple-ios
- aarch64-apple-ios
include:
- os: macos-latest
target: aarch64-apple-ios
# `rust-std` is not available
# - os: ubuntu-latest
# target: aarch64-unknown-fuchsia
- os: ubuntu-latest
target: aarch64-linux-android
- os: ubuntu-latest
target: arm-linux-androideabi
- os: ubuntu-latest
target: arm-unknown-linux-musleabi
- os: ubuntu-latest
target: arm-unknown-linux-musleabihf
- os: ubuntu-latest
target: armv5te-unknown-linux-gnueabi
- os: ubuntu-latest
target: armv5te-unknown-linux-musleabi
- os: ubuntu-latest
target: armv7-linux-androideabi
- os: ubuntu-latest
target: armv7-unknown-linux-gnueabi
- os: ubuntu-latest
target: armv7-unknown-linux-musleabi
- os: ubuntu-latest
target: armv7-unknown-linux-musleabihf
- os: ubuntu-latest
target: i586-unknown-linux-gnu
- os: ubuntu-latest
target: i586-unknown-linux-musl
- os: ubuntu-latest
target: i686-linux-android
- os: ubuntu-latest
target: i686-unknown-freebsd
- os: ubuntu-latest
target: i686-unknown-linux-musl
- os: ubuntu-latest
target: mips-unknown-linux-musl
- os: ubuntu-latest
target: mips64-unknown-linux-muslabi64
- os: ubuntu-latest
target: mips64el-unknown-linux-muslabi64
- os: ubuntu-latest
target: mipsel-unknown-linux-musl
- os: ubuntu-latest
target: sparc64-unknown-linux-gnu
- os: ubuntu-latest
target: sparcv9-sun-solaris
- os: ubuntu-latest
target: thumbv7neon-linux-androideabi
- os: ubuntu-latest
target: thumbv7neon-unknown-linux-gnueabihf
- os: macos-latest
target: x86_64-apple-ios
- os: ubuntu-latest
target: x86_64-fortanix-unknown-sgx
# `rust-std` seems to be not available?
# - os: ubuntu-latest
# target: x86_64-unknown-fuchsia
- os: ubuntu-latest
target: x86_64-linux-android
- os: ubuntu-latest
target: x86_64-pc-solaris
- os: ubuntu-latest
target: x86_64-unknown-linux-gnux32
- os: ubuntu-latest
target: x86_64-unknown-redox
steps:
- uses: actions/checkout@v1
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
uses: dtolnay/rust-toolchain@master
with:
profile: minimal
toolchain: stable
target: ${{ matrix.target }}
override: true

- name: Run build
uses: actions-rs/cargo@v1
toolchain: 1.67.0
targets: ${{ matrix.target }}
- uses: taiki-e/install-action@v2
with:
use-cross: true
command: build
args: --all-features
tool: cross
- name: Run build
run: |
cross build --all-features --target=${{ matrix.target }}
# TODO: Tier 3
# - x86_64-unknown-dragonfly
# And other targets that have `std` compiled
9 changes: 0 additions & 9 deletions .rustfmt.toml

This file was deleted.

5 changes: 3 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "hostname"
version = "0.3.1"
version = "0.4.0"
description = "Cross-platform system's host name functions"
categories = ["api-bindings", "os"]
keywords = ["hostname", "gethostname", "sethostname"]
Expand All @@ -12,6 +12,7 @@ repository = "https://github.com/svartalf/hostname"
readme = "README.md"
license = "MIT"
edition = "2021"
rust-version = "1.67"

[features]
default = []
Expand All @@ -25,7 +26,7 @@ cfg-if = "^1.0"
libc = "^0.2"

[target.'cfg(target_os = "windows")'.dependencies]
windows = { version="^0.43", features=["Win32_Foundation", "Win32_System_SystemInformation"] }
windows = { version = "^0.51", features = ["Win32_Foundation", "Win32_System_SystemInformation"] }

[dev-dependencies]
version-sync = "0.9"
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
[![Latest Version](https://img.shields.io/crates/v/hostname.svg)](https://crates.io/crates/hostname)
[![Latest Version](https://docs.rs/hostname/badge.svg)](https://docs.rs/hostname)
[![Build Status](https://github.com/svartalf/hostname/workflows/Continuous%20integration/badge.svg)](https://github.com/svartalf/hostname/actions)
![Minimum rustc version](https://img.shields.io/badge/rustc-1.19+-green.svg)
![Minimum rustc version](https://img.shields.io/badge/rustc-1.67+-green.svg)
![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)
![Crates.io](https://img.shields.io/crates/d/hostname)

Expand All @@ -17,7 +17,7 @@

## Rust version requirements

Since version `0.2.0` this crate requires Rust version `1.19.0` or greater.
Since version `0.4.0` this crate requires Rust version `1.67.0` or greater.

This version is explicitly tested in CI
and may be bumped in any major or minor release as needed.\
Expand All @@ -31,7 +31,7 @@ Add the following dependency to your Cargo manifest:

```toml
[dependencies]
hostname = "^0.3"
hostname = "^0.4"
```

Crate API provides two simple functions for retrieving and setting the system's host name:
Expand Down
Loading

0 comments on commit 554b306

Please sign in to comment.