Skip to content

Commit 6bf3f19

Browse files
committed
Removed option to run incremental mutation test.
1 parent ce31982 commit 6bf3f19

File tree

4 files changed

+22
-222
lines changed

4 files changed

+22
-222
lines changed

.github/workflows/pricing.yml

Lines changed: 5 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -14,103 +14,15 @@ jobs:
1414
- name: Determine Mutation Run Parameters
1515
id: set_params
1616
shell: bash
17-
env:
18-
EVENT_NAME: ${{ github.event_name }}
19-
REF_NAME: ${{ github.ref_name }}
20-
PR_BASE_REF: ${{ github.event.pull_request.base.ref }}
21-
PR_TITLE: ${{ github.event.pull_request.title }}
22-
PR_BODY: ${{ github.event.pull_request.body }}
23-
COMMIT_MESSAGES_JOINED_WITH_SPACES_ACTIONS: ${{ join(github.event.commits.*.message, ' ') }}
24-
COMMIT_MESSAGES_JOINED_WITH_SLASHES_ACTIONS: ${{ join(github.event.commits.*.message, ' // ') }}
25-
2617
run: |
27-
echo "--- Debug: Determining mutation run parameters for pricing ---"
28-
echo "Event name: $EVENT_NAME"
29-
echo "Ref name: $REF_NAME"
30-
echo "Base ref (for PR): $PR_BASE_REF"
31-
echo "PR title: $PR_TITLE"
32-
33-
RAW_COMMIT_MESSAGES_FOR_JOIN_WITH_SLASHES="$COMMIT_MESSAGES_JOINED_WITH_SLASHES_ACTIONS"
34-
RAW_COMMIT_MESSAGES_FOR_JOIN_WITH_SPACES="$COMMIT_MESSAGES_FOR_JOIN_WITH_SPACES_ACTIONS"
35-
36-
CLEANED_COMMIT_MESSAGES_FOR_LOG="${RAW_COMMIT_MESSAGES_FOR_JOIN_WITH_SLASHES//\'/}"
37-
COMMIT_MESSAGES_LOG=$(echo "${CLEANED_COMMIT_MESSAGES_FOR_LOG}" | head -c 500)
38-
echo "Commit messages in push (cleaned, first 500 chars): ${COMMIT_MESSAGES_LOG}..."
39-
40-
CLEANED_COMMIT_MESSAGES_FOR_CONTAINS="${RAW_COMMIT_MESSAGES_FOR_JOIN_WITH_SPACES//\'/}"
41-
42-
if [[ "${CLEANED_COMMIT_MESSAGES_FOR_CONTAINS}" == *"[mutate-full]"* ]]; then
43-
CONTAINS_MUTATE_FULL_IN_PUSH="true"
44-
else
45-
CONTAINS_MUTATE_FULL_IN_PUSH="false"
46-
fi
47-
echo "Contains '[mutate-full]' in push commit messages (from cleaned messages): $CONTAINS_MUTATE_FULL_IN_PUSH"
48-
49-
CLEANED_PR_TITLE="${PR_TITLE//\'/}"
50-
if [[ "${CLEANED_PR_TITLE}" == *"[mutate-full]"* ]]; then
51-
CONTAINS_MUTATE_FULL_IN_PR_TITLE="true"
52-
else
53-
CONTAINS_MUTATE_FULL_IN_PR_TITLE="false"
54-
fi
55-
echo "Contains '[mutate-full]' in PR title (from cleaned title): $CONTAINS_MUTATE_FULL_IN_PR_TITLE"
56-
57-
CLEANED_PR_BODY="${PR_BODY//\'/}"
58-
if [[ "${CLEANED_PR_BODY}" == *"[mutate-full]"* ]]; then
59-
CONTAINS_MUTATE_FULL_IN_PR_BODY="true"
60-
else
61-
CONTAINS_MUTATE_FULL_IN_PR_BODY="false"
62-
fi
63-
echo "Contains '[mutate-full]' in PR body (from cleaned body): $CONTAINS_MUTATE_FULL_IN_PR_BODY"
64-
18+
echo "--- Setting mutation run parameters for pricing ---"
19+
echo "Forcing full mutation run."
6520
echo "---------------------------------------------"
6621
6722
FINAL_MUTANT_MODE="full"
6823
FINAL_NUM_GROUPS=2
6924
FINAL_SINCE_TARGET=""
7025
71-
IS_MUTATE_FULL_TRIGGERED="false"
72-
if [[ "$EVENT_NAME" == "pull_request" && \
73-
( "$CONTAINS_MUTATE_FULL_IN_PR_TITLE" == "true" || "$CONTAINS_MUTATE_FULL_IN_PR_BODY" == "true" ) ]]; then
74-
echo "Logic path: [mutate-full] in PR title/body."
75-
IS_MUTATE_FULL_TRIGGERED="true"
76-
elif [[ "$EVENT_NAME" == "push" && "$CONTAINS_MUTATE_FULL_IN_PUSH" == "true" ]]; then
77-
echo "Logic path: [mutate-full] in push commit message(s)."
78-
IS_MUTATE_FULL_TRIGGERED="true"
79-
fi
80-
81-
if [[ "$IS_MUTATE_FULL_TRIGGERED" == "true" ]]; then
82-
echo "Action: Mode set to 'full' (NUM_GROUPS=2) due to [mutate-full] trigger."
83-
FINAL_MUTANT_MODE="full"
84-
FINAL_NUM_GROUPS=2
85-
else
86-
if [[ "$EVENT_NAME" == "pull_request" ]]; then
87-
echo "Logic path: Pull request event (no [mutate-full] trigger)."
88-
echo "Action: Mode set to 'incremental' (NUM_GROUPS=2) for PR."
89-
FINAL_MUTANT_MODE="incremental"
90-
FINAL_NUM_GROUPS=2
91-
FINAL_SINCE_TARGET="origin/$PR_BASE_REF"
92-
echo "Incremental target: $FINAL_SINCE_TARGET"
93-
elif [[ "$EVENT_NAME" == "push" ]]; then
94-
if [[ "$REF_NAME" == "master" || "$REF_NAME" == "main" ]]; then
95-
echo "Logic path: Push event to main branch (no [mutate-full] trigger)."
96-
echo "Action: Mode set to 'full' (NUM_GROUPS=2) for main branch."
97-
FINAL_MUTANT_MODE="full"
98-
FINAL_NUM_GROUPS=2
99-
else
100-
echo "Logic path: Push event to non-main branch ('$REF_NAME') (no [mutate-full] trigger)."
101-
echo "Action: Mode set to 'incremental' (NUM_GROUPS=2) for branch push."
102-
FINAL_MUTANT_MODE="incremental"
103-
FINAL_NUM_GROUPS=2
104-
FINAL_SINCE_TARGET="origin/master"
105-
echo "Incremental target: $FINAL_SINCE_TARGET"
106-
fi
107-
fi
108-
fi
109-
110-
echo "Debug before GITHUB_OUTPUT: FINAL_MUTANT_MODE='${FINAL_MUTANT_MODE}'"
111-
echo "Debug before GITHUB_OUTPUT: FINAL_SINCE_TARGET='${FINAL_SINCE_TARGET}'"
112-
echo "Debug before GITHUB_OUTPUT: FINAL_NUM_GROUPS='${FINAL_NUM_GROUPS}'"
113-
11426
echo "mutant_mode=${FINAL_MUTANT_MODE}" >> $GITHUB_OUTPUT
11527
echo "mutant_since_target=${FINAL_SINCE_TARGET}" >> $GITHUB_OUTPUT
11628
echo "num_groups=${FINAL_NUM_GROUPS}" >> $GITHUB_OUTPUT
@@ -240,14 +152,8 @@ jobs:
240152
working-directory: ${{ env.WORKING_DIRECTORY }}
241153
- name: Run mutation tests (parallel group for pricing)
242154
run: |
243-
echo "Debug from CI step before calling make (using PASSED_ var names):"
244-
echo " Value for PASSED_MODE='${{ env.ENV_CLI_MUTANT_MODE }}'"
245-
echo " Value for PASSED_SINCE_TARGET='${{ env.ENV_CLI_MUTANT_SINCE_TARGET }}'"
246-
echo " CI_MUTATE_SUBJECTS (from env): '${{ env.CI_MUTATE_SUBJECTS }}'"
247-
248-
make mutate \
249-
PASSED_MODE="${{ env.ENV_CLI_MUTANT_MODE }}" \
250-
PASSED_SINCE_TARGET="${{ env.ENV_CLI_MUTANT_SINCE_TARGET }}"
155+
echo "CI_MUTATE_SUBJECTS (from env): '${{ env.CI_MUTATE_SUBJECTS }}'"
156+
make mutate
251157
working-directory: ${{ env.WORKING_DIRECTORY }}
252158
env:
253159
CI_MUTATE_SUBJECTS: ${{ matrix.subject_group }}
@@ -280,4 +186,4 @@ jobs:
280186
}]
281187
}
282188
env:
283-
SLACK_WEBHOOK_URL: ${{ secrets.CI_WEBHOOK }}
189+
SLACK_WEBHOOK_URL: ${{ secrets.CI_WEBHOOK }}

