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

Recomendados

Reproducible research: practice von
Reproducible research: practiceReproducible research: practice
Reproducible research: practiceC. Tobin Magle
420 views41 Folien
Workflows using Git GitHub | Edureka von
Workflows using Git GitHub | EdurekaWorkflows using Git GitHub | Edureka
Workflows using Git GitHub | EdurekaEdureka!
1.4K views30 Folien
DWX 2022 - DevSecOps mit GitHub von
DWX 2022 - DevSecOps mit GitHubDWX 2022 - DevSecOps mit GitHub
DWX 2022 - DevSecOps mit GitHubMarc Müller
27 views88 Folien
Write microservice in golang von
Write microservice in golangWrite microservice in golang
Write microservice in golangBo-Yi Wu
14.8K views126 Folien
Go at Skroutz von
Go at SkroutzGo at Skroutz
Go at SkroutzAgisAnastasopoulos
564 views44 Folien
Contributing to Upstream Open Source Projects von
Contributing to Upstream Open Source ProjectsContributing to Upstream Open Source Projects
Contributing to Upstream Open Source ProjectsScott Garman
2.9K views15 Folien

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 von
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 views56 Folien
Github in Action von
Github in ActionGithub in Action
Github in ActionMorten Christensen
193 views50 Folien
Introduction to Git for Network Engineers von
Introduction to Git for Network EngineersIntroduction to Git for Network Engineers
Introduction to Git for Network EngineersJoel W. King
865 views13 Folien
[2015/2016] Collaborative software development with Git von
[2015/2016] Collaborative software development with Git[2015/2016] Collaborative software development with Git
[2015/2016] Collaborative software development with GitIvano Malavolta
1.1K views41 Folien
Rails Rookies Bootcamp - Blogger von
Rails Rookies Bootcamp - BloggerRails Rookies Bootcamp - Blogger
Rails Rookies Bootcamp - BloggerNathanial McConnell
561 views152 Folien
Que nos espera a los ALM Dudes para el 2013? von
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 views93 Folien

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

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

Más de ESUG

Workshop: Identifying concept inventories in agile programming von
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
12 views16 Folien
Technical documentation support in Pharo von
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
31 views39 Folien
The Pharo Debugger and Debugging tools: Advances and Roadmap von
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 views44 Folien
Sequence: Pipeline modelling in Pharo von
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
86 views22 Folien
Migration process from monolithic to micro frontend architecture in mobile ap... von
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
23 views35 Folien
Analyzing Dart Language with Pharo: Report and early results von
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
107 views30 Folien

Más de ESUG(20)

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

Último

FIMA 2023 Neo4j & FS - Entity Resolution.pptx von
FIMA 2023 Neo4j & FS - Entity Resolution.pptxFIMA 2023 Neo4j & FS - Entity Resolution.pptx
FIMA 2023 Neo4j & FS - Entity Resolution.pptxNeo4j
17 views26 Folien
Flask-Python.pptx von
Flask-Python.pptxFlask-Python.pptx
Flask-Python.pptxTriloki Gupta
7 views12 Folien
Top-5-production-devconMunich-2023.pptx von
Top-5-production-devconMunich-2023.pptxTop-5-production-devconMunich-2023.pptx
Top-5-production-devconMunich-2023.pptxTier1 app
8 views40 Folien
Navigating container technology for enhanced security by Niklas Saari von
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 SaariMetosin Oy
14 views34 Folien
Airline Booking Software von
Airline Booking SoftwareAirline Booking Software
Airline Booking SoftwareSharmiMehta
7 views26 Folien
Sprint 226 von
Sprint 226Sprint 226
Sprint 226ManageIQ
10 views18 Folien

Último(20)

FIMA 2023 Neo4j & FS - Entity Resolution.pptx von Neo4j
FIMA 2023 Neo4j & FS - Entity Resolution.pptxFIMA 2023 Neo4j & FS - Entity Resolution.pptx
FIMA 2023 Neo4j & FS - Entity Resolution.pptx
Neo4j17 views
Top-5-production-devconMunich-2023.pptx von Tier1 app
Top-5-production-devconMunich-2023.pptxTop-5-production-devconMunich-2023.pptx
Top-5-production-devconMunich-2023.pptx
Tier1 app8 views
Navigating container technology for enhanced security by Niklas Saari von 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 Oy14 views
Airline Booking Software von SharmiMehta
Airline Booking SoftwareAirline Booking Software
Airline Booking Software
SharmiMehta7 views
Sprint 226 von ManageIQ
Sprint 226Sprint 226
Sprint 226
ManageIQ10 views
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action von 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 Kodok15 views
Electronic AWB - Electronic Air Waybill von Freightoscope
Electronic AWB - Electronic Air Waybill Electronic AWB - Electronic Air Waybill
Electronic AWB - Electronic Air Waybill
Freightoscope 5 views
predicting-m3-devopsconMunich-2023.pptx von Tier1 app
predicting-m3-devopsconMunich-2023.pptxpredicting-m3-devopsconMunich-2023.pptx
predicting-m3-devopsconMunich-2023.pptx
Tier1 app7 views
Top-5-production-devconMunich-2023-v2.pptx von Tier1 app
Top-5-production-devconMunich-2023-v2.pptxTop-5-production-devconMunich-2023-v2.pptx
Top-5-production-devconMunich-2023-v2.pptx
Tier1 app6 views
tecnologia18.docx von nosi6702
tecnologia18.docxtecnologia18.docx
tecnologia18.docx
nosi67025 views
Understanding HTML terminology von artembondar5
Understanding HTML terminologyUnderstanding HTML terminology
Understanding HTML terminology
artembondar56 views

Exploring GitHub Actions through EGAD: An Experience Report