diff --git a/.github/workflows/ci-documentation.yml b/.github/workflows/ci-documentation.yml index 773c0398..6f6febc0 100644 --- a/.github/workflows/ci-documentation.yml +++ b/.github/workflows/ci-documentation.yml @@ -4,20 +4,20 @@ on: push: branches: - 'main' + # match + # - all files inside `apps/documentation` and `.github` + # - all files in the root expect `Cargo.toml` paths: - # ⬇ Keep paths in sync with `typescript.yml` - '.github/**' - '*' - '!Cargo.toml' - # ⬆ Keep paths in sync with `typescript.yml` - 'apps/documentation/**' pull_request: + # same as `on.push.paths` paths: - # ⬇ Keep paths in sync with `typescript.yml` - '.github/**' - '*' - '!Cargo.toml' - # ⬆ Keep paths in sync with `typescript.yml` - 'apps/documentation/**' jobs: diff --git a/.github/workflows/repo-root-ci.yml b/.github/workflows/repo-root-ci.yml index 16e6fccb..2dd581a8 100644 --- a/.github/workflows/repo-root-ci.yml +++ b/.github/workflows/repo-root-ci.yml @@ -8,18 +8,10 @@ on: push: branches: - 'main' - paths: - - '*' - - '.github/**' - - '.docker/**' pull_request: - paths: - - '*' - - '.github/**' - - '.docker/**' jobs: - build-and-test: + format: name: Check format runs-on: ubuntu-latest timeout-minutes: 15 @@ -33,3 +25,23 @@ jobs: - name: Test project run: pnpm repo:root:format:check + + ci_ok: + name: OK + runs-on: ubuntu-latest + timeout-minutes: 1 + if: always() + needs: [format] + env: + FAILURE: ${{ contains(join(needs.*.result, ','), 'failure') }} + CANCELLED: ${{ contains(join(needs.*.result, ','), 'cancelled') }} + steps: + - name: Check for failure or cancelled jobs result + shell: bash + run: | + echo "Failure: $FAILURE - Cancelled: $CANCELLED" + if [ "$FAILURE" = "false" ] && [ "$CANCELLED" = "false" ]; then + exit 0 + else + exit 1 + fi diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index e9b8296d..21383c56 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -4,15 +4,7 @@ on: push: branches: - 'main' - paths: - - '.github/**' - - 'Cargo.toml' - - 'crates/**' pull_request: - paths: - - '.github/**' - - 'Cargo.toml' - - 'crates/**' env: CARGO_TERM_COLOR: always @@ -40,6 +32,7 @@ jobs: os: 'ubuntu-latest' runs-on: ${{ matrix.os }} + timeout-minutes: 15 steps: - name: Checkout code @@ -56,6 +49,7 @@ jobs: lint_and_fmt: name: Check format and lint rust crates runs-on: ubuntu-latest + timeout-minutes: 15 steps: - name: Checkout code @@ -66,3 +60,23 @@ jobs: - run: cargo fmt --all -- --check - run: cargo clippy -- -D warnings + + ci_ok: + name: OK + runs-on: ubuntu-latest + timeout-minutes: 1 + if: always() + needs: [build_and_test, lint_and_fmt] + env: + FAILURE: ${{ contains(join(needs.*.result, ','), 'failure') }} + CANCELLED: ${{ contains(join(needs.*.result, ','), 'cancelled') }} + steps: + - name: Check for failure or cancelled jobs result + shell: bash + run: | + echo "Failure: $FAILURE - Cancelled: $CANCELLED" + if [ "$FAILURE" = "false" ] && [ "$CANCELLED" = "false" ]; then + exit 0 + else + exit 1 + fi diff --git a/.github/workflows/typescript.yml b/.github/workflows/typescript.yml index 7778357d..a560fb9e 100644 --- a/.github/workflows/typescript.yml +++ b/.github/workflows/typescript.yml @@ -4,26 +4,11 @@ on: push: branches: - 'main' - paths: - # ⬇ Keep paths in sync with `ci-documentation.yml` - - '.github/**' - - '*' - - '!Cargo.toml' - # ⬆ Keep paths in sync with `ci-documentation.yml` - - 'packages/**' pull_request: - paths: - # ⬇ Keep paths in sync with `ci-documentation.yml` - - '.github/**' - - '*' - - '!Cargo.toml' - # ⬆ Keep paths in sync with `ci-documentation.yml` - - 'packages/**' jobs: build_and_test: name: Check build and test - timeout-minutes: 15 strategy: fail-fast: true @@ -34,6 +19,7 @@ jobs: - 'windows-latest' runs-on: ${{ matrix.os }} + timeout-minutes: 15 steps: - name: Checkout code @@ -68,3 +54,23 @@ jobs: - name: Types run: pnpm types + + ci_ok: + name: OK + runs-on: ubuntu-latest + timeout-minutes: 1 + if: always() + needs: [build_and_test, lint_and_fmt] + env: + FAILURE: ${{ contains(join(needs.*.result, ','), 'failure') }} + CANCELLED: ${{ contains(join(needs.*.result, ','), 'cancelled') }} + steps: + - name: Check for failure or cancelled jobs result + shell: bash + run: | + echo "Failure: $FAILURE - Cancelled: $CANCELLED" + if [ "$FAILURE" = "false" ] && [ "$CANCELLED" = "false" ]; then + exit 0 + else + exit 1 + fi