---
title: "GitHub Actions: Workflow Automation Essentials"
description: "Master GitHub Actions fundamentals with this quiz covering Workflows, YAML syntax, the Actions Marketplace, Matrix builds, and secure secret management."
author: "Mohammad Abu Mattar"
canonical: https://mkabumattar.com/quizzes/post/github-actions-workflow-automation-quiz
---

# GitHub Actions: Workflow Automation Essentials

Welcome to the GitHub Actions Basics Quiz! This quiz covers the fundamentals of GitHub Actions, including workflows, jobs, steps, triggers, and best practices. Test your knowledge and see how well you understand this powerful automation tool.

## Questions

### 1. Where must GitHub Actions workflow files be stored in a repository?

- `.github/actions/`
- `.github/workflows/`
- `.github/pipelines/`
- `.github/scripts/`

**Hint:** It is a specific hidden directory.

### 2. What is a "Job" in a GitHub Actions workflow?

- A single terminal command
- A group of steps that execute on the same runner
- A set of rules for merging pull requests
- A configuration for global environment variables

**Hint:** Jobs run on the same runner.

### 3. What is the purpose of the "on" keyword in a workflow YAML?

- To toggle the global visibility of the workflow
- To define the events that trigger the workflow
- To specify the runner operating system version
- To enable the debugging logs for the current run

**Hint:** It defines the trigger.

### 4. What does "runs-on: ubuntu-latest" specify?

- The browser environment for headless testing
- The type of virtual machine used to host the job
- The minimum version of Python required for the app
- The geographic region where the build is executed

**Hint:** The execution environment.

### 5. How do you access a secret named "API_KEY" in a workflow?

- `$API_KEY`
- `${{ secrets.API_KEY }}`
- `{{ env.API_KEY }}`
- `$GITHUB_SECRETS[API_KEY]`

**Hint:** Use the secrets context.

### 6. What is the "Marketplace" in GitHub Actions?

- A premium store for purchasing enterprise support
- A central registry for pre-built, reusable actions
- A dashboard for monitoring cloud infrastructure costs
- A collaborative forum for discussing workflow bugs

**Hint:** Reusable components.

### 7. What does the "uses" keyword do in a step?

- It defines a custom shell variable for the job
- It references a specific action to be executed
- It lists the binary dependencies for the runner
- It declares the libraries needed for the source code

**Hint:** It calls an Action.

### 8. What is a "Matrix Build"?

- A strategy to run jobs across multiple configurations
- A method to visualize the dependency graph of jobs
- A security system for rotating repository SSH keys
- A database schema for storing build execution logs

**Hint:** Testing across multiple versions.

### 9. How do you make a job depend on the successful completion of another job?

- `after: [job_id]`
- `needs: [job_id]`
- `depends_on: [job_id]`
- `require: [job_id]`

**Hint:** The "needs" keyword.

### 10. What is the "GITHUB_TOKEN"?

- A permanent personal access token for developers
- A temporary secret for authenticating with the API
- A unique identifier for the GitHub Enterprise instance
- A recovery key used for decrypting protected build logs

**Hint:** An automatic authentication secret.

### 11. What is a "Self-hosted Runner"?

- A runner that executes only local shell scripts
- A user-managed machine that executes workflow jobs
- A specialized browser for testing web applications
- A cloud-based IDE for editing workflow YAML files

**Hint:** Your own hardware.

### 12. What is "workflow_dispatch" used for?

- To delete old workflow runs from the repository
- To trigger a workflow manually from the GitHub UI
- To route build notifications to external chat apps
- To deploy code to multiple production environments

**Hint:** Manual control.

### 13. What is the "Context" in GitHub Actions?

- The visual theme applied to the Actions dashboard
- A set of variables providing run-time information
- The sequence of steps defined within a single job
- A collection of third-party plugins for YAML editing

**Hint:** Accessing workflow data.

### 14. What does the "step.if" condition allow you to do?

- To set a maximum execution timeout for the runner
- To execute a step only when a specific condition is met
- To prompt the user for a manual input during a build
- To change the job name dynamically based on an error

**Hint:** Conditional logic.

### 15. What is a "Reusable Workflow"?

