Skip to content

Update all gtk crates to 18.x #5756

Update all gtk crates to 18.x

Update all gtk crates to 18.x #5756

Workflow file for this run

on:
push:
branches:
- master
pull_request:
jobs:
rustfmt:
runs-on: ubuntu-latest
name: cargo fmt
steps:
- uses: actions/checkout@v2
- name: install stable toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
components: rustfmt
override: true
- name: cargo fmt
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
test-stable:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macOS-latest, windows-2019, ubuntu-latest]
name: cargo clippy+test
steps:
- uses: actions/checkout@v2
- name: install linux dependencies
run: |
sudo apt update
sudo apt install libpango1.0-dev libxkbcommon-dev libxkbcommon-x11-dev
if: contains(matrix.os, 'ubuntu')
- name: install stable toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: clippy
profile: minimal
override: true
- name: restore cache
uses: Swatinem/rust-cache@v1
# Clippy packages in deeper-to-higher dependency order
- name: cargo clippy druid-shell
uses: actions-rs/cargo@v1
with:
command: clippy
args: --manifest-path=druid-shell/Cargo.toml --all-targets --no-default-features --features=x11,image,raw-win-handle -- -D warnings
- name: cargo clippy druid
uses: actions-rs/cargo@v1
with:
command: clippy
args: --manifest-path=druid/Cargo.toml --all-targets --no-default-features --features=svg,image,im,x11,raw-win-handle -- -D warnings
- name: cargo clippy druid-derive
uses: actions-rs/cargo@v1
with:
command: clippy
args: --manifest-path=druid-derive/Cargo.toml --all-targets -- -D warnings
# there's no platform specific code here so we only run once
if: contains(matrix.os, 'mac')
- name: cargo clippy book examples
uses: actions-rs/cargo@v1
with:
command: clippy
args: --manifest-path=docs/book_examples/Cargo.toml --all-targets -- -D warnings
if: contains(matrix.os, 'mac')
# Test packages in deeper-to-higher dependency order
- name: cargo test druid-shell
uses: actions-rs/cargo@v1
with:
command: test
args: --manifest-path=druid-shell/Cargo.toml --no-default-features --features=x11,image,raw-win-handle
# We use --all-targets to skip doc tests; we run them in a parallel task
# there are no gtk-specific doctests in the main druid crate anyway
- name: cargo test druid
uses: actions-rs/cargo@v1
with:
command: test
args: --manifest-path=druid/Cargo.toml --all-targets --no-default-features --features=svg,image,im,x11
- name: cargo test druid-derive
uses: actions-rs/cargo@v1
with:
command: test
args: --manifest-path=druid-derive/Cargo.toml
if: contains(matrix.os, 'mac')
- name: cargo test book examples
uses: actions-rs/cargo@v1
with:
command: test
args: --manifest-path=docs/book_examples/Cargo.toml
if: contains(matrix.os, 'mac')
# we test the wayland backend as a separate job
test-stable-wayland:
runs-on: ubuntu-latest
name: cargo clippy+test (wayland)
steps:
- uses: actions/checkout@v2
- name: install wayland
run: |
sudo apt update
sudo apt install libwayland-dev libpango1.0-dev libxkbcommon-dev
- name: install stable toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: clippy
profile: minimal
override: true
- name: restore cache
uses: Swatinem/rust-cache@v1
- name: cargo clippy druid-shell
uses: actions-rs/cargo@v1
with:
command: clippy
args: --manifest-path=druid-shell/Cargo.toml --all-targets --no-default-features --features=wayland,image,raw-win-handle -- -D warnings
- name: cargo test druid-shell
uses: actions-rs/cargo@v1
with:
command: test
args: --manifest-path=druid-shell/Cargo.toml --no-default-features --features=wayland,image,raw-win-handle
# We use --all-targets to skip doc tests; there are no wayland-specific
# doctests in the main druid crate anyway
- name: cargo test druid
uses: actions-rs/cargo@v1
with:
command: test
args: --manifest-path=druid/Cargo.toml --all-targets --no-default-features --features=wayland,svg,image,im,raw-win-handle
# we test the gtk backend as a separate job because gtk install takes
# a long time.
test-stable-gtk:
runs-on: ubuntu-latest
name: cargo clippy+test (gtk)
steps:
- uses: actions/checkout@v2
- name: install libgtk-3-dev
run: |
sudo apt update
sudo apt install libgtk-3-dev
- name: install stable toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: clippy
profile: minimal
override: true
- name: restore cache
uses: Swatinem/rust-cache@v1
- name: cargo clippy druid-shell
uses: actions-rs/cargo@v1
with:
command: clippy
args: --manifest-path=druid-shell/Cargo.toml --all-targets --features=image,raw-win-handle -- -D warnings
- name: cargo test druid-shell
uses: actions-rs/cargo@v1
with:
command: test
args: --manifest-path=druid-shell/Cargo.toml --features=image,raw-win-handle
# We use --all-targets to skip doc tests; there are no gtk-specific
# doctests in the main druid crate anyway
- name: cargo test druid
uses: actions-rs/cargo@v1
with:
command: test
args: --manifest-path=druid/Cargo.toml --all-targets --features=svg,image,im,raw-win-handle
test-stable-wasm:
runs-on: macOS-latest
name: cargo test (wasm32)
steps:
- uses: actions/checkout@v2
- name: install wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
with:
version: latest
- name: install stable toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: wasm32-unknown-unknown
components: clippy
profile: minimal
override: true
- name: restore cache
uses: Swatinem/rust-cache@v1
- name: cargo clippy druid-shell (wasm)
uses: actions-rs/cargo@v1
with:
command: clippy
args: --manifest-path=druid-shell/Cargo.toml --all-targets --target wasm32-unknown-unknown -- -D warnings
# Test wasm32 relevant packages in deeper-to-higher dependency order
# TODO: Find a way to make tests work. Until then the tests are merely compiled.
- name: cargo test compile druid-shell
uses: actions-rs/cargo@v1
with:
command: test
args: --manifest-path=druid-shell/Cargo.toml --features=image --no-run --target wasm32-unknown-unknown
# We use --all-targets to skip doc tests; there are no wasm-specific
# doctests in the main druid crate anyway
- name: cargo test compile druid
uses: actions-rs/cargo@v1
with:
command: test
# TODO: Add svg feature when it's no longer broken with wasm
args: --manifest-path=druid/Cargo.toml --all-targets --features=image,im --no-run --target wasm32-unknown-unknown
- name: cargo test compile book examples
uses: actions-rs/cargo@v1
with:
command: test
args: --manifest-path=docs/book_examples/Cargo.toml --no-run --target wasm32-unknown-unknown
## build the special druid-web-examples package.
- name: wasm-pack build examples
run: wasm-pack build --dev --target web druid/examples/web
## build the hello_web example
- name: wasm-pack build hello_web example
run: wasm-pack build --dev --target web druid/examples/hello_web
doctest-stable:
runs-on: macOS-latest
name: druid doctests
steps:
- uses: actions/checkout@v2
- name: install stable toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
- name: restore cache
uses: Swatinem/rust-cache@v1
- name: cargo test druid --doc
uses: actions-rs/cargo@v1
with:
command: test
args: --manifest-path=druid/Cargo.toml --doc --no-default-features --features=svg,image,im,raw-win-handle
# This tests the future rust compiler to catch errors ahead of time without
# breaking CI
# We only run on a single OS to save time; this might let some errors go
# undetected until the compiler updates and they break CI; but that should
# happen rarely, and not pose too much of a problem when it does.
test-beta:
runs-on: macOS-latest
name: cargo clippy+test beta
steps:
- uses: actions/checkout@v2
- name: install beta toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: beta
components: clippy
profile: minimal
override: true
- name: restore cache
uses: Swatinem/rust-cache@v1
# Clippy packages in deeper-to-higher dependency order
- name: cargo clippy druid-shell
uses: actions-rs/cargo@v1
with:
command: clippy
args: --manifest-path=druid-shell/Cargo.toml --all-targets --features=image,raw-win-handle -- -D warnings
continue-on-error: true
- name: cargo clippy druid
uses: actions-rs/cargo@v1
with:
command: clippy
args: --manifest-path=druid/Cargo.toml --all-targets --features=svg,image,im,raw-win-handle -- -D warnings
continue-on-error: true
# Test packages in deeper-to-higher dependency order
- name: cargo test druid-shell
uses: actions-rs/cargo@v1
with:
command: test
args: --manifest-path=druid-shell/Cargo.toml --no-default-features --features=x11,image
continue-on-error: true
# We use --all-targets to skip doc tests, which are run in doctest-stable
- name: cargo test druid
uses: actions-rs/cargo@v1
with:
command: test
args: --manifest-path=druid/Cargo.toml --all-targets --no-default-features --features=svg,image,im,x11
continue-on-error: true
- name: cargo test druid-derive
uses: actions-rs/cargo@v1
with:
command: test
args: --manifest-path=druid-derive/Cargo.toml
continue-on-error: true
- name: cargo test book examples
uses: actions-rs/cargo@v1
with:
command: test
args: --manifest-path=docs/book_examples/Cargo.toml
continue-on-error: true
doctest-beta:
runs-on: macOS-latest
name: druid doctests beta
steps:
- uses: actions/checkout@v2
- name: install beta toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: beta
profile: minimal
override: true
- name: restore cache
uses: Swatinem/rust-cache@v1
- name: cargo test druid --doc
uses: actions-rs/cargo@v1
with:
command: test
args: --manifest-path=druid/Cargo.toml --doc --features=svg,image,im,raw-win-handle
check-docs:
name: Docs
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macOS-latest, windows-2019, ubuntu-latest]
steps:
- uses: actions/checkout@v2
- name: install linux dependencies
run: |
sudo apt update
sudo apt install libgtk-3-dev libwayland-dev libpango1.0-dev libxkbcommon-dev libxkbcommon-x11-dev
if: contains(matrix.os, 'ubuntu')
- name: install nightly toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
profile: minimal
override: true
- name: restore cache
uses: Swatinem/rust-cache@v1
# Doc packages in deeper-to-higher dependency order
- name: cargo doc druid-shell
uses: actions-rs/cargo@v1
with:
command: doc
args: --manifest-path=druid-shell/Cargo.toml --features=image,raw-win-handle --no-deps --document-private-items -Zunstable-options -Zrustdoc-scrape-examples
- name: cargo doc druid
uses: actions-rs/cargo@v1
with:
command: doc
args: --manifest-path=druid/Cargo.toml --features=svg,image,im,raw-win-handle --no-deps --document-private-items -Zunstable-options -Zrustdoc-scrape-examples
- name: cargo doc druid-derive
uses: actions-rs/cargo@v1
with:
command: doc
args: --manifest-path=druid-derive/Cargo.toml --no-deps --document-private-items
- name: cargo doc book examples
uses: actions-rs/cargo@v1
with:
command: doc
args: --manifest-path=docs/book_examples/Cargo.toml --no-deps --document-private-items
# On Linux also attempt docs for X11.
- name: cargo doc druid-shell (X11)
uses: actions-rs/cargo@v1
with:
command: doc
args: --manifest-path=druid-shell/Cargo.toml --no-default-features --features=x11,image,raw-win-handle --no-deps --document-private-items -Zunstable-options -Zrustdoc-scrape-examples
if: contains(matrix.os, 'ubuntu')
# On Linux also attempt docs for Wayland.
- name: cargo doc druid-shell (Wayland)
uses: actions-rs/cargo@v1
with:
command: doc
args: --manifest-path=druid-shell/Cargo.toml --no-default-features --features=wayland,image,raw-win-handle --no-deps --document-private-items -Zunstable-options -Zrustdoc-scrape-examples
if: contains(matrix.os, 'ubuntu')
mdbook-build:
runs-on: ubuntu-latest
name: mdbook build
steps:
- uses: actions/checkout@v2
- name: install stable toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
- name: restore cache
uses: Swatinem/rust-cache@v1
- name: install mdbook
uses: actions-rs/cargo@v1
with:
command: install
args: --vers "^0.4" mdbook
- name: mdbook build
run: mdbook build
working-directory: ./docs