From 1e469627b4bd934e931716098cfee4c9931740d0 Mon Sep 17 00:00:00 2001 From: per1234 <accounts@perglass.com> Date: Sat, 25 Jun 2022 13:49:31 -0700 Subject: [PATCH] Only run "Arduino IDE" workflow on relevant changes The "Arduino IDE" workflow performs the following operations when triggered on push and pull request events: - Build application - Lint code - Run tests - Produce tester packages All of these operations are specific to the TypeScript/JavaScript code base and its infrastructure. Previously, the workflow ran whenever any file in the repository was changed. This includes files that have no relevance, meaning the operations performed by the workflow were pointless. In addition to general inefficiency, these lengthy and sometimes spuriously failing unnecessary workflow runs might cause delay or confusion to both the contributors and maintainers for what would otherwise be a simple process. GitHub Actions provides the ability to configure path filters for the workflow triggers. The workflow will only run on events that change files satisfying these path filters. This is "AND"ed with the `branches` filters, meaning the existing restrictions on which branches produce a run remain unchanged. The `tags` filter is independent from the `paths` and `branches` filters, meaning the added path filters don't make any change to which tag push events will trigger the workflow. --- .github/workflows/build.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c7e5758d..3dceb0c8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,10 +4,26 @@ on: push: branches: - main + paths-ignore: + - '.github/**' + - '!.github/workflows/build.yml' + - '.vscode/**' + - 'docs/**' + - 'scripts/**' + - 'static/**' + - '*.md' tags: - '[0-9]+.[0-9]+.[0-9]+*' workflow_dispatch: pull_request: + paths-ignore: + - '.github/**' + - '!.github/workflows/build.yml' + - '.vscode/**' + - 'docs/**' + - 'scripts/**' + - 'static/**' + - '*.md' schedule: - cron: '0 3 * * *' # run every day at 3AM (https://docs.github.com/en/actions/reference/events-that-trigger-workflows#scheduled-events-schedule)