.github/workflows/rails_application.yml

Lines changed: 2 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -14,93 +14,15 @@ jobs:
1414
- name: Determine Mutation Run Parameters
1515
id: set_params
1616
shell: bash
17-
env:
18-
EVENT_NAME: ${{ github.event_name }}
19-
REF_NAME: ${{ github.ref_name }}
20-
PR_BASE_REF: ${{ github.event.pull_request.base.ref }}
21-
PR_TITLE_RAW: ${{ github.event.pull_request.title }}
22-
PR_BODY_RAW: ${{ github.event.pull_request.body }}
23-
COMMIT_MESSAGES_JOINED_WITH_SPACES_RAW: ${{ join(github.event.commits.*.message, ' ') }}
24-
COMMIT_MESSAGES_JOINED_WITH_SLASHES_RAW: ${{ join(github.event.commits.*.message, ' // ') }}
2517
run: |
26-
echo "--- Debug: Determining mutation run parameters ---"
27-
echo "Event name: $EVENT_NAME"
28-
echo "Ref name: $REF_NAME"
29-
echo "Base ref (for PR): $PR_BASE_REF"
30-
echo "PR title (raw): $PR_TITLE_RAW"
31-
32-
CLEANED_COMMIT_MESSAGES_FOR_LOG_RAW="${COMMIT_MESSAGES_JOINED_WITH_SLASHES_RAW//\'/}"
33-
COMMIT_MESSAGES_LOG=$(echo "${CLEANED_COMMIT_MESSAGES_FOR_LOG_RAW}" | head -c 500)
34-
echo "Commit messages in push (cleaned, first 500 chars): ${COMMIT_MESSAGES_LOG}..."
35-
36-
CLEANED_COMMIT_MESSAGES_FOR_CONTAINS="${COMMIT_MESSAGES_JOINED_WITH_SPACES_RAW//\'/}"
37-
if [[ "${CLEANED_COMMIT_MESSAGES_FOR_CONTAINS}" == *"[mutate-full]"* ]]; then
38-
CONTAINS_MUTATE_FULL_IN_PUSH="true"
39-
else
40-
CONTAINS_MUTATE_FULL_IN_PUSH="false"
41-
fi
42-
echo "Contains '[mutate-full]' in push commit messages (from cleaned messages): $CONTAINS_MUTATE_FULL_IN_PUSH"
43-
44-
CLEANED_PR_TITLE="${PR_TITLE_RAW//\'/}"
45-
if [[ "${CLEANED_PR_TITLE}" == *"[mutate-full]"* ]]; then
46-
CONTAINS_MUTATE_FULL_IN_PR_TITLE="true"
47-
else
48-
CONTAINS_MUTATE_FULL_IN_PR_TITLE="false"
49-
fi
50-
echo "Contains '[mutate-full]' in PR title (from cleaned title): $CONTAINS_MUTATE_FULL_IN_PR_TITLE"
51-
52-
CLEANED_PR_BODY="${PR_BODY_RAW//\'/}"
53-
if [[ "${CLEANED_PR_BODY}" == *"[mutate-full]"* ]]; then
54-
CONTAINS_MUTATE_FULL_IN_PR_BODY="true"
55-
else
56-
CONTAINS_MUTATE_FULL_IN_PR_BODY="false"
57-
fi
58-
echo "Contains '[mutate-full]' in PR body (from cleaned body): $CONTAINS_MUTATE_FULL_IN_PR_BODY"
18+
echo "--- Setting mutation run parameters ---"
19+
echo "Forcing full mutation run."
5920
echo "---------------------------------------------"
6021
6122
FINAL_MUTANT_MODE="full"
6223
FINAL_NUM_GROUPS=2
6324
FINAL_SINCE_TARGET=""
6425
65-
IS_MUTATE_FULL_TRIGGERED="false"
66-
if [[ "$EVENT_NAME" == "pull_request" && \
67-
( "$CONTAINS_MUTATE_FULL_IN_PR_TITLE" == "true" || "$CONTAINS_MUTATE_FULL_IN_PR_BODY" == "true" ) ]]; then
68-
echo "Logic path: [mutate-full] in PR title/body."
69-
IS_MUTATE_FULL_TRIGGERED="true"
70-
elif [[ "$EVENT_NAME" == "push" && "$CONTAINS_MUTATE_FULL_IN_PUSH" == "true" ]]; then
71-
echo "Logic path: [mutate-full] in push commit message(s)."
72-
IS_MUTATE_FULL_TRIGGERED="true"
73-
fi
74-
75-
if [[ "$IS_MUTATE_FULL_TRIGGERED" == "true" ]]; then
76-
echo "Action: Mode set to 'full' (NUM_GROUPS=2) due to [mutate-full] trigger."
77-
FINAL_MUTANT_MODE="full"
78-
FINAL_NUM_GROUPS=2
79-
else
80-
if [[ "$EVENT_NAME" == "pull_request" ]]; then
81-
echo "Logic path: Pull request event (no [mutate-full] trigger)."
82-
echo "Action: Mode set to 'incremental' (NUM_GROUPS=2) for PR."
83-
FINAL_MUTANT_MODE="incremental"
84-
FINAL_NUM_GROUPS=2
85-
FINAL_SINCE_TARGET="origin/$PR_BASE_REF"
86-
echo "Incremental target: $FINAL_SINCE_TARGET"
87-
elif [[ "$EVENT_NAME" == "push" ]]; then
88-
if [[ "$REF_NAME" == "master" ]]; then # UWAGA: W oryginalnym pliku było "master", a nie "master" || "main". Dostosuj jeśli trzeba.
89-
echo "Logic path: Push event to master branch (no [mutate-full] trigger)."
90-
echo "Action: Mode set to 'full' (NUM_GROUPS=2) for master branch."
91-
FINAL_MUTANT_MODE="full"
92-
FINAL_NUM_GROUPS=2
93-
else
94-
echo "Logic path: Push event to non-master branch ('$REF_NAME') (no [mutate-full] trigger)."
95-
echo "Action: Mode set to 'incremental' (NUM_GROUPS=2) for branch push."
96-
FINAL_MUTANT_MODE="incremental"
97-
FINAL_NUM_GROUPS=2
98-
FINAL_SINCE_TARGET="origin/master"
99-
echo "Incremental target: $FINAL_SINCE_TARGET"
100-
fi
101-
fi
102-
fi
103-
10426
echo "mutant_mode=${FINAL_MUTANT_MODE}" >> $GITHUB_OUTPUT
10527
echo "mutant_since_target=${FINAL_SINCE_TARGET}" >> $GITHUB_OUTPUT
10628
echo "num_groups=${FINAL_NUM_GROUPS}" >> $GITHUB_OUTPUT

