gitbutler/.github/workflows/push.yaml
dependabot[bot] 34fe5ba4a5
build(deps): bump Swatinem/rust-cache from 2.7.3 to 2.7.5
Bumps [Swatinem/rust-cache](https://github.com/swatinem/rust-cache) from 2.7.3 to 2.7.5.
- [Release notes](https://github.com/swatinem/rust-cache/releases)
- [Changelog](https://github.com/Swatinem/rust-cache/blob/master/CHANGELOG.md)
- [Commits](https://github.com/swatinem/rust-cache/compare/v2.7.3...v2.7.5)

---
updated-dependencies:
- dependency-name: Swatinem/rust-cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-14 15:12:26 +00:00

155 lines
4.0 KiB
YAML

name: 'Test'
on:
push:
branches:
- master
pull_request:
env:
RUST_BACKTRACE: full
jobs:
changes:
runs-on: ubuntu-latest
outputs:
node: ${{ steps.filter.outputs.node }}
rust: ${{ steps.filter.outputs.rust }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: filter
with:
filters: |
workflows: &workflows
- '.github/workflows/**'
- '.github/actions/**'
node:
- *workflows
- 'apps/**'
- 'packages/**'
- 'package.json'
- 'pnpm-lock.yaml'
common-rust: &rust
- *workflows
- 'Cargo.lock'
- 'Cargo.toml'
rust: &any-rust
- *rust
- 'crates/**'
lint-node:
needs: changes
if: ${{ needs.changes.outputs.node == 'true' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/init-env-node
- run: pnpm lint
check-node:
needs: changes
if: ${{ needs.changes.outputs.node == 'true' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/init-env-node
- run: pnpm check
unittest-node:
needs: changes
if: ${{ needs.changes.outputs.node == 'true' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/init-env-node
- run: pnpm test
rust-lint:
needs: changes
if: ${{ needs.changes.outputs.rust == 'true' }}
runs-on: ubuntu-latest
container:
image: ghcr.io/gitbutlerapp/ci-base-image:latest
env:
CARGO_TERM_COLOR: always
steps:
- uses: actions/checkout@v4
- run: cargo fmt --check --all
- run: cargo check --workspace --all-targets
rust-docs:
needs: changes
if: ${{ needs.changes.outputs.rust == 'true' }}
runs-on: ubuntu-latest
container:
image: ghcr.io/gitbutlerapp/ci-base-image:latest
env:
CARGO_TERM_COLOR: always
steps:
- uses: actions/checkout@v4
# TODO(qix-): we have to exclude the app here for now because for some
# TODO(qix-): reason it doesn't build with the docs feature enabled.
- run: cargo doc --no-deps --all-features --document-private-items -p gitbutler-git
env:
RUSTDOCFLAGS: -Dwarnings
rust-test:
needs: changes
if: ${{ needs.changes.outputs.rust == 'true' }}
runs-on: ubuntu-latest
container:
image: ghcr.io/gitbutlerapp/ci-base-image:latest
env:
CARGO_TERM_COLOR: always
strategy:
matrix:
# Specifies which features should be applied when running the checks and tests
# '' indicates no flags relating to features passed
# [] indicates --no-default-features flag passed
# '*' indicates --all-features passed
# [entry1, entry2] indicates --features entry1 entry2
features:
- ''
- '*'
- []
- [tokio]
- [devtools]
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/check-crate
with:
features: ${{ toJson(matrix.features) }}
check-rust:
if: always()
needs:
- changes
- check-rust-windows
- rust-test
- rust-lint
runs-on: ubuntu-latest
env:
CARGO_TERM_COLOR: always
steps:
- name: Decide whether the needed jobs succeeded or failed
uses: re-actors/alls-green@release/v1
with:
allowed-skips: ${{ toJSON(needs) }}
jobs: ${{ toJSON(needs) }}
check-rust-windows:
needs: changes
runs-on: windows-latest
if: ${{ needs.changes.outputs.rust == 'true' }}
env:
CARGO_TERM_COLOR: always
steps:
- uses: actions/checkout@v3
- name: Rust Cache
uses: Swatinem/rust-cache@v2.7.5
with:
shared-key: windows-rust-testing
key: ${{ inputs.features }}
- name: 'cargo check'
run: cargo check --workspace --all-targets --features windows