From 6eb19427a5a7041aaa8282ee6eea8620a85476ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Szendr=C5=91?= Date: Tue, 7 Jan 2025 13:07:21 +0100 Subject: [PATCH 01/10] Update test command to run tests with pytest-autonity plugin --- .github/workflows/onpush.yml | 4 +--- pyproject.toml | 8 ++++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/onpush.yml b/.github/workflows/onpush.yml index dfb0798..c1d9e4e 100644 --- a/.github/workflows/onpush.yml +++ b/.github/workflows/onpush.yml @@ -15,7 +15,7 @@ jobs: python-ver: ["3.9", "3.10", "3.11", "3.12", "3.13"] os: [ubuntu-22.04, macos-latest] - runs-on: ${{matrix.os }} + runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 @@ -29,6 +29,4 @@ jobs: - name: Lint run: hatch run lint:check - name: Test - env: - RPC_URL: ${{ secrets.RPC_URL }} run: hatch run +py=${{ matrix.python-ver }} test:all diff --git a/pyproject.toml b/pyproject.toml index 283b63a..e797de3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,13 +39,17 @@ detached = true dependencies = ["pyabigen@git+https://github.com/clearmatics/pyabigen@v0.2.12"] [tool.hatch.envs.test] -dependencies = ["pytest"] +dependencies = [ + "pytest", + "pytest-xdist[psutil]", + "pytest-autonity@git+https://github.com/autonity/pytest-autonity" +] [[tool.hatch.envs.test.matrix]] python = ["3.9", "3.10", "3.11", "3.12", "3.13"] [tool.hatch.envs.test.scripts] -all = "pytest -v {args:tests}" +all = "pytest -v -n auto --autonity-bin build/autonity/build/bin/autonity {args:tests}" [tool.hatch.envs.lint] dependencies = ["black", "ruff", "mypy", "pyright"] From c560c6801dd66c982668accdf8dd058e15adaf50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Szendr=C5=91?= Date: Tue, 7 Jan 2025 13:59:37 +0100 Subject: [PATCH 02/10] Rework sanity tests to use pytest-autontiy plugin --- tests/test_sanity.py | 72 +++++++++++++++++++++++--------------------- 1 file changed, 37 insertions(+), 35 deletions(-) diff --git a/tests/test_sanity.py b/tests/test_sanity.py index 659ceb6..8b03bc2 100644 --- a/tests/test_sanity.py +++ b/tests/test_sanity.py @@ -1,21 +1,30 @@ # type: ignore -import os from enum import IntEnum from inspect import isclass, signature -from typing import Callable, List +from typing import List from eth_typing import ChecksumAddress from hexbytes import HexBytes -from web3 import Web3, HTTPProvider from web3.exceptions import ContractLogicError, ContractPanicError from web3.contract.contract import ContractFunction, ContractEvent import autonity +from autonity import contracts from autonity.contracts.accountability import BaseSlashingRates, Factors -from autonity.factory import LiquidLogic -BINDINGS = [attr for attr in autonity.__dict__.values() if isinstance(attr, Callable)] +BINDINGS = [ + contracts.accountability.Accountability, + contracts.acu.ACU, + contracts.autonity.Autonity, + contracts.inflation_controller.InflationController, + contracts.liquid_logic.LiquidLogic, + contracts.omission_accountability.OmissionAccountability, + contracts.oracle.Oracle, + contracts.stabilization.Stabilization, + contracts.supply_control.SupplyControl, + contracts.upgrade_manager.UpgradeManager, +] TEST_INPUTS = { bool: True, @@ -32,38 +41,19 @@ def pytest_generate_tests(metafunc): - if "test_input" not in metafunc.fixturenames: + if "test_case" not in metafunc.fixturenames: return - w3 = Web3(HTTPProvider(os.environ["RPC_URL"])) - test_inputs = [] + test_cases = [] ids = [] for binding in BINDINGS: - if binding is LiquidLogic: - aut = autonity.Autonity(w3) - validator = aut.get_validator(aut.get_validators()[0]) - contract = binding(w3, validator.liquid_state_contract) - else: - contract = binding(w3) - - for attr_name in dir(contract): - if attr_name.startswith("_"): - continue - attr = getattr(contract, attr_name) - if isinstance(attr, Callable): - if isinstance(attr, ContractEvent): - test_inputs.append((attr, tuple())) - ids.append(f"{binding.__name__}.{attr_name}") - elif hasattr(attr, "_f"): # multimethod - for i, method in enumerate(attr._f.methods, 1): - test_inputs.append((attr, get_test_args(method.implementation))) - ids.append(f"{binding.__name__}.{attr_name}/{i}") - else: - test_inputs.append((attr, get_test_args(attr))) - ids.append(f"{binding.__name__}.{attr_name}") - - metafunc.parametrize("test_input", test_inputs, ids=ids) + for attr_name in dir(binding): + if not attr_name.startswith("_"): + test_cases.append((binding.__name__, attr_name)) + ids.append(f"{binding.__name__}.{attr_name}") + + metafunc.parametrize("test_case", test_cases, ids=ids) def get_test_args(function): @@ -87,10 +77,22 @@ def _get_arg_value(type_): return TEST_INPUTS[type_] -def test_bindings_with_arbitrary_inputs(test_input): - binding, args = test_input +def test_bindings_with_arbitrary_inputs(w3, test_case): + binding_name, attr_name = test_case + factory_function = getattr(autonity, binding_name) + + if factory_function is autonity.LiquidLogic: + aut = autonity.Autonity(w3) + validator = aut.get_validator(aut.get_validators()[0]) + binding = factory_function(w3, validator.liquid_state_contract) + else: + binding = factory_function(w3) + + attr = getattr(binding, attr_name) + args = () if isinstance(attr, ContractEvent) else get_test_args(attr) + try: - return_value = binding(*args) + return_value = attr(*args) assert return_value is not None if isinstance(return_value, ContractFunction): assert return_value.build_transaction() From 48ac5a42221d3cf2908aca1c4ce6d58f7db3f56b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Szendr=C5=91?= Date: Sun, 16 Feb 2025 11:14:15 +0000 Subject: [PATCH 03/10] Read pyabigen & pytest-autonity URLs from environment variable --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index e797de3..5710f97 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,13 +36,13 @@ path = "autonity/__version__.py" [tool.hatch.envs.generate] detached = true -dependencies = ["pyabigen@git+https://github.com/clearmatics/pyabigen@v0.2.12"] +dependencies = ["pyabigen@git+{env:PYABIGEN_URL:==https://github.com/clearmatics/pyabigen@v0.2.12}"] [tool.hatch.envs.test] dependencies = [ "pytest", "pytest-xdist[psutil]", - "pytest-autonity@git+https://github.com/autonity/pytest-autonity" + "pytest-autonity@git+{env:PYTEST_AUTONITY_URL:==https://github.com/autonity/pytest-autonity}" ] [[tool.hatch.envs.test.matrix]] From 7ef429d5460509cf23e41f32f9be052ee6f32f48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Szendr=C5=91?= Date: Fri, 14 Feb 2025 17:29:33 +0000 Subject: [PATCH 04/10] Add GitHub workflow that is triggered by new Autonity builds --- .github/workflows/upstream-trigger.yml | 148 +++++++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 .github/workflows/upstream-trigger.yml diff --git a/.github/workflows/upstream-trigger.yml b/.github/workflows/upstream-trigger.yml new file mode 100644 index 0000000..6f3487c --- /dev/null +++ b/.github/workflows/upstream-trigger.yml @@ -0,0 +1,148 @@ +name: Upstream Trigger + +on: + repository_dispatch: + types: + - new_autonity_push + - new_autonity_release + +env: + PYTHON_VERSION: 3.13 + +jobs: + update-bindings: + runs-on: ubuntu-latest + + permissions: + contents: write # For `git push` + pull-requests: write # For `gh pr create` + + steps: + - name: Log triggering event + run: echo '${{ toJSON(github.event) }}' + + - name: Clone autonity.py + uses: actions/checkout@v4 + with: + ref: develop + + - name: Clone autonity + uses: actions/checkout@v4 + with: + repository: autonity/autonity + path: build/autonity + ref: ${{ github.event.client_payload.sha }} + fetch-depth: 0 # To be able to get the most recent tag for AUTONITY_VERSION + + # This step won't be needed after pyabigen is available from PyPI + - name: Clone pyabigen + uses: actions/checkout@v4 + with: + repository: clearmatics/pyabigen + path: build/pyabigen + ref: v0.2.13 + token: ${{ secrets.ACCESS_TOKEN }} + + # This step won't be needed after pytest-autonity is available from PyPI + - name: Clone pytest-autonity + uses: actions/checkout@v4 + with: + repository: autonity/pytest-autonity + path: build/pytest-autonity + ref: v0.1.0 + token: ${{ secrets.ACCESS_TOKEN }} + + - name: Install Python + uses: actions/setup-python@v4 + with: + python-version: ${{ env.PYTHON_VERSION }} + + - name: Install Hatch + run: pip install --upgrade hatch + + - name: Download Autonity build artifacts + uses: actions/download-artifact@v4 + with: + path: build/autonity + repository: autonity/autonity + github-token: ${{ secrets.ACCESS_TOKEN }} + run-id: ${{ github.event.client_payload.run_id }} + + - name: Set Autonity permissions + run: chmod +x build/autonity/build/bin/autonity + + - name: Configure Git + run: | + git config user.name 'GitHub Actions Bot' + git config user.email 'github-actions-bot@users.noreply.github.com' + + - name: Get Autonity short commit hash + id: get_autonity_commit + run: echo sha=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT + working-directory: build/autonity + + - name: Get Autonity tag + id: get_autonity_tag + run: echo tag=$(git describe --tags) >> $GITHUB_OUTPUT + working-directory: build/autonity + + - name: Update Autonity version & run ID + run: | + echo ${{ steps.get_autonity_tag.outputs.tag }} > AUTONITY_VERSION + echo ${{ github.event.client_payload.run_id }} > AUTONITY_RUN_ID + + - name: Update bindings + run: make + env: + PYABIGEN_URL: file:///home/runner/work/autonity.py/autonity.py/build/pyabigen + + - name: Lint code + run: hatch run lint:check + + - name: Run tests + run: hatch run +py=${{ env.PYTHON_VERSION }} test:all + env: + PYTEST_AUTONITY_URL: file:///home/runner/work/autonity.py/autonity.py/build/pytest-autonity + + - name: Commit changes to develop + if: github.event.action == 'new_autonity_push' + run: | + git add autonity/contracts/*.py AUTONITY_* + git commit \ + -m 'Update for Autonity commit ${{ steps.get_autonity_commit.outputs.sha }}' \ + -m 'Triggered by https://github.com/autonity/autonity/commit/${{ steps.get_autonity_commit.outputs.sha }}' + git push + + - name: Get hash of latest commit on develop + id: get_latest_commit + run: echo sha=$(git rev-parse HEAD) >> $GITHUB_OUTPUT + + - name: Commit changes to new branch & create pull request + if: github.event.action == 'new_autonity_release' + run: | + git branch $BRANCH + git checkout $BRANCH + git add autonity/contracts/*.py AUTONITY_* + git commit \ + -m 'Update for Autonity release ${{ steps.get_autonity_tag.outputs.tag }}' \ + -m 'Triggered by https://github.com/autonity/autonity/releases/tag/${{ steps.get_autonity_tag.outputs.tag }}' + git push origin $BRANCH + gh pr create \ + -B master \ + -H $BRANCH \ + --title 'Update bindings for Autonity ${{ steps.get_autonity_tag.outputs.tag }}' \ + --body 'Merge changes from `develop` until commit ${{ steps.get_latest_commit.outputs.sha }} into `master`.' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + BRANCH: autonity-${{ steps.get_autonity_tag.outputs.tag }} + + - name: Trigger autonity-cli build + uses: peter-evans/repository-dispatch@v3 + with: + token: ${{ secrets.ACCESS_TOKEN }} + repository: autonity/autonity-cli + event-type: new_autonity_bindings + client-payload: > + { + "sha": "${{ steps.get_latest_commit.outputs.sha }}" + } From 792dfe2648f8aa430d2886df819291d1c58ad4d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Szendr=C5=91?= Date: Mon, 17 Feb 2025 14:55:34 +0000 Subject: [PATCH 05/10] Send Slack notification on workflow failure & new automated pull request --- .github/workflows/upstream-trigger.yml | 28 ++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/.github/workflows/upstream-trigger.yml b/.github/workflows/upstream-trigger.yml index 6f3487c..4f4642f 100644 --- a/.github/workflows/upstream-trigger.yml +++ b/.github/workflows/upstream-trigger.yml @@ -119,6 +119,7 @@ jobs: - name: Commit changes to new branch & create pull request if: github.event.action == 'new_autonity_release' + id: create_pull_request run: | git branch $BRANCH git checkout $BRANCH @@ -132,6 +133,7 @@ jobs: -H $BRANCH \ --title 'Update bindings for Autonity ${{ steps.get_autonity_tag.outputs.tag }}' \ --body 'Merge changes from `develop` until commit ${{ steps.get_latest_commit.outputs.sha }} into `master`.' + echo link=$(gh pr view --json title,url --jq '"[\(.title)](\(.url))"') >> $GITHUB_OUTPUT env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} BRANCH: autonity-${{ steps.get_autonity_tag.outputs.tag }} @@ -146,3 +148,29 @@ jobs: { "sha": "${{ steps.get_latest_commit.outputs.sha }}" } + + - name: Send Slack pull request notification + if: success() && github.event.action == 'new_autonity_release' + uses: rtCamp/action-slack-notify@v2 + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} + SLACK_CHANNEL: '#tbd' + SLACK_USERNAME: GitHub Actions Bot + SLACK_ICON_EMOJI: ':github:' + SLACK_MESSAGE: | + :github-merged: A new automated pull request has been opened. + + ${{ steps.create_pull_request.outputs.link }} + + - name: Send Slack failure notification + if: failure() + uses: rtCamp/action-slack-notify@v2 + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} + SLACK_CHANNEL: '#tbd' + SLACK_USERNAME: GitHub Actions Bot + SLACK_ICON_EMOJI: ':github:' + SLACK_MESSAGE: | + :warning: Workflow run failed. + + [Upstream commit](https://github.com/autonity/autonity/commit/${{ github.event.client_payload.sha }}) From dffbff81900baf9e7a7443b4225883d799a2fc5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Szendr=C5=91?= Date: Mon, 17 Feb 2025 17:32:58 +0000 Subject: [PATCH 06/10] Update CI job to download Autonity binary from Autonity build artifacts --- .github/workflows/onpush.yml | 35 ++++++++++++++++++++++++++++++----- AUTONITY_RUN_ID | 0 2 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 AUTONITY_RUN_ID diff --git a/.github/workflows/onpush.yml b/.github/workflows/onpush.yml index c1d9e4e..495ed01 100644 --- a/.github/workflows/onpush.yml +++ b/.github/workflows/onpush.yml @@ -13,20 +13,45 @@ jobs: strategy: matrix: python-ver: ["3.9", "3.10", "3.11", "3.12", "3.13"] - os: [ubuntu-22.04, macos-latest] - runs-on: ${{ matrix.os }} + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - name: Clone autonity.py + uses: actions/checkout@v4 + + # This step won't be needed after pytest-autonity is available from PyPI + - name: Clone pytest-autonity + uses: actions/checkout@v4 with: - submodules: recursive + repository: autonity/pytest-autonity + path: build/pytest-autonity + ref: v0.1.0 + token: ${{ secrets.ACCESS_TOKEN }} + - uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-ver }} + - name: Install Hatch run: pip install --upgrade hatch + + - name: Get Autonity run ID + id: get_run_id + run: echo run_id=$(cat AUTONITY_RUN_ID) >> $GITHUB_OUTPUT + + - name: Download Autonity build artifacts + uses: actions/download-artifact@v4 + with: + path: build/autonity + repository: clearmatics/autonity + github-token: ${{ secrets.ACCESS_TOKEN }} + run-id: ${{ steps.get_run_id.outputs.run_id }} + - name: Lint run: hatch run lint:check + - name: Test - run: hatch run +py=${{ matrix.python-ver }} test:all + run: hatch run +py=${{ env.PYTHON_VERSION }} test:all + env: + PYTEST_AUTONITY_URL: file:///home/runner/work/autonity.py/autonity.py/build/pytest-autonity diff --git a/AUTONITY_RUN_ID b/AUTONITY_RUN_ID new file mode 100644 index 0000000..e69de29 From c6c7ee47ea322b0d6f55329e8027acb716c448c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Szendr=C5=91?= Date: Mon, 17 Feb 2025 18:52:56 +0000 Subject: [PATCH 07/10] Add Makefile target for building AGC binary for running tests Add a Makefile target that calls `make autonity` in the autonity repository to build the AGC binary. --- Makefile | 26 ++++++++++++++++++-------- README.md | 7 +++++++ 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index e6eb69e..861377d 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,8 @@ VERSION := $(shell cat AUTONITY_VERSION) -AUTONITY := build/autonity -ABIDIR := $(AUTONITY)/params/generated -SRCDIR := $(AUTONITY)/autonity/solidity/contracts +AUTONITY_DIR := build/autonity +AUTONITY_BIN := $(AUTONITY_DIR)/build/bin/autonity +ABIDIR := $(AUTONITY_DIR)/params/generated +SRCDIR := $(AUTONITY_DIR)/autonity/solidity/contracts OUTDIR := autonity/contracts abigen = hatch run generate:pyabigen \ @@ -10,6 +11,7 @@ abigen = hatch run generate:pyabigen \ --devdoc $(word 2,$(1)) \ --userdoc $(word 3,$(1)) \ $(word 4,$(1)) + gentargets = $(shell find $(SRCDIR) -name $(1).sol) \ $(addprefix $(ABIDIR)/$(1),.docdev .docuser .abi) \ pyproject.toml @@ -55,16 +57,24 @@ $(OUTDIR)/supply_control.py: $(call gentargets,SupplyControl) $(OUTDIR)/upgrade_manager.py: $(call gentargets,UpgradeManager) $(call abigen,$^) --exclude setOperator >$@ -$(ABIDIR)/%.abi $(ABIDIR)/%.docdev $(ABIDIR)/%.docuser: $(AUTONITY) AUTONITY_VERSION +$(ABIDIR)/%.abi $(ABIDIR)/%.docdev $(ABIDIR)/%.docuser: $(AUTONITY_DIR) AUTONITY_VERSION cd $< && \ git fetch origin && \ - git checkout $(VERSION) && \ + git checkout -d $(VERSION) && \ make contracts -$(AUTONITY): +$(AUTONITY_BIN): $(AUTONITY_DIR) AUTONITY_VERSION + cd $< && \ + git fetch origin && \ + git checkout -d $(VERSION) && \ + make autonity + +$(AUTONITY_DIR): git clone git@github.com:autonity/autonity.git $@ +autonity: $(AUTONITY_BIN) + clean: - rm -rf $(AUTONITY) + rm -rf $(AUTONITY_DIR) -.PHONY = clean +.PHONY = autonity clean diff --git a/README.md b/README.md index 7a31c4b..6697372 100644 --- a/README.md +++ b/README.md @@ -105,6 +105,13 @@ Installed pypy3.10 @ /home/develop/.local/share/hatch/pythons/pypy3.10 ### Building and testing +First clone [Autonity](https://github.com/autonity/autonity) and build the +Autonity Go Client binary with: + +```sh +make autonity +``` + To launch the tests across all supported Python versions, run: ```sh From 0dea74764029d65a648d6042a0deb7046a585e8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Szendr=C5=91?= Date: Mon, 17 Feb 2025 19:16:08 +0000 Subject: [PATCH 08/10] Don't attempt to build protocol contracts in CI with `make` --- Makefile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Makefile b/Makefile index 861377d..15940ab 100644 --- a/Makefile +++ b/Makefile @@ -4,6 +4,7 @@ AUTONITY_BIN := $(AUTONITY_DIR)/build/bin/autonity ABIDIR := $(AUTONITY_DIR)/params/generated SRCDIR := $(AUTONITY_DIR)/autonity/solidity/contracts OUTDIR := autonity/contracts +CI := ${CI} abigen = hatch run generate:pyabigen \ --version $(VERSION) \ @@ -57,6 +58,9 @@ $(OUTDIR)/supply_control.py: $(call gentargets,SupplyControl) $(OUTDIR)/upgrade_manager.py: $(call gentargets,UpgradeManager) $(call abigen,$^) --exclude setOperator >$@ +# -- The targets below are not available in GitHub workflows -- +ifneq ($(CI),true) + $(ABIDIR)/%.abi $(ABIDIR)/%.docdev $(ABIDIR)/%.docuser: $(AUTONITY_DIR) AUTONITY_VERSION cd $< && \ git fetch origin && \ @@ -78,3 +82,5 @@ clean: rm -rf $(AUTONITY_DIR) .PHONY = autonity clean + +endif From 5bea59c46b5e5fec924b979bf531332da57d7796 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Szendr=C5=91?= Date: Mon, 17 Feb 2025 19:53:53 +0000 Subject: [PATCH 09/10] Update the README for the new workflow --- README.md | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6697372..27e70cb 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,14 @@ using [pipx](https://pipx.pypa.io/): pipx install hatch ``` +### Branches + +The repository has the following permanent branches: + +- `master`: Compatible with the upcoming Autonity release. +- `stable`: Compatible with the most recent Autonity release. +- `develop`: Compatible with the head of Autonity's `develop` branch. + ### Installing Python interpreters (optional) This project aims to be compatible with all the officially-supported versions of @@ -134,12 +142,17 @@ hatch run lint:check ### Updating the contract bindings +Contract bindings are kept in sync with the Autonity protocol contracts via +GitHub Actions workflows. However bindings might need to be re-generated +manually in case contracts are being renamed or added or removed. + To update contract bindings for a new version of the Autonity protocol, add the -new [AGC](https://github.com/autonity/autonity) version (Git tag or commit ID) -to `AUTONITY_VERSION`, then generate the contract bindings with `make`: +new [AGC](https://github.com/autonity/autonity) Git tag (the output of +`git describe --tags`) to `AUTONITY_VERSION`, then generate the contract +bindings with `make`: ```console -echo v0.14.0 > AUTONITY_VERSION +echo v1.0.2-alpha > AUTONITY_VERSION make ``` From e3014f4caccb10296b1f94c648927600def5ee71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Szendr=C5=91?= Date: Thu, 20 Feb 2025 16:12:41 +0000 Subject: [PATCH 10/10] Set channel name for Slack notifications --- .github/workflows/upstream-trigger.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/upstream-trigger.yml b/.github/workflows/upstream-trigger.yml index 4f4642f..2d8749c 100644 --- a/.github/workflows/upstream-trigger.yml +++ b/.github/workflows/upstream-trigger.yml @@ -154,7 +154,7 @@ jobs: uses: rtCamp/action-slack-notify@v2 env: SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} - SLACK_CHANNEL: '#tbd' + SLACK_CHANNEL: '#pydev-alerts' SLACK_USERNAME: GitHub Actions Bot SLACK_ICON_EMOJI: ':github:' SLACK_MESSAGE: | @@ -167,7 +167,7 @@ jobs: uses: rtCamp/action-slack-notify@v2 env: SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} - SLACK_CHANNEL: '#tbd' + SLACK_CHANNEL: '#pydev-alerts' SLACK_USERNAME: GitHub Actions Bot SLACK_ICON_EMOJI: ':github:' SLACK_MESSAGE: |