summaryrefslogtreecommitdiffstats
path: root/gfx/wgpu/.github/workflows/ci.yml
blob: 662eb9990f9f7756c9da5eaaa55bcd7397d7844e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
name: CI

on:
  push:
    branches-ignore: [staging.tmp]
  pull_request:
    branches-ignore: [staging.tmp]

jobs:
  ios_build:
    name: iOS Stable
    runs-on: macos-10.15
    env:
      TARGET: aarch64-apple-ios
    steps:
      - uses: actions/checkout@v2
      - run: rustup component add clippy
      - run: rustup target add ${{ env.TARGET }}
      - run: cargo clippy --target ${{ env.TARGET }}

  android_build:
    name: Android Stable
    runs-on: ubuntu-18.04
    env:
      TARGET: aarch64-linux-android
      PKG_CONFIG_ALLOW_CROSS: 1
    steps:
      - uses: actions/checkout@v2
      - name: Prepare
        run: |
          sudo apt-get update -y -qq
          sudo apt-get install -y -qq libegl1-mesa-dev
          echo "$ANDROID_HOME/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin" >> $GITHUB_PATH
      - run: rustup component add clippy
      - run: rustup target add ${{ env.TARGET }}
      - run: cargo clippy --target ${{ env.TARGET }}
      - name: Additional core features
        run: cargo check --manifest-path wgpu-core/Cargo.toml --features trace --target ${{ env.TARGET }}

  build:
    name: ${{ matrix.name }}
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [macos-10.15, ubuntu-18.04, windows-2019]
        channel: [stable, nightly]
        include:
          - name: MacOS Stable
            channel: stable
            os: macos-10.15
            prepare_command:
            additional_core_features: trace
            additional_player_features: winit
          - name: MacOS Nightly
            os: macos-10.15
            channel: nightly
            prepare_command:
            additional_core_features:
            additional_player_features:
          - name: Ubuntu Stable
            os: ubuntu-18.04
            channel: stable
            prepare_command: |
              sudo apt-get update -y -qq
              sudo apt-get install -y -qq libegl1-mesa-dev
            additional_core_features: trace,replay
            additional_player_features:
          - name: Ubuntu Nightly
            os: ubuntu-18.04
            channel: nightly
            prepare_command: |
              sudo apt-get update -y -qq
              echo "Installing EGL"
              sudo apt-get install -y -qq libegl1-mesa-dev
              echo "Installing Vulkan"
              sudo apt-get install -y -qq mesa-vulkan-drivers
            additional_core_features: serial-pass
            additional_player_features: winit
          - name: Windows Stable
            os: windows-2019
            channel: stable
            prepare_command: rustup default stable-msvc
            additional_core_features: trace,serial-pass
            additional_player_features: renderdoc
          - name: Windows Nightly
            os: windows-2019
            channel: nightly
            prepare_command: rustup default nightly-msvc
            additional_core_features:
            additional_player_features:
    steps:
      - uses: actions/checkout@v2
      - if: matrix.channel == 'nightly'
        name: Install latest nightly
        uses: actions-rs/toolchain@v1
        with:
          toolchain: nightly
          override: true
      - if: matrix.channel == 'stable'
        run: rustup component add clippy
        # prepare
      - if: matrix.prepare_command != ''
        run: ${{ matrix.prepare_command }}
        # build with no features first
      - if: matrix.additional_core_features == ''
        run: cargo check --manifest-path wgpu-core/Cargo.toml --no-default-features
      - if: matrix.additional_core_features != ''
        run: cargo check --manifest-path wgpu-core/Cargo.toml --features ${{ matrix.additional_core_features }}
      - if: matrix.additional_player_features != ''
        run: cargo check --manifest-path player/Cargo.toml --features ${{ matrix.additional_player_features }}
      - if: matrix.channel == 'stable'
        run: cargo clippy
      - if: matrix.channel == 'nightly'
        run: cargo test -- --nocapture