Home > Article > Backend Development > Automate DevOps Workflows with GitHub Actions
Author: Trix Cyrus
Waymap Pentesting tool: Click Here
TrixSec Github: Click Here
GitHub Actions is an automation tool integrated into GitHub, offering the capability to automate workflows, CI/CD pipelines, testing, code quality checks, and even deployments directly within your repository. It enables you to define workflows using YAML files, giving you full control over triggers, environments, and tasks.
Let's walk through creating a basic CI workflow to test and build your code whenever a new commit is pushed.
Create the Workflow File
Navigate to .github/workflows in your repository and create a file named ci.yml.
Define the Workflow Structure
name: CI Workflow on: push: branches: - main pull_request: branches: - main jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Node.js uses: actions/setup-node@v3 with: node-version: '16' - name: Install dependencies run: npm install - name: Run tests run: npm test - name: Build project run: npm run build
To ensure code quality, you can add a linting step to your workflow.
- name: Lint code run: npm run lint
Adding this step after Install dependencies helps identify code quality issues early in the pipeline.
Now, let’s add an automated deployment step to a cloud service, such as AWS or Firebase.
Set up Firebase CLI
First, install and configure Firebase CLI on your local machine. Generate a token with firebase login:ci and store it as a GitHub secret (FIREBASE_TOKEN).
Add the Deployment Step
name: CI Workflow on: push: branches: - main pull_request: branches: - main jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Node.js uses: actions/setup-node@v3 with: node-version: '16' - name: Install dependencies run: npm install - name: Run tests run: npm test - name: Build project run: npm run build
Here, we specify needs: build, meaning this deployment job runs only after the build job completes successfully.
- name: Lint code run: npm run lint
deploy: needs: build runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Node.js uses: actions/setup-node@v3 with: node-version: '16' - name: Install dependencies run: npm install - name: Build project run: npm run build - name: Deploy to Firebase env: FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }} run: | npm install -g firebase-tools firebase deploy
As your projects grow, consider creating reusable workflows by defining workflow_call in your YAML file and reusing across multiple repositories, especially for tasks like code formatting or security scans.
Automating DevOps workflows with GitHub Actions enhances productivity, reduces human error, and creates a more robust CI/CD pipeline. With workflows running seamlessly in the background, developers can focus more on writing code and less on deployment tasks. Start small with testing and gradually expand to deploying and monitoring to maximize GitHub Actions' potential in your DevOps journey.
This guide provides a foundation for building, testing, and deploying your projects with GitHub Actions. Once comfortable, you can expand further with custom actions, integrations, and advanced automation for a fully optimized DevOps pipeline.
~TrixSec
The above is the detailed content of Automate DevOps Workflows with GitHub Actions. For more information, please follow other related articles on the PHP Chinese website!