hcloud 0.25.0

Unofficial Rust crate for accessing the Hetzner Cloud API
Documentation
on:
  push:
    branches:
      - '**'
  pull_request:
    branches:
      - '**'
  schedule:
    # At 03:45 on Friday. (Thanks, crontab.guru)
    - cron: '45 3 * * 5'

name: Build and test

jobs:
  build_test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        rust:
          - stable
          - beta
          - nightly
      fail-fast: false

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Deploy toolchain
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{ matrix.rust }}
          components: rustfmt, clippy

      - name: Run build
        run: cargo build --all-targets

      - name: Run tests
        run: cargo test

      - name: Check formatting
        run: cargo fmt --check

      - name: Run Clippy
        run: cargo clippy --all-targets

      - name: Run examples
        if: ${{ github.event_name != 'pull_request'}}
        env:
          HCLOUD_API_TOKEN: ${{ secrets.HCLOUD_API_TOKEN }}
        run: |
          set -e
          cargo run --example find_cheapest_server_type "$HCLOUD_API_TOKEN"
          cargo run --example list_images "$HCLOUD_API_TOKEN"
          cargo run --example list_isos "$HCLOUD_API_TOKEN"
          cargo run --example list_servers "$HCLOUD_API_TOKEN"
          cargo run --example list_storage_box_types "$HCLOUD_API_TOKEN"
          cargo run --example list_zones "$HCLOUD_API_TOKEN"