Exploring GitHub Actions through EGAD: An Experience Report

E
ESUGESUG
Exploring GitHub Actions through
EGAD: An Experience Report
Pablo Valenzuela, Alexandre Bergel, Timo Kehrer, Oscar Nierstrasz
IWST 2023 - International Workshop on Smalltalk Technologies, August 29-31, 2023, Lyon, France
SEG @ University of Bern
GitHub Actions
2
• Support the automation of Software Engineering tasks
• Increasingly adopted in software repositories
• For example: Notifications, Pull request/Issue messages, Continuous Integration
• The most widely used tool for Continuous Integration
How GitHub Actions automate
software engineering tasks?
3
Workflow YAML file:
• Components
• Execution
• Specification process
Workflow
The workflow YAML file
The workflow YAML file
Execution trigger
All the jobs in the workflow
Steps
The workflow YAML file
Workflow Name
Execution trigger
All the jobs in the workflow
Job (Name: print-message)
Job’s machine configuration
Steps
Third-party action
The workflow execution
Push
Steps
Jobs
Execution
triggers Workflow
Pull request
Execution flow
Sequential
The workflow execution
Push
Steps
Jobs
Execution
triggers Workflow
Pull request
Execution flow
Sequential Parallel
…
commit 1
Incorrect workflow
specification
GitHub
repository
Machine
configuration
execution
Workflow specification process
Execution
result
Feedback loop
1st iteration
Incorrect workflow
specification
GitHub
repository
Machine
configuration
execution
Workflow specification process
Execution
result
Feedback loop
commit 2
2nd iteration
Correct workflow
specification
GitHub
repository
Machine
configuration
execution
Workflow specification process
Execution
result
Feedback loop
commit 3
3rd iteration
commit 1
commit 2
commit n
Correct workflow
specification
Consequences:
1. Pushing multiple commits contaminate the repository's history
2. Slow feedback loop
...
Workflow specification process
Exploring GitHub Actions
through EGAD
13
• EGAD: A Moldable tool for GitHub Action Analysis
• Learned lessons:
1. Compose a story,
2. Navigating custom views,
3. Supporting the onboarding of researchers on Glamorous Toolkit.
The need for a GitHub Action
domain model
14
• Workflows files à Valuable Information
• Batch tools for GA research
1. Ignore the context
2. No domain model
https://github.com/gammapy/gammapy/blob/main/.github/workflows/greetings.yml
15
Problem of this approach
1. No context
2. No domain model
We cannot fully explore the Domain!
EGAD: Explorable GitHub Action Domain Model
2
Narratives GA Domain Model Custom Views
16
17
Lesson 1:
Compose a story:
• Documenting our tasks and progress, and
• Linking documentation and source code
18
Inspect the “rich” repository
19
Inspect the “rich” repository
Identify all the YAML files
20
Inspect the “rich” repository
Identify all the YAML files
Wrap the YML file using the domain model (pythonpackage.yml)
21
Inspect the “rich” repository
Identify all the YAML files
Wrap the YML file using the domain model (pythonpackage.yml)
Turn the domain model into an inspectable Example
22
Inspect the “rich” repository
Identify all the YAML files
Wrap the YML file using the domain model (pythonpackage.yml)
Turn the domain model into an inspectable Example
Include the result of the example inspection
Navigating custom views
23
Lesson 2:
• Conduct research by navigating custom views
Navigating custom views
24
Navigating custom views
25
26
Navigating custom views
27
Navigating custom views
28
Onboarding of researchers on GT
Lesson 3:
• Support the onboarding!!
29
Onboarding of researchers on GT
• Assign an onboarding technical mentor
• Schedule regular 1:1 meetings
• Encourage using GT key resources like Lepiter notebooks, and
the explorable design
Summary
Exploring GitHub Actions through EGAD: An Experience Report
1 de 30

Recomendados

Reproducible research: practice por
Reproducible research: practiceReproducible research: practice
Reproducible research: practiceC. Tobin Magle
420 vistas41 diapositivas
Workflows using Git GitHub | Edureka por
Workflows using Git GitHub | EdurekaWorkflows using Git GitHub | Edureka
Workflows using Git GitHub | EdurekaEdureka!
1.4K vistas30 diapositivas
DWX 2022 - DevSecOps mit GitHub por
DWX 2022 - DevSecOps mit GitHubDWX 2022 - DevSecOps mit GitHub
DWX 2022 - DevSecOps mit GitHubMarc Müller
27 vistas88 diapositivas
Write microservice in golang por
Write microservice in golangWrite microservice in golang
Write microservice in golangBo-Yi Wu
14.8K vistas126 diapositivas
Go at Skroutz por
Go at SkroutzGo at Skroutz
Go at SkroutzAgisAnastasopoulos
564 vistas44 diapositivas
Contributing to Upstream Open Source Projects por
Contributing to Upstream Open Source ProjectsContributing to Upstream Open Source Projects
Contributing to Upstream Open Source ProjectsScott Garman
2.9K vistas15 diapositivas

Más contenido relacionado