ecommerce/pricing/Makefile

Lines changed: 7 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
MUTANT_MODE_INTERNAL := $(PASSED_MODE)
2-
MUTANT_SINCE_TARGET_INTERNAL := $(PASSED_SINCE_TARGET)
3-
41
install:
52
@bundle install
63

@@ -10,35 +7,19 @@ test:
107

118
mutate:
129
$(eval SUBJECTS_TO_RUN := $(strip $(CI_MUTATE_SUBJECTS)))
13-
$(eval TEMP_ACTUAL_MUTANT_ARGS :=)
14-
15-
@echo "--- Preparing Mutation Test Run for pricing ---"
16-
ifeq ($(MUTANT_MODE_INTERNAL),incremental)
17-
@echo " Conditional: MUTANT_MODE_INTERNAL is 'incremental'."
18-
ifndef MUTANT_SINCE_TARGET_INTERNAL
19-
$(error FATAL ERROR (Makefile): MUTANT_MODE_INTERNAL ('$(MUTANT_MODE_INTERNAL)') is incremental, but MUTANT_SINCE_TARGET_INTERNAL is NOT DEFINED. PASSED_SINCE_TARGET was '$(PASSED_SINCE_TARGET)'.)
20-
endif
21-
ifeq ($(strip $(MUTANT_SINCE_TARGET_INTERNAL)),)
22-
$(error FATAL ERROR (Makefile): MUTANT_MODE_INTERNAL ('$(MUTANT_MODE_INTERNAL)') is incremental, but MUTANT_SINCE_TARGET_INTERNAL IS EMPTY. PASSED_SINCE_TARGET was '$(PASSED_SINCE_TARGET)', internal value was '[$(MUTANT_SINCE_TARGET_INTERNAL)]'.)
23-
endif
10+
$(eval ROOT_COMMIT := $(shell git rev-list --max-parents=0 HEAD))
2411

