install & check source distributions before wheels #2203
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# **what?** | |
# Checks that a file has been committed under the /.changes directory | |
# as a new CHANGELOG entry. Cannot check for a specific filename as | |
# it is dynamically generated by change type and timestamp. | |
# This workflow should not require any secrets since it runs for PRs | |
# from forked repos. | |
# By default, secrets are not passed to workflows running from | |
# a forked repo. | |
# **why?** | |
# Ensure code change gets reflected in the CHANGELOG. | |
# **when?** | |
# This will run for all PRs going into main and *.latest. It will | |
# run when they are opened, reopened, when any label is added or removed | |
# and when new code is pushed to the branch. The action will then get | |
# skipped if the 'Skip Changelog' label is present is any of the labels. | |
name: Check Changelog Entry | |
on: | |
pull_request: | |
types: [opened, reopened, labeled, unlabeled, synchronize] | |
workflow_dispatch: | |
defaults: | |
run: | |
shell: bash | |
permissions: | |
contents: read | |
pull-requests: write | |
env: | |
changelog_comment: 'Thank you for your pull request! We could not find a changelog entry for this change. For details on how to document a change, see [the contributing guide](https://github.com/dbt-labs/dbt-core/blob/main/CONTRIBUTING.md#adding-changelog-entry).' | |
jobs: | |
changelog: | |
name: changelog | |
if: "!contains(github.event.pull_request.labels.*.name, 'Skip Changelog')" | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check if changelog file was added | |
# https://github.com/marketplace/actions/paths-changes-filter | |
# For each filter, it sets output variable named by the filter to the text: | |
# 'true' - if any of changed files matches any of filter rules | |
# 'false' - if none of changed files matches any of filter rules | |
# also, returns: | |
# `changes` - JSON array with names of all filters matching any of the changed files | |
uses: dorny/paths-filter@v2 | |
id: filter | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
filters: | | |
changelog: | |
- added: '.changes/unreleased/**.yaml' | |
- name: Check if comment already exists | |
uses: peter-evans/find-comment@v1 | |
id: changelog_comment | |
with: | |
issue-number: ${{ github.event.pull_request.number }} | |
comment-author: 'github-actions[bot]' | |
body-includes: ${{ env.changelog_comment }} | |
- name: Create PR comment if changelog entry is missing, required, and does not exist | |
if: | | |
steps.filter.outputs.changelog == 'false' && | |
steps.changelog_comment.outputs.comment-body == '' | |
uses: peter-evans/create-or-update-comment@v1 | |
with: | |
issue-number: ${{ github.event.pull_request.number }} | |
body: ${{ env.changelog_comment }} | |
- name: Fail job if changelog entry is missing and required | |
if: steps.filter.outputs.changelog == 'false' | |
uses: actions/github-script@v6 | |
with: | |
script: core.setFailed('Changelog entry required to merge.') |