Similar a Exploring GitHub Actions through EGAD: An Experience Report

AIS Technical Development Workshop 3: Getting Started with Git and GitHub por
AIS Technical Development Workshop 3: Getting Started with Git and GitHubAIS Technical Development Workshop 3: Getting Started with Git and GitHub
AIS Technical Development Workshop 3: Getting Started with Git and GitHubNhi Nguyen
187 vistas56 diapositivas
Github in Action por
Github in ActionGithub in Action
Github in ActionMorten Christensen
191 vistas50 diapositivas
Introduction to Git for Network Engineers por
Introduction to Git for Network EngineersIntroduction to Git for Network Engineers
Introduction to Git for Network EngineersJoel W. King
864 vistas13 diapositivas
[2015/2016] Collaborative software development with Git por
[2015/2016] Collaborative software development with Git[2015/2016] Collaborative software development with Git
[2015/2016] Collaborative software development with GitIvano Malavolta
1.1K vistas41 diapositivas
Rails Rookies Bootcamp - Blogger por
Rails Rookies Bootcamp - BloggerRails Rookies Bootcamp - Blogger
Rails Rookies Bootcamp - BloggerNathanial McConnell
561 vistas152 diapositivas
Que nos espera a los ALM Dudes para el 2013? por
Que nos espera a los ALM Dudes para el 2013?Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Bruno Capuano
1.9K vistas93 diapositivas

Similar a Exploring GitHub Actions through EGAD: An Experience Report(20)

AIS Technical Development Workshop 3: Getting Started with Git and GitHub por Nhi Nguyen
AIS Technical Development Workshop 3: Getting Started with Git and GitHubAIS Technical Development Workshop 3: Getting Started with Git and GitHub
AIS Technical Development Workshop 3: Getting Started with Git and GitHub
Nhi Nguyen187 vistas
Introduction to Git for Network Engineers por Joel W. King
Introduction to Git for Network EngineersIntroduction to Git for Network Engineers
Introduction to Git for Network Engineers
Joel W. King864 vistas
[2015/2016] Collaborative software development with Git por Ivano Malavolta
[2015/2016] Collaborative software development with Git[2015/2016] Collaborative software development with Git
[2015/2016] Collaborative software development with Git
Ivano Malavolta1.1K vistas
Que nos espera a los ALM Dudes para el 2013? por Bruno Capuano
Que nos espera a los ALM Dudes para el 2013?Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?
Bruno Capuano1.9K vistas
PyCon AU 2012 - Debugging Live Python Web Applications por Graham Dumpleton
PyCon AU 2012 - Debugging Live Python Web ApplicationsPyCon AU 2012 - Debugging Live Python Web Applications
PyCon AU 2012 - Debugging Live Python Web Applications
Graham Dumpleton11.4K vistas
Introduction to GitHub Actions por Knoldus Inc.
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
Knoldus Inc.3.2K vistas
Untangling fall2017 week2 por Derek Jacoby
Untangling fall2017 week2Untangling fall2017 week2
Untangling fall2017 week2
Derek Jacoby168 vistas
Untangling fall2017 week2_try2 por Derek Jacoby
Untangling fall2017 week2_try2Untangling fall2017 week2_try2
Untangling fall2017 week2_try2
Derek Jacoby309 vistas
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023 por Vadym Kazulkin
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Vadym Kazulkin415 vistas
Introduction to GitHub Actions - How to easily automate and integrate with Gi... por All Things Open
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...
All Things Open109 vistas

Más de ESUG

Workshop: Identifying concept inventories in agile programming por
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
9 vistas16 diapositivas
Technical documentation support in Pharo por
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
27 vistas39 diapositivas
The Pharo Debugger and Debugging tools: Advances and Roadmap por
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapESUG
56 vistas44 diapositivas
Sequence: Pipeline modelling in Pharo por
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
86 vistas22 diapositivas
Migration process from monolithic to micro frontend architecture in mobile ap... por
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...ESUG
19 vistas35 diapositivas
Analyzing Dart Language with Pharo: Report and early results por
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsESUG
106 vistas30 diapositivas

Más de ESUG(20)

Workshop: Identifying concept inventories in agile programming por ESUG
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
ESUG9 vistas
Technical documentation support in Pharo por ESUG
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
ESUG27 vistas
The Pharo Debugger and Debugging tools: Advances and Roadmap por ESUG
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
ESUG56 vistas
Sequence: Pipeline modelling in Pharo por ESUG
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
ESUG86 vistas
Migration process from monolithic to micro frontend architecture in mobile ap... por ESUG
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
ESUG19 vistas
Analyzing Dart Language with Pharo: Report and early results por ESUG
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
ESUG106 vistas
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6 por ESUG
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
ESUG37 vistas
A Unit Test Metamodel for Test Generation por ESUG
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
ESUG49 vistas
Creating Unit Tests Using Genetic Programming por ESUG
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG46 vistas
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes por ESUG
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
ESUG52 vistas
Pharo: a reflective language A first systematic analysis of reflective APIs por ESUG
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
ESUG57 vistas
Garbage Collector Tuning por ESUG
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
ESUG20 vistas
Improving Performance Through Object Lifetime Profiling: the DataFrame Case por ESUG
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
ESUG43 vistas
Pharo DataFrame: Past, Present, and Future por ESUG
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG43 vistas
thisContext in the Debugger por ESUG
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
ESUG36 vistas
Websockets for Fencing Score por ESUG
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
ESUG18 vistas
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript por ESUG
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ESUG46 vistas
Advanced Object- Oriented Design Mooc por ESUG
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
ESUG85 vistas
A New Architecture Reconciling Refactorings and Transformations por ESUG
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
ESUG28 vistas
BioSmalltalk por ESUG
BioSmalltalkBioSmalltalk
BioSmalltalk
ESUG415 vistas

