123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- # Copyright 2020 The Actions Ecosystem Authors
- # Modifications Copyright Materialize, Inc. and contributors. All rights reserved.
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- # Portions of this file are derived from the README examples in the Action
- # Slack Notifier project. The original source code was retrieved on
- # January 5, 2022 from:
- #
- # https://github.com/actions-ecosystem/action-slack-notifier/blob/fc778468d09c43a6f4d1b8cccaca59766656996a/README.md
- # Send a notification to the #rnd-sql-council Slack channel when a change
- # to the SQL parser or the system catalog schema is made.
- #
- # A notification is sent when all of these conditions are true:
- # * A ready-to-review PR is (re-)opened, or a PR is moved from draft
- # to ready-to-review.
- # * The PR modifies a file in 'src/sql-parser/','src/sql-lexer/', or 'src/catalog/src/builtin.rs'.
- name: Slack SQL Council Notifications
- on:
- pull_request_target:
- types:
- - opened
- - reopened
- - ready_for_review
- paths:
- - "src/sql-parser/**"
- - "src/sql-lexer/**"
- - "src/catalog/src/builtin.rs"
- - test/sqllogictest/mz_catalog_server_index_accounting.slt
- jobs:
- notify:
- name: "Notify about changes to the SQL parser"
- runs-on: ubuntu-latest
- if: ${{ !github.event.pull_request.draft }}
- steps:
- - name: "Path filter"
- id: filter
- uses: dorny/paths-filter@v2
- with:
- filters: |
- sql-parser:
- - 'src/sql-parser/**'
- - 'src/sql-lexer/**'
- - '!**/Cargo.toml'
- - '!**/BUILD.bazel'
- system-catalog:
- - 'src/catalog/src/builtin.rs'
- - '!**/Cargo.toml'
- - '!**/BUILD.bazel'
- index-slt:
- - 'test/sqllogictest/mz_catalog_server_index_accounting.slt'
- - name: Checkout
- uses: actions/checkout@v4
- - name: "Check Retained Metric Changes"
- id: check-retain-metrics
- if: steps.filter.outputs.builtin-rs == 'true'
- run: |
- # Check for the text "is_retained_metrics" modified in builtin.rs in the pull request
- if git diff ${{ github.event.pull_request.base.sha }} -- 'src/catalog/src/builtin.rs' | grep -i 'is_retained_metrics'; then
- echo "changed=true" >> $GITHUB_OUTPUT
- fi
- - name: "Push to Slack"
- if: steps.filter.outputs.sql-parser == 'true' || steps.filter.outputs.system-catalog == 'true' || steps.filter.outputs.index-slt == 'true'
- uses: actions-ecosystem/action-slack-notifier@fc778468d09c43a6f4d1b8cccaca59766656996a
- with:
- slack_token: ${{ secrets.SLACK_TOKEN }}
- channel: rnd-sql-council
- custom_payload: |
- {
- "blocks": [
- {
- "type": "section",
- "text": {
- "type": "mrkdwn",
- "text": "A new ${{ steps.filter.outputs.sql-parser == 'true' && 'SQL parser' || 'system catalog' }} change is ready for review!"
- }
- },
- {
- "type": "section",
- "text": {
- "type": "mrkdwn",
- "text": ${{ toJSON(format('• *PR:* <{0}|{1}>', github.event.pull_request.html_url, github.event.pull_request.title)) }}
- }
- },
- {
- "type": "section",
- "text": {
- "type": "mrkdwn",
- "text": "• *Author:* <${{ github.event.pull_request.user.html_url }}|${{ github.event.pull_request.user.login }}>"
- }
- }
- ]
- }
|