Hint: GitHub Actions workflows live in .github/workflows/ [OK]
Common Mistakes:
Choosing .gitignore which ignores files
Selecting README.md which is documentation
Picking package.json which is for Node.js dependencies
3. Given this GitHub Actions workflow snippet, what happens when you push code to the main branch?
name: CI
on:
push:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run tests
run: echo "Tests passed!"
medium
A. The workflow fails because 'run' command is invalid
B. The workflow runs only on pull requests, not on push
C. The workflow runs and prints 'Tests passed!' on every push to main
D. Nothing happens because branches is empty
Solution
Step 1: Analyze the trigger event
The workflow triggers on push events to the 'main' branch as specified under 'on: push: branches: [main]'.
Step 2: Check the job steps
The job runs on ubuntu-latest, checks out the code, then runs the command echo "Tests passed!" which prints that message.
Final Answer:
The workflow runs and prints 'Tests passed!' on every push to main -> Option C
Quick Check:
Push to main triggers workflow = prints message [OK]
Hint: Push to main triggers workflow with echo command [OK]
Common Mistakes:
Thinking it runs only on pull requests
Assuming 'run' command is invalid syntax
Believing branches list is empty
4. You wrote this GitHub Actions workflow to run tests on push but it never runs:
name: Test
on:
push:
branch: main
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: echo "Running tests"
What is the error?
medium
A. The 'run' command must be inside a 'steps' array
B. The key 'branch' should be 'branches' under 'push' to specify branches list
C. The 'uses' action 'actions/checkout@v3' is deprecated
D. The 'runs-on' value 'ubuntu-latest' is invalid
Solution
Step 1: Check the event trigger syntax
The workflow uses 'branch' instead of 'branches' under 'push'. The correct key is 'branches' which expects a list.
Step 2: Understand impact of wrong key
Because 'branch' is invalid, the workflow never triggers on any push event.
Final Answer:
The key 'branch' should be 'branches' under 'push' to specify branches list -> Option B
Quick Check:
Correct key is 'branches' not 'branch' [OK]
Hint: Use 'branches' (plural) under push, not 'branch' [OK]
Common Mistakes:
Confusing 'branch' with 'branches'
Thinking 'runs-on' value is wrong
Assuming checkout action is deprecated
5. You want to run automated tests only when code is pushed to either the 'main' or 'develop' branches. Which is the correct snippet to add in your GitHub Actions workflow YAML to trigger on these pushes?
hard
A. on:
push:
branches:
- main
- develop
B. on:
push:
branch: ['main', 'develop']
C. on:
push:
branch: 'main, develop'
D. on:
push:
refs: ['main', 'develop']
Solution
Step 1: Understand correct YAML syntax for branches
The 'branches' key expects a list of branch names, each on its own line or in a list format.
Step 2: Compare options
on:
push:
branch: ['main', 'develop'] uses incorrect singular 'branch' key instead of plural 'branches'. on:
push:
branches:
- main
- develop uses the correct 'branches' key with standard YAML list format using dashes, which is widely used.
Step 3: Identify invalid options
on:
push:
branch: 'main, develop' uses 'branch' (wrong key) and a string with comma, which is invalid. on:
push:
refs: ['main', 'develop'] uses 'refs' which is not the correct key for branches under push.
Final Answer:
on:
push:
branches:
- main
- develop -> Option A
Quick Check:
Use 'branches' with list syntax for multiple branches [OK]
Hint: Use 'branches:' with dash list for multiple branches [OK]
Common Mistakes:
Using 'branch' instead of 'branches'
Passing branches as a comma string
Using 'refs' instead of 'branches'
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.