Skip to content

Commit c83f711

Browse files
authored
Create mutalk-workflow.yml (#120)
Create reusable mutalk-workflow.yml
1 parent 7a75b07 commit c83f711

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

.github/workflows/mutalk-workflow.yml

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: MutalkCI
2+
3+
# This reusable workflow defines a mutation testing CI to run on a ginven project
4+
# Specify the mode (full or diff) to run mutations
5+
6+
on:
7+
workflow_call:
8+
inputs:
9+
mode:
10+
description: 'modes: full (run on all project), diff (run on the last commit diff)'
11+
default: 'full'
12+
type: string
13+
14+
jobs:
15+
mutation_testing:
16+
runs-on: ubuntu-latest
17+
permissions:
18+
pull-requests: write
19+
steps:
20+
- uses: actions/checkout@v4
21+
with:
22+
fetch-depth: 0
23+
24+
- uses: hpi-swa/setup-smalltalkCI@v1
25+
id: smalltalkci
26+
with:
27+
smalltalk-image: Pharo64-stable
28+
29+
- run: smalltalkci -s ${{ steps.smalltalkci.outputs.smalltalk-image }}
30+
shell: bash
31+
timeout-minutes: 15
32+
33+
- run: ${{env.SMALLTALK_CI_VM}} ${{env.SMALLTALK_CI_IMAGE}} metacello install "github://pharo-contributions/mutalk/src" BaselineOfMuTalk
34+
shell: bash
35+
36+
- name: full mutation testing
37+
if: inputs.mode == 'full'
38+
run: ${{env.SMALLTALK_CI_VM}} ${{env.SMALLTALK_CI_IMAGE}} mutalk --project=${{github.event.repository.name}}
39+
40+
- name: diff mutation testing
41+
if: inputs.mode == 'diff'
42+
run: ${{env.SMALLTALK_CI_VM}} ${{env.SMALLTALK_CI_IMAGE}} mutalk --project=${{github.event.repository.name}} --diff
43+
44+
- name: Comment PR
45+
uses: thollander/actions-comment-pull-request@v2
46+
with:
47+
comment_tag: mut_report
48+
filePath: "${{env.SMALLTALK_CI_BUILD_BASE}}/__mutalk_summary.md"
49+
50+
- run: cp ${{env.SMALLTALK_CI_BUILD_BASE}}/__mutalk_summary.md $GITHUB_STEP_SUMMARY
51+
52+
- uses: actions/upload-artifact@v4
53+
with:
54+
name: mutation-testing-output
55+
path: ${{env.SMALLTALK_CI_BUILD_BASE}}/__mutalk_export.json

0 commit comments

Comments
 (0)