- A workflow that restarts automatically after failure
- A workflow that can be called by multiple other files
- A template used only for creating new repositories
- A script that caches dependencies between different runs

**Hint:** Avoid duplicating YAML.

### 16. What is the purpose of "actions/checkout"?

- To verify the payment status of a GitHub account
- To copy the repository source code onto the runner
- To log out of the current GitHub CLI session
- To delete a remote branch after a successful merge

**Hint:** Getting the code.

### 17. What is "Artifact Uploading" in GitHub Actions?

- Storing repository images in a private registry
- Persisting build outputs for later use or download
- Pushing local source code changes back to the main branch
- Sending automated alerts to external monitoring tools

**Hint:** Saving files between jobs or for download.

### 18. What is an "Environment" in GitHub Actions?

- The specific version of the OS kernel on the runner
- A deployment target with specific protection rules
- The collection of all software installed on the machine
- A local sandbox used for debugging YAML syntax errors

**Hint:** Deployment targets with protection rules.

### 19. What is "Concurrency" control in a workflow?

- A method for increasing the speed of CPU operations
- A way to limit the number of parallel workflow runs
- A tool for managing multiple concurrent user logins
- A setting that runs one job on multiple different runners

**Hint:** Managing overlapping runs.

### 20. What does the "continue-on-error: true" setting do?

- It ignores all security policy violations in the code
- It prevents a failed step from stopping the entire job
- It automatically attempts to fix the failed shell command
- It restarts the runner automatically upon a system crash

**Hint:** Keep going regardless of failure.

### 21. What is the "Action" versioning syntax (e.g., @v4)?

- It defines the priority level of the build in the queue
- It pins a workflow to a specific version of an action
- It indicates the number of contributors to the action
- It sets the maximum number of times an action can run

**Hint:** Using specific versions.

### 22. What is "Cache" used for in Actions?

- A vault for storing encrypted production passwords
- A system to persist dependencies between workflow runs
- A temporary storage for the swap file system of the runner
- A log of all previous Git commit messages and authors

**Hint:** Speeding up dependency installs.

### 23. What is a "Composite Action"?

- An action that combines multiple Docker containers
- A custom action that groups multiple workflow steps
- A workflow that runs on both Linux and Windows runners
- A list of all plugins used in the current repository

**Hint:** Combining multiple steps into one action.

### 24. What is "Workflow Call" (workflow_call)?

- A notification sent to the developer when a job fails
- A trigger that allows a workflow to be reused by others
- A command used to cancel a running workflow from the CLI
- A documentation file that describes the workflow logic

**Hint:** Trigger for reusable workflows.

### 25. What is the purpose of "timeout-minutes"?

- To schedule a specific time for the build to start
- To automatically cancel a job that runs for too long
- To track the total duration of the development cycle
- To set the time zone for the operating system of the runner

**Hint:** Safety against hanging jobs.

### 26. What is "Step Masking"?

- The process of skipping steps that have failed previously
- A method to prevent secrets from appearing in build logs
- A way to hide the identity of the person triggering the run
- A configuration to hide the names of the internal servers

**Hint:** Hiding sensitive output.

### 27. What does "fail-fast" do in a Matrix build?

- It ensures the build fails within a few seconds of starting
- It cancels all in-progress matrix jobs if any job fails
- It ignores all failures and marks the matrix as successful
- It automatically retries the failed job three times

**Hint:** Managing multiple variations.

### 28. What is a "Starter Workflow"?

- A simplified workflow designed for training new users
- A template provided by GitHub to help set up CI/CD
- A workflow that only runs when a repository is created
- A script that installs the GitHub Actions runner service

**Hint:** GitHub templates.

### 29. What is "OIDC" (OpenID Connect) in GitHub Actions?

- A specialized protocol for compressing build artifacts
- A method to authenticate with cloud providers without secrets
- A programming language used for writing GitHub apps
- A tool for managing the dependencies of a JavaScript project

**Hint:** Secure cloud authentication.

### 30. What is the "workflow_run" trigger?

- To execute a workflow every time a developer commits code
- To start a workflow based on the status of another workflow
- To clean up the temporary files on the self-hosted runner
- To list all currently active workflows in the repository

**Hint:** Chaining workflows.
