SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
gawd: A Differencing Tool for GitHub Actions
Workflows
Pooya Rostami Mazrae, Alexandre Decan, Tom Mens
University of Mons, Belgium
MSR 2024
Evolution of GitHub Actions workflow files
2
Proportion of touched lines of code.
Number of modified lines of code.
Number of added lines of code.
A Preliminary Study of GitHub Actions Workflow Changes, SATToSE 2023,
https://ceur-ws.org/Vol-3483/paper8.pdf
Example of a workflow file diff
3
Expected output
4
remove on.pull_request
change on.push from (all branches) to (branches: [master, develop])
Expected output
5
rename jobs.build to jobs.build-analyse
add jobs.build-analyse.name with 'build and analysis'
Expected output
6
move jobs.build.steps[1] to jobs.build-analyse.steps[0]
change jobs.build.steps[1].name from 'Set up with Java 11' to 'Set up with Java 17'
change jobs.build.steps[1].uses from 'actions/setup-java@v1' to 'actions/setup-java@v3’
add jobs.build-analyse.steps[0].with.distribution with 'temurin'
add jobs.build-analyse.steps[0].with.cache with 'maven’
change jobs.build.steps[1].with.java-version from 11 to 17
move jobs.build.steps[0] to jobs.build-analyse.steps[1]
change jobs.build.steps[0].uses from 'actions/checkout@v2' to 'actions/checkout@v3'
Expected output
7
add jobs.build-analyse.steps[3]
About gawd
• Open source tool
• How does it work?
• Evaluation
• Configuring gawd
8
gawd first second
[--help] [--threshold X] [--position-weight X]
[--job-name-weight X] [--short] [--json] [--verbose]
9
% gawd old_version.yaml new_version.yaml –short
removed on.pull_request with None
changed on.push from None to {'branches': ['maste (...) develop’]}
renamed jobs.build to jobs.build-analyse
added jobs.build-analyse.name with 'build and analysis’
moved jobs.build.steps[0] to jobs.build-analyse.steps[1]
changed jobs.build.steps[0].uses from 'actions/checkout@v2' to 'actions/checkout@v3’
moved jobs.build.steps[3] to jobs.build-analyse.steps[4]
added jobs.build-analyse.steps[4].with.generate-summary with True
moved jobs.build.steps[1] to jobs.build-analyse.steps[0]
changed jobs.build.steps[1].name from 'Set up with Java 11' to 'Set up with Java 17’
changed jobs.build.steps[1].uses from 'actions/setup-java@v1' to 'actions/setup-java@v3’
added jobs.build-analyse.steps[0].with.distribution with 'temurin’
added jobs.build-analyse.steps[0].with.cache with 'maven’
changed jobs.build.steps[1].with.java-version from 11 to 17
added jobs.build-analyse.steps[3] with {'name': 'Publish Te (...) eport@v1'}
gawd output
9
10
https://github.com/pooya-rostami/gawd
pip install gawd

Mais conteúdo relacionado

Semelhante a gawd a differencing tool for GitHub Actions workflows .pdf

Dev Jumpstart: Build Your First App with MongoDB
Dev Jumpstart: Build Your First App with MongoDBDev Jumpstart: Build Your First App with MongoDB
Dev Jumpstart: Build Your First App with MongoDB
MongoDB
 

Semelhante a gawd a differencing tool for GitHub Actions workflows .pdf (20)

Sbt for mere mortals
Sbt for mere mortalsSbt for mere mortals
Sbt for mere mortals
 
Dev Jumpstart: Build Your First App with MongoDB
Dev Jumpstart: Build Your First App with MongoDBDev Jumpstart: Build Your First App with MongoDB
Dev Jumpstart: Build Your First App with MongoDB
 
Final ppt
Final pptFinal ppt
Final ppt
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
 
Gitlab and Lingvokot
Gitlab and LingvokotGitlab and Lingvokot
Gitlab and Lingvokot
 
Back to Basics, webinar 2: La tua prima applicazione MongoDB
Back to Basics, webinar 2: La tua prima applicazione MongoDBBack to Basics, webinar 2: La tua prima applicazione MongoDB
Back to Basics, webinar 2: La tua prima applicazione MongoDB
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
3 Ways to Get Started with a React App in 2024.pdf
3 Ways to Get Started with a React App in 2024.pdf3 Ways to Get Started with a React App in 2024.pdf
3 Ways to Get Started with a React App in 2024.pdf
 
Advanced Git Techniques: Subtrees, Grafting, and Other Fun Stuff
Advanced Git Techniques: Subtrees, Grafting, and Other Fun StuffAdvanced Git Techniques: Subtrees, Grafting, and Other Fun Stuff
Advanced Git Techniques: Subtrees, Grafting, and Other Fun Stuff
 
C++ Programming
C++ ProgrammingC++ Programming
C++ Programming
 
Rails Rookies Bootcamp - Blogger
Rails Rookies Bootcamp - BloggerRails Rookies Bootcamp - Blogger
Rails Rookies Bootcamp - Blogger
 
Bio bigdata
Bio bigdata Bio bigdata
Bio bigdata
 
C++ Programming
C++ ProgrammingC++ Programming
C++ Programming
 
Git
GitGit
Git
 
Git cheat sheet
Git cheat sheetGit cheat sheet
Git cheat sheet
 
PVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agents
PVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agentsPVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agents
PVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agents
 
Git & GitLab
Git & GitLabGit & GitLab
Git & GitLab
 
Introduction to GitHub Actions - How to easily automate and integrate with Gi...
Introduction to GitHub Actions - How to easily automate and integrate with Gi...Introduction to GitHub Actions - How to easily automate and integrate with Gi...
Introduction to GitHub Actions - How to easily automate and integrate with Gi...
 
Collaborative development with Git | Workshop
Collaborative development with Git | WorkshopCollaborative development with Git | Workshop
Collaborative development with Git | Workshop
 
20190627 j hipster-conf- diary of a java dev lost in the .net world
20190627   j hipster-conf- diary of a java dev lost in the .net world20190627   j hipster-conf- diary of a java dev lost in the .net world
20190627 j hipster-conf- diary of a java dev lost in the .net world
 

Último

一比一原版阿德莱德大学毕业证成绩单如何办理
一比一原版阿德莱德大学毕业证成绩单如何办理一比一原版阿德莱德大学毕业证成绩单如何办理
一比一原版阿德莱德大学毕业证成绩单如何办理
pyhepag
 
NO1 Best Kala Jadu Expert Specialist In Germany Kala Jadu Expert Specialist I...
NO1 Best Kala Jadu Expert Specialist In Germany Kala Jadu Expert Specialist I...NO1 Best Kala Jadu Expert Specialist In Germany Kala Jadu Expert Specialist I...
NO1 Best Kala Jadu Expert Specialist In Germany Kala Jadu Expert Specialist I...
Amil baba
 
Abortion Clinic in Randfontein +27791653574 Randfontein WhatsApp Abortion Cli...
Abortion Clinic in Randfontein +27791653574 Randfontein WhatsApp Abortion Cli...Abortion Clinic in Randfontein +27791653574 Randfontein WhatsApp Abortion Cli...
Abortion Clinic in Randfontein +27791653574 Randfontein WhatsApp Abortion Cli...
mikehavy0
 
如何办理(Dalhousie毕业证书)达尔豪斯大学毕业证成绩单留信学历认证
如何办理(Dalhousie毕业证书)达尔豪斯大学毕业证成绩单留信学历认证如何办理(Dalhousie毕业证书)达尔豪斯大学毕业证成绩单留信学历认证
如何办理(Dalhousie毕业证书)达尔豪斯大学毕业证成绩单留信学历认证
zifhagzkk
 
如何办理哥伦比亚大学毕业证(Columbia毕业证)成绩单原版一比一
如何办理哥伦比亚大学毕业证(Columbia毕业证)成绩单原版一比一如何办理哥伦比亚大学毕业证(Columbia毕业证)成绩单原版一比一
如何办理哥伦比亚大学毕业证(Columbia毕业证)成绩单原版一比一
fztigerwe
 
1:1原版定制利物浦大学毕业证(Liverpool毕业证)成绩单学位证书留信学历认证
1:1原版定制利物浦大学毕业证(Liverpool毕业证)成绩单学位证书留信学历认证1:1原版定制利物浦大学毕业证(Liverpool毕业证)成绩单学位证书留信学历认证
1:1原版定制利物浦大学毕业证(Liverpool毕业证)成绩单学位证书留信学历认证
ppy8zfkfm
 
原件一样(UWO毕业证书)西安大略大学毕业证成绩单留信学历认证
原件一样(UWO毕业证书)西安大略大学毕业证成绩单留信学历认证原件一样(UWO毕业证书)西安大略大学毕业证成绩单留信学历认证
原件一样(UWO毕业证书)西安大略大学毕业证成绩单留信学历认证
pwgnohujw
 
一比一原版纽卡斯尔大学毕业证成绩单如何办理
一比一原版纽卡斯尔大学毕业证成绩单如何办理一比一原版纽卡斯尔大学毕业证成绩单如何办理
一比一原版纽卡斯尔大学毕业证成绩单如何办理
cyebo
 
Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...
Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...
Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...
Valters Lauzums
 

Último (20)

Identify Rules that Predict Patient’s Heart Disease - An Application of Decis...
Identify Rules that Predict Patient’s Heart Disease - An Application of Decis...Identify Rules that Predict Patient’s Heart Disease - An Application of Decis...
Identify Rules that Predict Patient’s Heart Disease - An Application of Decis...
 
一比一原版阿德莱德大学毕业证成绩单如何办理
一比一原版阿德莱德大学毕业证成绩单如何办理一比一原版阿德莱德大学毕业证成绩单如何办理
一比一原版阿德莱德大学毕业证成绩单如何办理
 
Jual Obat Aborsi Bandung (Asli No.1) Wa 082134680322 Klinik Obat Penggugur Ka...
Jual Obat Aborsi Bandung (Asli No.1) Wa 082134680322 Klinik Obat Penggugur Ka...Jual Obat Aborsi Bandung (Asli No.1) Wa 082134680322 Klinik Obat Penggugur Ka...
Jual Obat Aborsi Bandung (Asli No.1) Wa 082134680322 Klinik Obat Penggugur Ka...
 
NO1 Best Kala Jadu Expert Specialist In Germany Kala Jadu Expert Specialist I...
NO1 Best Kala Jadu Expert Specialist In Germany Kala Jadu Expert Specialist I...NO1 Best Kala Jadu Expert Specialist In Germany Kala Jadu Expert Specialist I...
NO1 Best Kala Jadu Expert Specialist In Germany Kala Jadu Expert Specialist I...
 
Abortion Clinic in Randfontein +27791653574 Randfontein WhatsApp Abortion Cli...
Abortion Clinic in Randfontein +27791653574 Randfontein WhatsApp Abortion Cli...Abortion Clinic in Randfontein +27791653574 Randfontein WhatsApp Abortion Cli...
Abortion Clinic in Randfontein +27791653574 Randfontein WhatsApp Abortion Cli...
 
如何办理(Dalhousie毕业证书)达尔豪斯大学毕业证成绩单留信学历认证
如何办理(Dalhousie毕业证书)达尔豪斯大学毕业证成绩单留信学历认证如何办理(Dalhousie毕业证书)达尔豪斯大学毕业证成绩单留信学历认证
如何办理(Dalhousie毕业证书)达尔豪斯大学毕业证成绩单留信学历认证
 
Bios of leading Astrologers & Researchers
Bios of leading Astrologers & ResearchersBios of leading Astrologers & Researchers
Bios of leading Astrologers & Researchers
 
如何办理哥伦比亚大学毕业证(Columbia毕业证)成绩单原版一比一
如何办理哥伦比亚大学毕业证(Columbia毕业证)成绩单原版一比一如何办理哥伦比亚大学毕业证(Columbia毕业证)成绩单原版一比一
如何办理哥伦比亚大学毕业证(Columbia毕业证)成绩单原版一比一
 
Credit Card Fraud Detection: Safeguarding Transactions in the Digital Age
Credit Card Fraud Detection: Safeguarding Transactions in the Digital AgeCredit Card Fraud Detection: Safeguarding Transactions in the Digital Age
Credit Card Fraud Detection: Safeguarding Transactions in the Digital Age
 
2024 Q2 Orange County (CA) Tableau User Group Meeting
2024 Q2 Orange County (CA) Tableau User Group Meeting2024 Q2 Orange County (CA) Tableau User Group Meeting
2024 Q2 Orange County (CA) Tableau User Group Meeting
 
1:1原版定制利物浦大学毕业证(Liverpool毕业证)成绩单学位证书留信学历认证
1:1原版定制利物浦大学毕业证(Liverpool毕业证)成绩单学位证书留信学历认证1:1原版定制利物浦大学毕业证(Liverpool毕业证)成绩单学位证书留信学历认证
1:1原版定制利物浦大学毕业证(Liverpool毕业证)成绩单学位证书留信学历认证
 
Northern New England Tableau User Group (TUG) May 2024
Northern New England Tableau User Group (TUG) May 2024Northern New England Tableau User Group (TUG) May 2024
Northern New England Tableau User Group (TUG) May 2024
 
原件一样(UWO毕业证书)西安大略大学毕业证成绩单留信学历认证
原件一样(UWO毕业证书)西安大略大学毕业证成绩单留信学历认证原件一样(UWO毕业证书)西安大略大学毕业证成绩单留信学历认证
原件一样(UWO毕业证书)西安大略大学毕业证成绩单留信学历认证
 
The Significance of Transliteration Enhancing
The Significance of Transliteration EnhancingThe Significance of Transliteration Enhancing
The Significance of Transliteration Enhancing
 
123.docx. .
123.docx.                                 .123.docx.                                 .
123.docx. .
 
一比一原版纽卡斯尔大学毕业证成绩单如何办理
一比一原版纽卡斯尔大学毕业证成绩单如何办理一比一原版纽卡斯尔大学毕业证成绩单如何办理
一比一原版纽卡斯尔大学毕业证成绩单如何办理
 
Statistics Informed Decisions Using Data 5th edition by Michael Sullivan solu...
Statistics Informed Decisions Using Data 5th edition by Michael Sullivan solu...Statistics Informed Decisions Using Data 5th edition by Michael Sullivan solu...
Statistics Informed Decisions Using Data 5th edition by Michael Sullivan solu...
 
Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...
Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...
Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...
 
Digital Marketing Demystified: Expert Tips from Samantha Rae Coolbeth
Digital Marketing Demystified: Expert Tips from Samantha Rae CoolbethDigital Marketing Demystified: Expert Tips from Samantha Rae Coolbeth
Digital Marketing Demystified: Expert Tips from Samantha Rae Coolbeth
 
MATERI MANAJEMEN OF PENYAKIT TETANUS.ppt
MATERI  MANAJEMEN OF PENYAKIT TETANUS.pptMATERI  MANAJEMEN OF PENYAKIT TETANUS.ppt
MATERI MANAJEMEN OF PENYAKIT TETANUS.ppt
 

gawd a differencing tool for GitHub Actions workflows .pdf

  • 1. gawd: A Differencing Tool for GitHub Actions Workflows Pooya Rostami Mazrae, Alexandre Decan, Tom Mens University of Mons, Belgium MSR 2024
  • 2. Evolution of GitHub Actions workflow files 2 Proportion of touched lines of code. Number of modified lines of code. Number of added lines of code. A Preliminary Study of GitHub Actions Workflow Changes, SATToSE 2023, https://ceur-ws.org/Vol-3483/paper8.pdf
  • 3. Example of a workflow file diff 3
  • 4. Expected output 4 remove on.pull_request change on.push from (all branches) to (branches: [master, develop])
  • 5. Expected output 5 rename jobs.build to jobs.build-analyse add jobs.build-analyse.name with 'build and analysis'
  • 6. Expected output 6 move jobs.build.steps[1] to jobs.build-analyse.steps[0] change jobs.build.steps[1].name from 'Set up with Java 11' to 'Set up with Java 17' change jobs.build.steps[1].uses from 'actions/setup-java@v1' to 'actions/setup-java@v3’ add jobs.build-analyse.steps[0].with.distribution with 'temurin' add jobs.build-analyse.steps[0].with.cache with 'maven’ change jobs.build.steps[1].with.java-version from 11 to 17 move jobs.build.steps[0] to jobs.build-analyse.steps[1] change jobs.build.steps[0].uses from 'actions/checkout@v2' to 'actions/checkout@v3'
  • 8. About gawd • Open source tool • How does it work? • Evaluation • Configuring gawd 8 gawd first second [--help] [--threshold X] [--position-weight X] [--job-name-weight X] [--short] [--json] [--verbose]
  • 9. 9 % gawd old_version.yaml new_version.yaml –short removed on.pull_request with None changed on.push from None to {'branches': ['maste (...) develop’]} renamed jobs.build to jobs.build-analyse added jobs.build-analyse.name with 'build and analysis’ moved jobs.build.steps[0] to jobs.build-analyse.steps[1] changed jobs.build.steps[0].uses from 'actions/checkout@v2' to 'actions/checkout@v3’ moved jobs.build.steps[3] to jobs.build-analyse.steps[4] added jobs.build-analyse.steps[4].with.generate-summary with True moved jobs.build.steps[1] to jobs.build-analyse.steps[0] changed jobs.build.steps[1].name from 'Set up with Java 11' to 'Set up with Java 17’ changed jobs.build.steps[1].uses from 'actions/setup-java@v1' to 'actions/setup-java@v3’ added jobs.build-analyse.steps[0].with.distribution with 'temurin’ added jobs.build-analyse.steps[0].with.cache with 'maven’ changed jobs.build.steps[1].with.java-version from 11 to 17 added jobs.build-analyse.steps[3] with {'name': 'Publish Te (...) eport@v1'} gawd output 9