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 visualizações41 slides
Workflows using Git GitHub | Edureka por
Workflows using Git GitHub | EdurekaWorkflows using Git GitHub | Edureka
Workflows using Git GitHub | EdurekaEdureka!
1.4K visualizações30 slides
DWX 2022 - DevSecOps mit GitHub por
DWX 2022 - DevSecOps mit GitHubDWX 2022 - DevSecOps mit GitHub
DWX 2022 - DevSecOps mit GitHubMarc Müller
27 visualizações88 slides
Write microservice in golang por
Write microservice in golangWrite microservice in golang
Write microservice in golangBo-Yi Wu
14.8K visualizações126 slides
Go at Skroutz por
Go at SkroutzGo at Skroutz
Go at SkroutzAgisAnastasopoulos
564 visualizações44 slides
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 visualizações15 slides

Mais conteúdo 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
188 visualizações56 slides
Github in Action por
Github in ActionGithub in Action
Github in ActionMorten Christensen
193 visualizações50 slides
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 visualizações13 slides
[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 visualizações41 slides
Rails Rookies Bootcamp - Blogger por
Rails Rookies Bootcamp - BloggerRails Rookies Bootcamp - Blogger
Rails Rookies Bootcamp - BloggerNathanial McConnell
561 visualizações152 slides
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 visualizações93 slides

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 Nguyen188 visualizações
Github in Action por Morten Christensen
Github in ActionGithub in Action
Github in Action
Morten Christensen193 visualizações
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 visualizações
[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 visualizações
Rails Rookies Bootcamp - Blogger por Nathanial McConnell
Rails Rookies Bootcamp - BloggerRails Rookies Bootcamp - Blogger
Rails Rookies Bootcamp - Blogger
Nathanial McConnell561 visualizações
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 visualizações
ICONUK 2015 - Gradle Up! por René Winkelmeyer
ICONUK 2015 - Gradle Up!ICONUK 2015 - Gradle Up!
ICONUK 2015 - Gradle Up!
René Winkelmeyer933 visualizações
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 visualizações
Introduction to GitHub Actions por Knoldus Inc.
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
Knoldus Inc.3.2K visualizações
Using Git to Organize Your Project por Manish Suwal 'Enwil'
Using Git to Organize Your ProjectUsing Git to Organize Your Project
Using Git to Organize Your Project
Manish Suwal 'Enwil'4.2K visualizações
GitLab - Java User Group por PhilippWestphalen
GitLab - Java User GroupGitLab - Java User Group
GitLab - Java User Group
PhilippWestphalen105 visualizações
Git within RStudio por PaulinaJedynakPhD
Git within RStudioGit within RStudio
Git within RStudio
PaulinaJedynakPhD25 visualizações
Untangling fall2017 week2 por Derek Jacoby
Untangling fall2017 week2Untangling fall2017 week2
Untangling fall2017 week2
Derek Jacoby168 visualizações
Untangling fall2017 week2_try2 por Derek Jacoby
Untangling fall2017 week2_try2Untangling fall2017 week2_try2
Untangling fall2017 week2_try2
Derek Jacoby309 visualizações
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 Kazulkin417 visualizações
GitHub Basics - Derek Bable por "FENG "GEORGE"" YU
GitHub Basics - Derek BableGitHub Basics - Derek Bable
GitHub Basics - Derek Bable
"FENG "GEORGE"" YU987 visualizações
Git tutorial por Peder Larson
Git tutorialGit tutorial
Git tutorial
Peder Larson294 visualizações
Fast and Reproducible Deep Learning por Greg Gandenberger
Fast and Reproducible Deep LearningFast and Reproducible Deep Learning
Fast and Reproducible Deep Learning
Greg Gandenberger96 visualizações
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 visualizações
Untangling4 por Derek Jacoby
Untangling4Untangling4
Untangling4
Derek Jacoby364 visualizações

Mais 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
12 visualizações16 slides
Technical documentation support in Pharo por
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
31 visualizações39 slides
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 visualizações44 slides
Sequence: Pipeline modelling in Pharo por
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
86 visualizações22 slides
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
22 visualizações35 slides
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
107 visualizações30 slides

Mais 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
ESUG12 visualizações
Technical documentation support in Pharo por ESUG
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
ESUG31 visualizações
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 visualizações
Sequence: Pipeline modelling in Pharo por ESUG
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
ESUG86 visualizações
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...
ESUG22 visualizações
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
ESUG107 visualizações
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 visualizações
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
ESUG53 visualizações
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 visualizações
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 visualizações
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 visualizações
Garbage Collector Tuning por ESUG
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
ESUG20 visualizações
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 visualizações
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 visualizações
thisContext in the Debugger por ESUG
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
ESUG36 visualizações
Websockets for Fencing Score por ESUG
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
ESUG18 visualizações
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 visualizações
Advanced Object- Oriented Design Mooc por ESUG
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
ESUG85 visualizações
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 visualizações
BioSmalltalk por ESUG
BioSmalltalkBioSmalltalk
BioSmalltalk
ESUG415 visualizações

Último

SUGCON ANZ Presentation V2.1 Final.pptx por
SUGCON ANZ Presentation V2.1 Final.pptxSUGCON ANZ Presentation V2.1 Final.pptx
SUGCON ANZ Presentation V2.1 Final.pptxJack Spektor
23 visualizações34 slides
AI and Ml presentation .pptx por
AI and Ml presentation .pptxAI and Ml presentation .pptx
AI and Ml presentation .pptxFayazAli87
12 visualizações15 slides
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI... por
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
41 visualizações83 slides
EV Charging App Case por
EV Charging App Case EV Charging App Case
EV Charging App Case iCoderz Solutions
5 visualizações1 slide
Programming Field por
Programming FieldProgramming Field
Programming Fieldthehardtechnology
5 visualizações9 slides
nintendo_64.pptx por
nintendo_64.pptxnintendo_64.pptx
nintendo_64.pptxpaiga02016
5 visualizações7 slides

Último(20)

SUGCON ANZ Presentation V2.1 Final.pptx por Jack Spektor
SUGCON ANZ Presentation V2.1 Final.pptxSUGCON ANZ Presentation V2.1 Final.pptx
SUGCON ANZ Presentation V2.1 Final.pptx
Jack Spektor23 visualizações
AI and Ml presentation .pptx por FayazAli87
AI and Ml presentation .pptxAI and Ml presentation .pptx
AI and Ml presentation .pptx
FayazAli8712 visualizações
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI... por 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üller41 visualizações
EV Charging App Case por iCoderz Solutions
EV Charging App Case EV Charging App Case
EV Charging App Case
iCoderz Solutions5 visualizações
nintendo_64.pptx por paiga02016
nintendo_64.pptxnintendo_64.pptx
nintendo_64.pptx
paiga020165 visualizações
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko... por Deltares
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...
Deltares14 visualizações
DSD-INT 2023 The Danube Hazardous Substances Model - Kovacs por 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
Deltares10 visualizações
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports por 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
Ra'Fat Al-Msie'deen8 visualizações
DSD-INT 2023 Process-based modelling of salt marsh development coupling Delft... por Deltares
DSD-INT 2023 Process-based modelling of salt marsh development coupling Delft...DSD-INT 2023 Process-based modelling of salt marsh development coupling Delft...
DSD-INT 2023 Process-based modelling of salt marsh development coupling Delft...
Deltares7 visualizações
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action por 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 Kodok6 visualizações
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
animuscrm15 visualizações
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 Onofri860 visualizações
Myths and Facts About Hospice Care: Busting Common Misconceptions por Care Coordinations
Myths and Facts About Hospice Care: Busting Common MisconceptionsMyths and Facts About Hospice Care: Busting Common Misconceptions
Myths and Facts About Hospice Care: Busting Common Misconceptions
Care Coordinations6 visualizações
Generic or specific? Making sensible software design decisions por Bert Jan Schrijver
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
Bert Jan Schrijver6 visualizações
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium... por 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 Hocke35 visualizações
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols por Deltares
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - DolsDSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols
Deltares9 visualizações
Navigating container technology for enhanced security by Niklas Saari por 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 visualizações
Dapr Unleashed: Accelerating Microservice Development por Miroslav Janeski
Dapr Unleashed: Accelerating Microservice DevelopmentDapr Unleashed: Accelerating Microservice Development
Dapr Unleashed: Accelerating Microservice Development
Miroslav Janeski10 visualizações
Fleet Management Software in India por Fleetable
Fleet Management Software in India Fleet Management Software in India
Fleet Management Software in India
Fleetable11 visualizações

Exploring GitHub Actions through EGAD: An Experience Report