From b8539f0441c722a76633258745d2f9bd16eaf06d Mon Sep 17 00:00:00 2001 From: tansdf Date: Sat, 19 Sep 2026 13:09:13 +0300 Subject: [PATCH 1/6] Restore process exit on `--check` --- main.py | 1 + 1 file changed, 1 insertion(+) diff --git a/main.py b/main.py index 3c3ad322..3e522ead 100644 --- a/main.py +++ b/main.py @@ -40,6 +40,7 @@ args = parse_arguments() if args.check: validate_config_only() + raise SystemExit(0) setup_sighup_forwarder() From 42c53b5393ef97bf04930f104468bf76443537db Mon Sep 17 00:00:00 2001 From: Dmitry Tsybus Date: Sun, 20 Sep 2026 15:54:32 +0500 Subject: [PATCH 2/6] Updated Changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c76c9735..5238daa6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## v3.7.1 +Changes: +- Fix `--check` to exit after validating the configuration + ## v3.7.0 Changes: - Added templates for all [thread messages](https://docs.impulse.bot/stable/concepts/templates/#thread-messages) From 7b08b9eed87776148ca7bb2a0232bdb7f396199d Mon Sep 17 00:00:00 2001 From: Dmitry Tsybus Date: Sun, 20 Sep 2026 16:15:18 +0500 Subject: [PATCH 3/6] updated autotest command to latest version --- .github/workflows/_autotests.yml | 35 +------------------------------- 1 file changed, 1 insertion(+), 34 deletions(-) diff --git a/.github/workflows/_autotests.yml b/.github/workflows/_autotests.yml index 653921a5..2eea2c40 100644 --- a/.github/workflows/_autotests.yml +++ b/.github/workflows/_autotests.yml @@ -47,34 +47,6 @@ jobs: pip install -r requirements.txt python templates/gen.py - - name: Start impulse container - env: - SLACK_VERIFICATION_TOKEN: ${{ secrets.AUTOTESTS_SLACK_VERIFICATION_TOKEN }} - SLACK_BOT_USER_OAUTH_TOKEN: ${{ secrets.AUTOTESTS_SLACK_BOT_USER_OAUTH_TOKEN }} - MATTERMOST_ACCESS_TOKEN: ${{ secrets.AUTOTESTS_MATTERMOST_ACCESS_TOKEN }} - TELEGRAM_BOT_TOKEN: ${{ secrets.AUTOTESTS_TELEGRAM_BOT_TOKEN }} - IMPULSE_IMAGE_TAG: ${{ inputs.branch }} - run: | - NAME="impulse-autotests-${{ matrix.messenger_type }}" - docker run -d --pull always --rm --name "$NAME-${{ github.run_id }}" \ - -p ${{ matrix.port }}:5000 \ - -v "${{ github.workspace }}/autotests-${{ matrix.messenger_type }}:/config:ro" \ - -e SLACK_VERIFICATION_TOKEN="$SLACK_VERIFICATION_TOKEN" \ - -e SLACK_BOT_USER_OAUTH_TOKEN="$SLACK_BOT_USER_OAUTH_TOKEN" \ - -e MATTERMOST_ACCESS_TOKEN="$MATTERMOST_ACCESS_TOKEN" \ - -e TELEGRAM_BOT_TOKEN="$TELEGRAM_BOT_TOKEN" \ - -e CONFIG_PATH="/config" \ - -e HTTP_PREFIX="/${{ matrix.messenger_type }}" \ - ghcr.io/eslupmi/impulse:"${IMPULSE_IMAGE_TAG}" - - - name: Wait for impulse container to be ready - run: | - for i in $(seq 1 60); do - curl -sf "http://localhost:${{ matrix.port }}/${{ matrix.messenger_type }}/readyz" && exit 0 - sleep 1 - done - exit 1 - - name: Run autotests for ${{ matrix.messenger_type }} env: SLACK_VERIFICATION_TOKEN: ${{ secrets.AUTOTESTS_SLACK_VERIFICATION_TOKEN }} @@ -96,12 +68,7 @@ jobs: source venv/bin/activate MESSENGER_TYPE="${{ matrix.messenger_type }}" MESSENGER_CLASS="${MESSENGER_TYPE^}" - pytest --maxfail=1 --exitfirst -v -s "tests/test_${{ matrix.messenger_type }}_application.py::Test${MESSENGER_CLASS}Application" - - - name: Stop impulse container - if: always() - run: | - docker rm -f impulse-autotests-${{ matrix.messenger_type }}-${{ github.run_id }} || true + python -m autotest.runner --suite "${{ github.base_ref == 'master' && 'external' || 'internal' }}" --messenger "${{ matrix.messenger_type }}" - name: Cleanup workspace if: always() From d01d810663d6be96af1e12d5d29541da9d5895ba Mon Sep 17 00:00:00 2001 From: Dmitry Tsybus Date: Sun, 20 Sep 2026 16:28:46 +0500 Subject: [PATCH 4/6] Start container manually for external suite --- .github/workflows/_autotests.yml | 35 ++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/.github/workflows/_autotests.yml b/.github/workflows/_autotests.yml index 2eea2c40..bf230280 100644 --- a/.github/workflows/_autotests.yml +++ b/.github/workflows/_autotests.yml @@ -47,6 +47,36 @@ jobs: pip install -r requirements.txt python templates/gen.py + - name: Start impulse container + if: github.base_ref == 'master' + env: + SLACK_VERIFICATION_TOKEN: ${{ secrets.AUTOTESTS_SLACK_VERIFICATION_TOKEN }} + SLACK_BOT_USER_OAUTH_TOKEN: ${{ secrets.AUTOTESTS_SLACK_BOT_USER_OAUTH_TOKEN }} + MATTERMOST_ACCESS_TOKEN: ${{ secrets.AUTOTESTS_MATTERMOST_ACCESS_TOKEN }} + TELEGRAM_BOT_TOKEN: ${{ secrets.AUTOTESTS_TELEGRAM_BOT_TOKEN }} + IMPULSE_IMAGE_TAG: ${{ inputs.branch }} + run: | + NAME="impulse-autotests-${{ matrix.messenger_type }}" + docker run -d --pull always --rm --name "$NAME-${{ github.run_id }}" \ + -p ${{ matrix.port }}:5000 \ + -v "${{ github.workspace }}/autotests-${{ matrix.messenger_type }}:/config:ro" \ + -e SLACK_VERIFICATION_TOKEN="$SLACK_VERIFICATION_TOKEN" \ + -e SLACK_BOT_USER_OAUTH_TOKEN="$SLACK_BOT_USER_OAUTH_TOKEN" \ + -e MATTERMOST_ACCESS_TOKEN="$MATTERMOST_ACCESS_TOKEN" \ + -e TELEGRAM_BOT_TOKEN="$TELEGRAM_BOT_TOKEN" \ + -e CONFIG_PATH="/config" \ + -e HTTP_PREFIX="/${{ matrix.messenger_type }}" \ + ghcr.io/eslupmi/impulse:"${IMPULSE_IMAGE_TAG}" + + - name: Wait for impulse container to be ready + if: github.base_ref == 'master' + run: | + for i in $(seq 1 60); do + curl -sf "http://localhost:${{ matrix.port }}/${{ matrix.messenger_type }}/readyz" && exit 0 + sleep 1 + done + exit 1 + - name: Run autotests for ${{ matrix.messenger_type }} env: SLACK_VERIFICATION_TOKEN: ${{ secrets.AUTOTESTS_SLACK_VERIFICATION_TOKEN }} @@ -70,6 +100,11 @@ jobs: MESSENGER_CLASS="${MESSENGER_TYPE^}" python -m autotest.runner --suite "${{ github.base_ref == 'master' && 'external' || 'internal' }}" --messenger "${{ matrix.messenger_type }}" + - name: Stop impulse container + if: always() && github.base_ref == 'master' + run: | + docker rm -f impulse-autotests-${{ matrix.messenger_type }}-${{ github.run_id }} || true + - name: Cleanup workspace if: always() run: | From 38f26d21bf38610a83ff3987f525ab97c030a313 Mon Sep 17 00:00:00 2001 From: Dmitry Tsybus Date: Sun, 20 Sep 2026 16:42:36 +0500 Subject: [PATCH 5/6] Fix _migration.yml --- .github/workflows/_migration.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/_migration.yml b/.github/workflows/_migration.yml index 010b1e01..91178d42 100644 --- a/.github/workflows/_migration.yml +++ b/.github/workflows/_migration.yml @@ -32,7 +32,7 @@ jobs: id: latest env: GH_TOKEN: ${{ github.token }} - run: echo "tag=$(gh api "repos/${{ github.repository }}/releases/latest" --jq .tag_name)" >> "$GITHUB_OUTPUT" + run: echo "tag=$(curl -sSf -H "Accept: application/json" "https://api.github.com/repos/${{ github.repository }}/releases/latest" | grep -m1 '"tag_name"' | cut -d'"' -f4)" >> "$GITHUB_OUTPUT" - name: Backup incidents migration uses: appleboy/ssh-action@v1.0.3 From db3b1ccdbae658f36fa99479714b0b854a3d4acc Mon Sep 17 00:00:00 2001 From: Dmitry Tsybus Date: Sun, 20 Sep 2026 16:57:05 +0500 Subject: [PATCH 6/6] Fixed migration workflow --- .github/workflows/_migration.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/_migration.yml b/.github/workflows/_migration.yml index 91178d42..27aef7cc 100644 --- a/.github/workflows/_migration.yml +++ b/.github/workflows/_migration.yml @@ -30,9 +30,8 @@ jobs: steps: - name: Get latest release id: latest - env: - GH_TOKEN: ${{ github.token }} - run: echo "tag=$(curl -sSf -H "Accept: application/json" "https://api.github.com/repos/${{ github.repository }}/releases/latest" | grep -m1 '"tag_name"' | cut -d'"' -f4)" >> "$GITHUB_OUTPUT" + run: | + echo "tag=$(curl -sSf -H "Accept: application/json" "https://api.github.com/repos/${{ github.repository }}/releases/latest" | grep -m1 '"tag_name"' | cut -d'"' -f4)" >> "$GITHUB_OUTPUT" - name: Backup incidents migration uses: appleboy/ssh-action@v1.0.3