Último

Citi TechTalk Session 2: Kafka Deep Dive por
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Diveconfluent
17 vistas60 diapositivas
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ... por
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...Donato Onofri
711 vistas34 diapositivas
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx por
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptxanimuscrm
13 vistas19 diapositivas
Tridens DevOps por
Tridens DevOpsTridens DevOps
Tridens DevOpsTridens
9 vistas28 diapositivas
Copilot Prompting Toolkit_All Resources.pdf por
Copilot Prompting Toolkit_All Resources.pdfCopilot Prompting Toolkit_All Resources.pdf
Copilot Prompting Toolkit_All Resources.pdfRiccardo Zamana
6 vistas4 diapositivas
SAP FOR TYRE INDUSTRY.pdf por
SAP FOR TYRE INDUSTRY.pdfSAP FOR TYRE INDUSTRY.pdf
SAP FOR TYRE INDUSTRY.pdfVirendra Rai, PMP
23 vistas3 diapositivas

Último(20)

Citi TechTalk Session 2: Kafka Deep Dive por confluent
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Dive
confluent17 vistas
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ... por Donato Onofri
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Donato Onofri711 vistas
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx por animuscrm
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
animuscrm13 vistas
Tridens DevOps por Tridens
Tridens DevOpsTridens DevOps
Tridens DevOps
Tridens9 vistas
Copilot Prompting Toolkit_All Resources.pdf por Riccardo Zamana
Copilot Prompting Toolkit_All Resources.pdfCopilot Prompting Toolkit_All Resources.pdf
Copilot Prompting Toolkit_All Resources.pdf
Riccardo Zamana6 vistas
Upgrading Incident Management with Icinga - Icinga Camp Milan 2023 por Icinga
Upgrading Incident Management with Icinga - Icinga Camp Milan 2023Upgrading Incident Management with Icinga - Icinga Camp Milan 2023
Upgrading Incident Management with Icinga - Icinga Camp Milan 2023
Icinga38 vistas
MariaDB stored procedures and why they should be improved por Federico Razzoli
MariaDB stored procedures and why they should be improvedMariaDB stored procedures and why they should be improved
MariaDB stored procedures and why they should be improved
Federico Razzoli8 vistas
DSD-INT 2023 Modelling litter in the Yarra and Maribyrnong Rivers (Australia)... por Deltares
DSD-INT 2023 Modelling litter in the Yarra and Maribyrnong Rivers (Australia)...DSD-INT 2023 Modelling litter in the Yarra and Maribyrnong Rivers (Australia)...
DSD-INT 2023 Modelling litter in the Yarra and Maribyrnong Rivers (Australia)...
Deltares9 vistas
Neo4j y GenAI por Neo4j
Neo4j y GenAI Neo4j y GenAI
Neo4j y GenAI
Neo4j42 vistas
A first look at MariaDB 11.x features and ideas on how to use them por Federico Razzoli
A first look at MariaDB 11.x features and ideas on how to use themA first look at MariaDB 11.x features and ideas on how to use them
A first look at MariaDB 11.x features and ideas on how to use them
Federico Razzoli45 vistas
Fleet Management Software in India por Fleetable
Fleet Management Software in India Fleet Management Software in India
Fleet Management Software in India
Fleetable11 vistas
Consulting for Data Monetization Maximizing the Profit Potential of Your Data... por Flexsin
Consulting for Data Monetization Maximizing the Profit Potential of Your Data...Consulting for Data Monetization Maximizing the Profit Potential of Your Data...
Consulting for Data Monetization Maximizing the Profit Potential of Your Data...
Flexsin 15 vistas
DSD-INT 2023 FloodAdapt - A decision-support tool for compound flood risk mit... por Deltares
DSD-INT 2023 FloodAdapt - A decision-support tool for compound flood risk mit...DSD-INT 2023 FloodAdapt - A decision-support tool for compound flood risk mit...
DSD-INT 2023 FloodAdapt - A decision-support tool for compound flood risk mit...
Deltares13 vistas
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J... por Deltares
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...
Deltares9 vistas
What Can Employee Monitoring Software Do?​ por wAnywhere
What Can Employee Monitoring Software Do?​What Can Employee Monitoring Software Do?​
What Can Employee Monitoring Software Do?​
wAnywhere21 vistas

Exploring GitHub Actions through EGAD: An Experience Report