mirror of
https://github.com/tauri-apps/tauri.git
synced 2024-12-19 00:21:32 +03:00
166 lines
5.2 KiB
YAML
166 lines
5.2 KiB
YAML
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
name: Udeps
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- dev
|
|
- 1.x
|
|
|
|
env:
|
|
RUST_BACKTRACE: 1
|
|
CARGO_PROFILE_DEV_DEBUG: 0 # This would add unnecessary bloat to the target folder, decreasing cache efficiency.
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
changes:
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
tauri: ${{ steps.filter.outputs.tauri }}
|
|
build: ${{ steps.filter.outputs.build }}
|
|
codegen: ${{ steps.filter.outputs.codegen }}
|
|
macros: ${{ steps.filter.outputs.macros }}
|
|
runtime: ${{ steps.filter.outputs.runtime }}
|
|
wry: ${{ steps.filter.outputs.wry }}
|
|
utils: ${{ steps.filter.outputs.utils }}
|
|
bundler: ${{ steps.filter.outputs.bundler }}
|
|
cli: ${{ steps.filter.outputs.cli }}
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: dorny/paths-filter@v2
|
|
id: filter
|
|
with:
|
|
filters: |
|
|
tauri:
|
|
- 'core/tauri/**'
|
|
- '!core/tauri/scripts/**'
|
|
build:
|
|
- 'core/tauri-build/**'
|
|
codegen:
|
|
- 'core/tauri-codegen/**'
|
|
macros:
|
|
- 'core/tauri-macros/**'
|
|
runtime:
|
|
- 'core/tauri-runtime/**'
|
|
wry:
|
|
- 'core/tauri-runtime-wry/**'
|
|
utils:
|
|
- 'core/tauri-utils/**'
|
|
bundler:
|
|
- 'tooling/bundler/**'
|
|
cli:
|
|
- 'tooling/cli/**'
|
|
|
|
setup:
|
|
runs-on: ubuntu-latest
|
|
needs: changes
|
|
if: |
|
|
needs.changes.outputs.tauri == 'true' ||
|
|
needs.changes.outputs.build == 'true' ||
|
|
needs.changes.outputs.codegen == 'true' ||
|
|
needs.changes.outputs.macros == 'true' ||
|
|
needs.changes.outputs.runtime == 'true' ||
|
|
needs.changes.outputs.wry == 'true' ||
|
|
needs.changes.outputs.utils == 'true' ||
|
|
needs.changes.outputs.bundler == 'true' ||
|
|
needs.changes.outputs.cli == 'true'
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: nightly
|
|
override: true
|
|
|
|
- uses: actions-rs/cargo@v1
|
|
with:
|
|
command: install
|
|
args: cargo-udeps --locked --force
|
|
|
|
- name: Upload udeps
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: udeps
|
|
path: '~/.cargo/bin/cargo-udeps'
|
|
if-no-files-found: error
|
|
|
|
- name: Create udeps matrix
|
|
id: create-matrix
|
|
env:
|
|
TAURI: ${{ needs.changes.outputs.tauri == 'true' }}
|
|
BUILD: ${{ needs.changes.outputs.build == 'true' }}
|
|
CODEGEN: ${{ needs.changes.outputs.codegen == 'true' }}
|
|
MACROS: ${{ needs.changes.outputs.macros == 'true' }}
|
|
RUNTIME: ${{ needs.changes.outputs.runtime == 'true' }}
|
|
WRY: ${{ needs.changes.outputs.wry == 'true' }}
|
|
UTILS: ${{ needs.changes.outputs.utils == 'true' }}
|
|
BUNDLER: ${{ needs.changes.outputs.bundler == 'true' }}
|
|
CLI: ${{ needs.changes.outputs.cli == 'true' }}
|
|
run: |
|
|
crates=()
|
|
if [ "${TAURI}" == "true" ]; then crates[${#crates[@]}]="\"./core/tauri\""; fi
|
|
if [ "${BUILD}" == "true" ]; then crates[${#crates[@]}]="\"./core/tauri-build\""; fi
|
|
if [ "${CODEGEN}" == "true" ]; then crates[${#crates[@]}]="\"./core/tauri-codegen\""; fi
|
|
if [ "${MACROS}" == "true" ]; then crates[${#crates[@]}]="\"./core/tauri-macros\""; fi
|
|
if [ "${RUNTIME}" == "true" ]; then crates[${#crates[@]}]="\"./core/tauri-runtime\""; fi
|
|
if [ "${WRY}" == "true" ]; then crates[${#crates[@]}]="\"./core/tauri-runtime-wry\""; fi
|
|
if [ "${UTILS}" == "true" ]; then crates[${#crates[@]}]="\"./core/tauri-utils\""; fi
|
|
if [ "${BUNDLER}" == "true" ]; then crates[${#crates[@]}]="\"./tooling/bundler\""; fi
|
|
if [ "${CLI}" == "true" ]; then crates[${#crates[@]}]="\"./tooling/cli\""; fi
|
|
echo ::set-output name=matrix::[$crates]
|
|
outputs:
|
|
matrix: ${{ steps.create-matrix.outputs.matrix }}
|
|
|
|
udeps:
|
|
runs-on: ubuntu-latest
|
|
needs: setup
|
|
strategy:
|
|
matrix:
|
|
path: ${{ fromJson(needs.setup.outputs.matrix) }}
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: nightly
|
|
override: true
|
|
|
|
- name: install dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y libgtk-3-dev
|
|
|
|
- uses: Swatinem/rust-cache@v2
|
|
with:
|
|
workspaces: |
|
|
core -> ../target
|
|
tooling/cli
|
|
tooling/bundler
|
|
|
|
- name: Download udeps
|
|
uses: actions/download-artifact@v3
|
|
with:
|
|
name: udeps
|
|
path: '~/.cargo/bin'
|
|
|
|
- run: chmod +x $HOME/.cargo/bin/cargo-udeps
|
|
|
|
- name: Install required packages
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y webkit2gtk-4.0 libayatana-appindicator3-dev
|
|
|
|
- uses: actions-rs/cargo@v1
|
|
with:
|
|
command: udeps
|
|
args: --manifest-path ${{ matrix.path }}/Cargo.toml --all-targets --all-features
|