Basic GitHub Actions Checkout

Basic GitHub Actions Checkout


Overview
This hands-on lab introduces the fundamentals of GitHub Actions by implementing a basic workflow that demonstrates repository checkout and command execution. You’ll learn how to create a workflow file, understand its structure, and execute various commands.

Prerequisites

  • GitHub account
  • A GitHub repository where you have write access
  • Basic understanding of YAML syntax
  • Basic knowledge of command line operations
    Learning Objectives
    After completing this lab, you will be able to:

  • Create a basic GitHub Actions workflow file

  • Understand workflow trigger conditions

  • Execute single and multi-line commands

  • Use the checkout action

  • View and interpret workflow results

Lab Structure

your-repository/
├── .github/
│   └── workflows/
│       └── basic-checkout.yml
└── README.md
Enter fullscreen mode

Exit fullscreen mode

Implementation Guide
Step 1: Create Workflow Directory

mkdir -p .github/workflows
Enter fullscreen mode

Exit fullscreen mode

Step 2: Create Workflow File
Create .github/workflows/basic-checkout.yml with the following content:

name: Basic Checkout Lab

# Trigger on push to main branch
on:
  push:
    branches:
      - main

# Define jobs and their steps
jobs:
  basic-checkout:
    runs-on: ubuntu-latest
    steps:
      # Step 1: Checkout the repository
      - name: Checkout repository
        uses: actions/checkout@v4

      # Step 2: List repository contents
      - name: List files
        run: ls -la

      # Step 3: Display system information
      - name: Show system info
        run: |
          echo "Repository: $GITHUB_REPOSITORY"
          echo "Operating System: $(uname -a)"
          echo "Current Directory: $(pwd)"

      # Step 4: Check software versions
      - name: Check versions
        run: |
          echo "Node version: $(node --version)"
          echo "Python version: $(python --version)"
          echo "Git version: $(git --version)"
Enter fullscreen mode

Exit fullscreen mode

Detailed Explanation
Workflow Trigger
on:
push:
branches:
– main
This section configures the workflow to run whenever code is pushed to the main branch.

Job Configuration
jobs:
basic-checkout:
runs-on: ubuntu-latest

Defines a single job named basic-checkout
Specifies Ubuntu as the runner operating system
Steps Breakdown
`Checkout Step

  • name: Checkout repository
    uses: actions/checkout@v4
    Uses the official checkout action
    Clones your repository into the runner
    Essential for accessing repository files
    File Listing
  • name: List files
    run: ls -la
    Lists all files and directories
    Includes hidden files
    Shows file permissions and ownership
    System Information
    – name: Show system info
    run: |
    echo “Repository: $GITHUB_REPOSITORY”
    echo “Operating System: $(uname -a)”
    echo “Current Directory: $(pwd)”
    Uses multi-line commands
    Demonstrates environment variable usage
    Shows system details
    Version Checks
  • name: Check versions
    run: |
    echo “Node version: $(node –version)”
    echo “Python version: $(python –version)”
    echo “Git version: $(git –version)”`
    Checks installed software versions
    Uses command substitution
    Demonstrates multi-line commands
    Expected Outputs
File Listing Output
total 24
drwxr-xr-x 4 runner docker 4096 Feb 20 10:00 .
drwxr-xr-x 3 runner docker 4096 Feb 20 10:00 ..
drwxr-xr-x 8 runner docker 4096 Feb 20 10:00 .git
drwxr-xr-x 3 runner docker 4096 Feb 20 10:00 .github
-rw-r--r-- 1 runner docker  654 Feb 20 10:00 README.md
Enter fullscreen mode

Exit fullscreen mode

System Information Output

Repository: username/repository-name
Operating System: Linux runner-ubuntu-latest 5.15.0-1047-azure
Current Directory: /home/runner/work/repository-name/repository-name
Version Information Output
Node version: v20.11.0
Python version: Python 3.10.12
Git version: git version 2.42.0
Enter fullscreen mode

Exit fullscreen mode

Practice Exercises
Add New Commands Modify the workflow to include:

  • Current date and time
  • Available disk space
  • Memory usage
    Custom Environment Variables Add environment variables:

env:
CUSTOM_MESSAGE: "Hello from GitHub Actions!"

Conditional Execution Add a conditional step:

- name: Conditional step
if: github.event_name == 'push'
run: echo "This was triggered by a push event"

Troubleshooting
Common Issues and Solutions
Workflow Not Triggering

  • Verify branch name matches trigger condition
  • Check workflow file syntax
  • Ensure Actions are enabled in repository settings
  • Checkout Action Fails
git config --global --list
Enter fullscreen mode

Exit fullscreen mode

ls -la .git
Enter fullscreen mode

Exit fullscreen mode

Command Execution Errors

Check command availability on runner
Verify syntax for multi-line commands
Ensure proper environment variable usage
Debugging Tips
Enable debug logging by setting secret ACTIONS_RUNNER_DEBUG to true
Check workflow run logs in GitHub Actions tab
Use echo statements to debug variables



Source link
lol

By stp2y

Leave a Reply

Your email address will not be published. Required fields are marked *

No widgets found. Go to Widget page and add the widget in Offcanvas Sidebar Widget Area.