25-
@echo " MUTANT_SINCE_TARGET_INTERNAL appears to be set and non-empty: '[$(MUTANT_SINCE_TARGET_INTERNAL)]'"
26-
$(eval TEMP_ACTUAL_MUTANT_ARGS := --since $(MUTANT_SINCE_TARGET_INTERNAL))
27-
@echo " Action: Set for Incremental Mutation."
28-
@echo " Target for --since: '$(MUTANT_SINCE_TARGET_INTERNAL)'"
29-
else
30-
@echo " Conditional: MUTANT_MODE_INTERNAL is NOT 'incremental' (actual value: '$(MUTANT_MODE_INTERNAL)'). Setting for Full Mutation."
31-
endif
12+
@echo "--- Preparing Mutation Test Run for pricing (Full Scan on CI) ---"
13+
@echo " Forcing full scan against root commit: $(ROOT_COMMIT) to disable git filter..."
3214

33-
@echo " Final TEMP_ACTUAL_MUTANT_ARGS: '$(TEMP_ACTUAL_MUTANT_ARGS)'"
3415
ifeq ($(SUBJECTS_TO_RUN),)
35-
@echo " Subjects: All relevant (within scope of full/incremental mode)"
16+
@echo " Subjects: All available (respecting .mutant.yml)"
3617
else
37-
@echo " Subjects: Specific group for CI - '$(SUBJECTS_TO_RUN)'"
18+
@echo " Subjects: Specific group for CI - '$(SUBJECTS_TO_RUN)'"
3819
endif
3920
@echo "-----------------------------------------------------"
4021

