Skip to content

Commit

Permalink
Eric's new "files matched" action (#41)
Browse files Browse the repository at this point in the history
* github actions: don't use tj-actions/changed-files

avoids all its bugs alltogether
eg tj-actions/changed-files#704

* fix forks

* add github token

* don't use PurePath.is_relative_to

* fixup

* add yml error

* add conanfile.py error

* add test error

* touch linter

* use fnmatch

* fxup

* use a dedicated action

* Update config.yml

* Update conanfile.py

* Update conanfile.py

* Update conanv2_transition.py

Co-authored-by: ericLemanissier <ericLemanissier@users.noreply.github.com>
  • Loading branch information
Chris Mc and ericLemanissier committed Nov 16, 2022
1 parent 24274d8 commit 46bbd46
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 18 deletions.
38 changes: 38 additions & 0 deletions .github/actions/pr_changed_files/action.yml
@@ -0,0 +1,38 @@
name: 'Changed files in PR'
description: 'Get all changed files in a Pull Request'
author: 'ericLemanissier'
inputs:
files:
description: "Check for changes using only this list of files (Defaults to the entire repo)"
required: false
default: ""

outputs:
all_changed_files:
description: List of all copied, modified, and added files.
value: ${{ steps.changed-files.outputs.all_changed_files }}
any_changed:
description: Return true only when any files provided using the files input have changed.
value: ${{ steps.changed-files.outputs.any_changed }}
runs:
using: "composite"
steps:
- uses: actions/setup-python@v4
- name: Get changed files
id: changed-files
shell: python
env:
GITHUB_TOKEN: ${{ github.token }}
run: |
import json
import subprocess
import fnmatch
import os
res = subprocess.run(["gh", "api", "/repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/files", "--paginate"], capture_output=True, check=True)
files = json.loads(res.stdout)
files = [f["filename"] for f in files]
files = [f for f in files if fnmatch.fnmatch(f, '''${{ inputs.files }}'''.strip())]
with open(os.getenv("GITHUB_OUTPUT"), "a") as output_file:
output_file.write(f"any_changed={'true' if files else 'false'}\n")
output_file.write(f"all_changed_files={' '.join(files)}\n")
12 changes: 3 additions & 9 deletions .github/workflows/linter-conan-v2.yml
Expand Up @@ -15,10 +15,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 2
- name: Get changed files
uses: tj-actions/changed-files@v20
uses: ./.github/actions/pr_changed_files
id: changed_files
with:
files: |
Expand Down Expand Up @@ -83,11 +81,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 2
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v20
uses: ./.github/actions/pr_changed_files
with:
files: |
recipes/*/*/conanfile.py
Expand Down Expand Up @@ -118,11 +114,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 2
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v20
uses: ./.github/actions/pr_changed_files
with:
files: |
recipes/*/*/test_*/conanfile.py
Expand Down
12 changes: 3 additions & 9 deletions .github/workflows/linter-yaml.yml
Expand Up @@ -16,11 +16,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 2

- name: Get changed files
uses: tj-actions/changed-files@v20
uses: ./.github/actions/pr_changed_files
id: changed_files
with:
files: |
Expand Down Expand Up @@ -69,9 +66,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 2

- uses: actions/setup-python@v4
with:
python-version: ${{ env.PYVER }}
Expand All @@ -83,7 +77,7 @@ jobs:
- name: Get changed files (config)
id: changed_files_config
if: always()
uses: tj-actions/changed-files@v20
uses: ./.github/actions/pr_changed_files
with:
files: |
${{ env.CONFIG_FILES_PATH }}
Expand All @@ -105,7 +99,7 @@ jobs:
- name: Get changed files (conandata)
id: changed_files_conandata
if: always()
uses: tj-actions/changed-files@v20
uses: ./.github/actions/pr_changed_files
with:
files: |
${{ env.CONANDATA_FILES_PATH }}
Expand Down

0 comments on commit 46bbd46

Please sign in to comment.