0
0
Gitdevops~5 mins

GitHub Actions basics - Commands & Configuration

Choose your learning style9 modes available
Introduction
GitHub Actions lets you automate tasks like testing and deploying your code whenever you make changes. It helps you save time by running these tasks automatically without doing them manually.
When you want to automatically test your code every time you push changes to GitHub.
When you want to build and deploy your app to a server or cloud after updating your code.
When you want to run code quality checks or linters on your project automatically.
When you want to automate sending notifications after your code is merged.
When you want to schedule regular tasks like backups or reports using your GitHub repository.
Config File - ci.yml
ci.yml
name: CI

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3
    - name: Run a one-line script
      run: echo "Hello, world!"

name: Names the workflow for easy identification.

on: Defines when the workflow runs, here on pushes or pull requests to the main branch.

jobs: Contains tasks to run; this example has one job called 'build'.

runs-on: Specifies the environment, here the latest Ubuntu Linux.

steps: Lists actions and commands to execute, starting with checking out the code and then running a simple script.

Commands
Add the GitHub Actions workflow file to the staging area so it can be committed.
Terminal
git add .github/workflows/ci.yml
Expected OutputExpected
No output (command runs silently)
Commit the workflow file to your local repository with a clear message.
Terminal
git commit -m "Add GitHub Actions workflow for CI"
Expected OutputExpected
[main abc1234] Add GitHub Actions workflow for CI 1 file changed, 15 insertions(+) create mode 100644 .github/workflows/ci.yml
Push your committed workflow file to the main branch on GitHub, triggering the workflow to run.
Terminal
git push origin main
Expected OutputExpected
Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 8 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 350 bytes | 350.00 KiB/s, done. Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 remote: Resolving deltas: 100% (1/1), completed with 1 local object. To github.com:username/repository.git def5678..abc1234 main -> main
List recent GitHub Actions workflow runs to check if your workflow started successfully.
Terminal
gh run list
Expected OutputExpected
ID NAME STATUS CONCLUSION EVENT BRANCH AGE 12345 CI completed success push main 1m ago
--limit 5 - Show only the 5 most recent workflow runs
View detailed logs of the workflow run with ID 12345 to see the output of each step.
Terminal
gh run view 12345 --log
Expected OutputExpected
Run CI Job build Step: Checkout repository Checked out repository Step: Run a one-line script Hello, world!
--log - Show the full logs of the workflow run
Key Concept

If you remember nothing else from this pattern, remember: GitHub Actions runs your automated tasks whenever you push code changes, using workflow files stored in your repository.

Common Mistakes
Placing the workflow file outside the .github/workflows directory
GitHub Actions only detects workflow files inside the .github/workflows folder, so your workflow won't run.
Always save your workflow YAML files inside the .github/workflows directory in your repository.
Using incorrect event names under the 'on' section
If the event names are wrong, the workflow will never trigger when you expect it to.
Use valid event names like 'push' or 'pull_request' exactly as documented.
Not committing and pushing the workflow file to GitHub
The workflow only runs on GitHub, so if the file is not pushed, nothing happens.
After creating or changing the workflow file, commit and push it to the branch you want to trigger the workflow.
Summary
Create a workflow YAML file in .github/workflows to define automated tasks.
Commit and push the workflow file to GitHub to trigger the automation.
Use GitHub CLI commands to check the status and logs of your workflow runs.