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 sur 30

Recommandé

Reproducible research: practice par
Reproducible research: practiceReproducible research: practice
Reproducible research: practiceC. Tobin Magle
420 vues41 diapositives
Workflows using Git GitHub | Edureka par
Workflows using Git GitHub | EdurekaWorkflows using Git GitHub | Edureka
Workflows using Git GitHub | EdurekaEdureka!
1.4K vues30 diapositives
DWX 2022 - DevSecOps mit GitHub par
DWX 2022 - DevSecOps mit GitHubDWX 2022 - DevSecOps mit GitHub
DWX 2022 - DevSecOps mit GitHubMarc Müller
27 vues88 diapositives
Write microservice in golang par
Write microservice in golangWrite microservice in golang
Write microservice in golangBo-Yi Wu
14.8K vues126 diapositives
Go at Skroutz par
Go at SkroutzGo at Skroutz
Go at SkroutzAgisAnastasopoulos
564 vues44 diapositives
Contributing to Upstream Open Source Projects par
Contributing to Upstream Open Source ProjectsContributing to Upstream Open Source Projects
Contributing to Upstream Open Source ProjectsScott Garman
2.9K vues15 diapositives

Contenu connexe

Similaire à Exploring GitHub Actions through EGAD: An Experience Report

AIS Technical Development Workshop 3: Getting Started with Git and GitHub par
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
188 vues56 diapositives
Github in Action par
Github in ActionGithub in Action
Github in ActionMorten Christensen
193 vues50 diapositives
Introduction to Git for Network Engineers par
Introduction to Git for Network EngineersIntroduction to Git for Network Engineers
Introduction to Git for Network EngineersJoel W. King
864 vues13 diapositives
[2015/2016] Collaborative software development with Git par
[2015/2016] Collaborative software development with Git[2015/2016] Collaborative software development with Git
[2015/2016] Collaborative software development with GitIvano Malavolta
1.1K vues41 diapositives
Rails Rookies Bootcamp - Blogger par
Rails Rookies Bootcamp - BloggerRails Rookies Bootcamp - Blogger
Rails Rookies Bootcamp - BloggerNathanial McConnell
561 vues152 diapositives
Que nos espera a los ALM Dudes para el 2013? par
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 vues93 diapositives

Similaire à Exploring GitHub Actions through EGAD: An Experience Report(20)

AIS Technical Development Workshop 3: Getting Started with Git and GitHub par 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 Nguyen188 vues
Introduction to Git for Network Engineers par Joel W. King
Introduction to Git for Network EngineersIntroduction to Git for Network Engineers
Introduction to Git for Network Engineers
Joel W. King864 vues
[2015/2016] Collaborative software development with Git par 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 vues
Que nos espera a los ALM Dudes para el 2013? par 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 vues
PyCon AU 2012 - Debugging Live Python Web Applications par 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 vues
Introduction to GitHub Actions par Knoldus Inc.
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
Knoldus Inc.3.2K vues
Untangling fall2017 week2 par Derek Jacoby
Untangling fall2017 week2Untangling fall2017 week2
Untangling fall2017 week2
Derek Jacoby168 vues
Untangling fall2017 week2_try2 par Derek Jacoby
Untangling fall2017 week2_try2Untangling fall2017 week2_try2
Untangling fall2017 week2_try2
Derek Jacoby309 vues
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023 par 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 vues
Introduction to GitHub Actions - How to easily automate and integrate with Gi... par 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 vues

Plus de ESUG

Workshop: Identifying concept inventories in agile programming par
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
12 vues16 diapositives
Technical documentation support in Pharo par
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
28 vues39 diapositives
The Pharo Debugger and Debugging tools: Advances and Roadmap par
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 vues44 diapositives
Sequence: Pipeline modelling in Pharo par
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
86 vues22 diapositives
Migration process from monolithic to micro frontend architecture in mobile ap... par
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
20 vues35 diapositives
Analyzing Dart Language with Pharo: Report and early results par
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 vues30 diapositives

Plus de ESUG(20)

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

Dernier

Advanced API Mocking Techniques par
Advanced API Mocking TechniquesAdvanced API Mocking Techniques
Advanced API Mocking TechniquesDimpy Adhikary
19 vues11 diapositives
DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ... par
DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...
DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...Deltares
10 vues32 diapositives
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium... par
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...Lisi Hocke
28 vues124 diapositives
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI... par
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...Marc Müller
37 vues83 diapositives
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx par
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
14 vues19 diapositives
Tridens DevOps par
Tridens DevOpsTridens DevOps
Tridens DevOpsTridens
9 vues28 diapositives

Dernier(20)

DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ... par Deltares
DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...
DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...
Deltares10 vues
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium... par Lisi Hocke
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Lisi Hocke28 vues
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI... par Marc Müller
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
Marc Müller37 vues
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx par 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
animuscrm14 vues
Tridens DevOps par Tridens
Tridens DevOpsTridens DevOps
Tridens DevOps
Tridens9 vues
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J... par 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 vues
Fleet Management Software in India par Fleetable
Fleet Management Software in India Fleet Management Software in India
Fleet Management Software in India
Fleetable11 vues
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports par Ra'Fat Al-Msie'deen
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug ReportsBushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
360 graden fabriek par info33492
360 graden fabriek360 graden fabriek
360 graden fabriek
info3349237 vues
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action par Márton Kodok
Gen Apps on Google Cloud PaLM2 and Codey APIs in ActionGen Apps on Google Cloud PaLM2 and Codey APIs in Action
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action
Márton Kodok5 vues
DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme... par Deltares
DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme...DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme...
DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme...
Deltares5 vues
Navigating container technology for enhanced security by Niklas Saari par Metosin Oy
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas Saari
Metosin Oy13 vues
DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the... par Deltares
DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the...DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the...
DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the...
Deltares6 vues
DSD-INT 2023 The Danube Hazardous Substances Model - Kovacs par Deltares
DSD-INT 2023 The Danube Hazardous Substances Model - KovacsDSD-INT 2023 The Danube Hazardous Substances Model - Kovacs
DSD-INT 2023 The Danube Hazardous Substances Model - Kovacs
Deltares8 vues

Exploring GitHub Actions through EGAD: An Experience Report