Mastering GitHub Actions Advance Your Automation Skills with the Latest Techniques for Software Integration and Deployment
Explore the full spectrum of GitHub Actions to unlock your team's potential and become a pro in no time Key Features Master GitHub events to foster a self-service mindset Elevate your GitHub Actions knowledge to a whole new level through real-world examples Learn how to integrate with popular c...
Otros Autores: | |
---|---|
Formato: | Libro electrónico |
Idioma: | Inglés |
Publicado: |
Birmingham :
Packt Publishing
[2024]
|
Edición: | First edition |
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009809016506719 |
Tabla de Contenidos:
- Cover
- Title Page
- Copyright and Credits
- Dedication
- Contributors
- Table of Contents
- Preface
- Part 1: Centralized Workflows to Assist with Governance
- Chapter 1: An Overview of GitHub and GitHub Actions
- Technical requirements
- Exploring the GitHub platform
- Walk-through of the overview interface and features
- The different types of accounts on GitHub
- Creating a personal GitHub account
- The different types of plans on GitHub
- GitHub Free
- GitHub Team
- GitHub Enterprise
- Creating an organization account
- A brief introduction to GitHub Actions
- An overview of organization accounts
- Managing teams
- Organization defaults
- GitHub Actions
- The .github repository
- Templates and reusable workflow repositories
- Reusable workflows
- Workflow templates
- Summary
- Chapter 1: Exploring Workflows
- Technical requirements
- Exploring workflow capabilities
- Events or triggers
- Jobs
- Steps
- Features of a workflow
- Using events to trigger workflows
- Workflow structuring and good habits
- Exploring workflow jobs
- Understanding how jobs work
- Running jobs in a container
- Running services
- Summary
- Chapter 3: Deep Dive into Reusable Workflows and Composite Actions
- Technical requirements
- Setting up the CLI
- Introducing reusable workflows
- Reusable workflows versus normal workflows
- Use cases for reusable workflows
- Limitations of reusable workflows
- Understanding composite actions
- Key concepts of composite actions
- Use cases for composite actions
- Limitations of composite actions
- Creating a reusable build pipeline
- Marking a workflow as a reusable workflow
- Creating a local composite action
- Debugging techniques for workflows
- act workflow debugging tool
- Visual Studio Code GitHub Actions plugin
- Debugging event data
- Runner diagnostic logging.
- Step debug logging
- Workflow monitoring and alerting
- GitHub notification capabilities
- Integrating GitHub Actions with Slack
- Datadog
- Summary
- Chapter 4: Workflow Personalization Using GitHub Apps
- Technical requirements
- GitHub token options
- GitHub App tokens
- GitHub personal access tokens
- Workflow tokens
- Creating a GitHub App
- Installing and managing the App's credentials
- Leveraging a GitHub App in various use cases
- Summary
- Chapter 5: Utilizing Starter Workflows in Your Team
- Technical requirements
- What are starter workflows?
- Accessing starter workflows
- Starter workflows in a private repository
- Creating our starter workflow
- Utilizing our starter workflow
- Applications of self-service reusable workflows
- Summary
- Part 2: Implementing Advanced Patterns within Actions
- Chapter 6: Using HashiCorp Vault in GitHub
- Technical requirements
- Understanding what OIDC is
- How to get an Identity token in a workflow
- OIDC in reusable workflows
- Setting up a HashiCorp Cloud Vault instance
- What is HashiCorp Cloud Vault?
- Creating a HashiCorp Cloud Platform account
- Accessing your Vault cluster
- Understanding secret engines and where secrets are stored
- Creating a secret in Vault that GitHub Actions can access
- Adding our Slack API token as a secret
- Enabling JWT authentication in HashiCorp
- Enabling JWT for GitHub-produced tokens
- What is JWKS?
- Creating a HashiCorp secret policy
- Creating a HashiCorp JWT role
- Setting up a workflow to use HashiCorp
- Exploring other security hardening techniques
- Implementing CODEOWNERS
- OIDC action recommendations
- HashiCorp actions recommendations
- Azure Key Vault
- Summary
- Chapter 7: Deploying to Azure Using OpenID Connect
- Technical requirements
- Exploring our infrastructure using Bicep
- Why Bicep?.
- Understanding the components of Bicep
- Azure infrastructure requirements
- Deploying locally with the Azure CLI
- Understanding the folder structure
- Deploying our resource group with the Azure CLI
- Deploying our container registry with the Azure CLI
- Deploying our container instance with the Azure CLI
- Deploying infrastructure alongside our application code
- The teardown
- Adding infrastructure to our repository
- Best practices and areas for improvement
- Reusable workflows for applications and infrastructure
- Authorizing our deployments with Azure and OIDC
- Subject patterns and their limitations
- Using OIDC for Azure in the reusable workflow
- Correcting the trust
- Summary
- Chapter 8: Working with Checks
- Technical requirements
- Exploring check suites and checks
- What are checks?
- Introducing check suites
- Interacting with the Checks API
- Understanding commit statuses
- What are commit statuses?
- Interacting with commit statuses
- When should we use commit statuses over checks?
- Creating checks and check suites
- Understanding how check suites work
- Working with the GitHub API
- Creating a check
- Failing and passing checks
- Conclusions
- Playing with check outcomes
- Creating custom actions
- What makes an action an action?
- Types of actions
- Defining outputs in actions
- Let's create an action
- Putting our action to use
- Exploring further action opportunities
- Branding
- Creating/updating check runs
- Controlling check failures
- Creating checks with different tokens
- Summary
- Chapter 9: Annotating Code with Actions
- Technical requirements
- Exploring annotations within checks
- The structure of an annotation
- Creating annotations on a check run
- Understanding the validation rules for annotations
- Annotations in action.
- Introducing annotation support for our RichChecks action
- Creating annotations from build output
- Infrastructure linting
- Displaying our results
- Creating annotations from a GitHub App using Probot
- Exploring Probot-powered apps
- The importance of a spell checker
- Summary
- Chapter 10: Advancing with Event-Driven Workflows
- Technical requirements
- Understanding GitHub events more deeply
- The core of GitHub event payloads
- Tailored automation with events
- Creating an issue from a pull request
- Subscribing to the event
- Introducing the GitHub Issues API
- Creating an issue
- Linking pull requests to issues
- Promoting your new releases
- What are GitHub releases?
- Creating a release manually
- Subscribing to the event
- Creating the communication
- Targeting published releases
- Designing a chatbot using ChatGPT
- Subscribing to the event and collecting the data
- Creating a conversation with OpenAIs APIs
- Helpful AI actions and apps
- Code Autopilot - AI coder
- OpenCommit
- Summary
- Chapter 11: Setting Up Self-Hosted Runners
- Technical requirements
- Exploring self-hosted runners
- Action runner variants
- Action runner groups
- Deploying self-hosted runners
- A local runner in action
- Exploring ARC
- How does it work?
- Scaling options
- Monitoring and troubleshooting
- Running ARC locally
- A brief overview of Kubernetes
- Understanding the importance of containers
- Setting up Minikube
- Installing Helm
- Deploying ARC on Minikube
- Using the cloud for your runs
- Setting up Kubernetes using Bicep
- Setting up a GitHub App
- Deploying the new ARC
- Advanced techniques with ARC
- Scaling in ARC
- Running within a proxy
- Runner labels
- Customizing the runner specification
- Observing our self-hosted infrastructure
- Housekeeping
- Summary.
- Part 3: Best Practices, Patterns, Tricks, and Tips Toolkit
- Chapter 12: The Crawler Pattern
- Technical requirements
- Introducing the crawler pattern
- How does this pattern work?
- Methods of feeding the matrix
- Making bulk repository changes
- Adding permissions to all repositories
- Adding branch protection
- Making bulk content changes
- Understanding the workflow
- Rolling out content in bulk
- Summary
- Chapter 13: The Configuration Centralization Pattern
- Technical requirements
- Understanding the central configuration pattern
- Creating a repository indexer
- Schedules in GitHub workflows
- Setting up the indexer
- Hosting the results using GitHub Pages
- Configuring the repository for GitHub Pages
- Creating the action for the deployment
- Where to go next
- Summary
- Chapter 14: Using Remote Workflows to Kickstart Your Products
- Technical requirements
- Introducing repository dispatch events
- Advantages of repository dispatch events
- Requirements for creating a repository dispatch event
- Setting up a repository dispatch workflow
- Understanding product kickstarters
- A brief overview of product kickstarters
- Creating template repositories
- Building a kickstarter template
- Internal developer portal and other use cases
- Adding portal visibility for developers
- Exploring other use cases
- Summary
- Chapter 15: Housekeeping Tips for Your Organization
- Technical requirements
- Managing GitHub costs
- GitHub spending limits
- Alerting on usage
- Usage monitoring
- Workflow usage across the organization
- Optimizing uploads and downloads
- Compressible artifact action
- Methods for eliminating GitHub storage
- Useful reporting techniques for your organization
- Creating a dormant user report
- Creating a user member contribution report
- Managing your action updates with Dependabot.
- Summary.