# 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 }}>" } } ] }