41-
@echo "Executing: bundle exec mutant run $(TEMP_ACTUAL_MUTANT_ARGS) $(SUBJECTS_TO_RUN)"
42-
@bundle exec mutant run $(TEMP_ACTUAL_MUTANT_ARGS) $(SUBJECTS_TO_RUN)
22+
@echo "Executing: bundle exec mutant --since $(ROOT_COMMIT) run $(SUBJECTS_TO_RUN)"
23+
@bundle exec mutant --since $(ROOT_COMMIT) run $(SUBJECTS_TO_RUN)
4324

4425
.PHONY: install test mutate

rails_application/Makefile

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,29 +6,20 @@ dev:
66
@$(MAKE) -j 10 web css
77

88
mutate: ## Run mutation tests
9-
$(eval ACTUAL_MUTANT_ARGS :=)
109
$(eval SUBJECTS_TO_RUN := $(strip $(CI_MUTATE_SUBJECTS)))
10+
$(eval ROOT_COMMIT := $(shell git rev-list --max-parents=0 HEAD))
1111

12-
@echo "--- Preparing Mutation Test Run ---"
13-
ifeq ($(MUTANT_MODE),incremental)
14-
ifndef MUTANT_SINCE_TARGET
15-
$(error MUTANT_MODE is 'incremental', but MUTANT_SINCE_TARGET is not set. This variable should be set by the CI workflow.)
16-
endif
17-
$(eval ACTUAL_MUTANT_ARGS := --since $(MUTANT_SINCE_TARGET))
18-
@echo "Mutation Mode: Incremental"
19-
@echo "Target for --since: $(MUTANT_SINCE_TARGET)"
20-
else
21-
@echo "Mutation Mode: Full"
22-
endif
12+
@echo "--- Preparing Mutation Test Run (Full Scan on CI) ---"
13+
@echo " Forcing full scan against root commit: $(ROOT_COMMIT) to disable git filter..."
2314

2415
ifeq ($(SUBJECTS_TO_RUN),)
25-
@echo "Subjects: All relevant (within scope of full/incremental mode)"
16+
@echo " Subjects: All available (respecting .mutant.yml)"
2617
else
27-
@echo "Subjects: Specific group for CI - '$(SUBJECTS_TO_RUN)'"
18+
@echo " Subjects: Specific group for CI - '$(SUBJECTS_TO_RUN)'"
2819
endif
2920
@echo "------------------------------------"
30-
@echo "Executing: env RAILS_ENV=test bundle exec mutant run $(ACTUAL_MUTANT_ARGS) $(SUBJECTS_TO_RUN)"
31-
@env RAILS_ENV=test bundle exec mutant run $(ACTUAL_MUTANT_ARGS) $(SUBJECTS_TO_RUN)
21+
@echo "Executing: env RAILS_ENV=test bundle exec mutant --since $(ROOT_COMMIT) run $(SUBJECTS_TO_RUN)"
22+
@env RAILS_ENV=test bundle exec mutant --since $(ROOT_COMMIT) run $(SUBJECTS_TO_RUN)
3223

3324
test: ## Run unit tests
3425
@bin/rails tailwindcss:build
@@ -45,4 +36,4 @@ css:
4536
bin/rails tailwindcss:watch[always]
4637

4738
web:
48-
bin/rails server -p 3000
39+
bin/rails server -p 3000

0 commit comments

Comments
 (0)