0
0
Lập trình
Harry Tran
Harry Tran106580903228332612117

Hướng dẫn sử dụng Github Actions để tự động cập nhật badge trên trang Github cá nhân

Đăng vào 1 tháng trước

• 3 phút đọc

Giới thiệu

Xin chào các bạn! Mình đã trở lại sau một thời gian dài và rất mong muốn chia sẻ với mọi người một chủ đề thú vị. Chắc hẳn nhiều bạn đã nghe đến Github Actions nhưng chưa biết cách ứng dụng nó một cách hiệu quả. Bài viết này sẽ giúp bạn hiểu rõ hơn về việc tự động hóa việc cập nhật badge (huy hiệu) trên trang Github cá nhân của mình thông qua việc sử dụng Github Actions.

Tại sao cần cập nhật badge tự động?

Mình có một bộ sưu tập các badge từ Credly và Credential.net, và mong muốn này đã dẫn mình đến việc tìm kiếm giải pháp tự động để cập nhật chúng trên trang Github cá nhân. Badge không chỉ thể hiện thành tựu cá nhân mà còn là cách để gây ấn tượng với tuyển dụng viên hoặc cộng đồng trong lĩnh vực công nghệ.

Tình huống hiện tại

Mình hiện có 34 cái badge, bao gồm badge từ Credly và Credential.net, nhưng việc cập nhật thủ công rất tốn thời gian. Do đó, mình quyết định sử dụng Github Actions để thực hiện việc này tự động và hiệu quả hơn.

Tổng quan về CI/CD

CI/CD (Continuous Integration / Continuous Deployment) là quy trình giúp tự động hóa việc kiểm tra, xây dựng và triển khai ứng dụng. Quá trình này bao gồm:

  1. Commit code: Khi bạn đưa mã nguồn lên Github, nó sẽ kích hoạt quá trình CI.
  2. Test: Mã nguồn sẽ được kiểm tra để đảm bảo chất lượng.
  3. Deploy: Nếu không có vấn đề gì xảy ra, mã nguồn sẽ được triển khai lên môi trường sản phẩm.

Github Actions là gì?

Github Actions cho phép bạn thiết lập các workflows (luồng công việc) để tự động hóa các tác vụ, chẳng hạn như build, test, và deploy. Để tạo một workflow mới, bạn chỉ cần tạo một thư mục .github/workflows/ và thêm một tệp .yml.

Ví dụ về Workflow

Dưới đây là một ví dụ đơn giản về một workflow cơ bản:

yaml Copy
name: hello-world
on: push
jobs:
  my-job:
    runs-on: ubuntu-latest
    steps:
      - name: my-step
        run: echo "Hello World!"

Trong đó:

  • name: Tên của workflow.
  • on: Loại sự kiện kích hoạt workflow (ví dụ: push, pull_request, ...).
  • jobs: Danh sách các công việc sẽ thực hiện trong workflow.

Hướng dẫn thực hành

Bước 1: Khởi tạo trang Github cá nhân

Để bắt đầu, bạn cần tạo một repository trên Github với tên là username của mình, ví dụ: https://github.com/BlazingRockStorm/BlazingRockStorm. Sau đó, hãy chỉnh sửa tệp README.md để tạo một hồ sơ cá nhân.

Bước 2: Chọn Github Action

Mình đã chọn action pemtajo/badge-readme, giúp tự động lấy badge từ Credly theo thứ tự thời gian.

Bước 3: Viết workflow cho Github Action

Dưới đây là workflow mình viết để tự động cập nhật badge:

yaml Copy
name: Update badges
on:
  schedule:
    - cron: "0 2 * * *"
jobs:
  update-readme:
    name: Update Readme with badges
    runs-on: ubuntu-latest
    permissions:
      contents: write
    steps:
      - name: Badges - Readme
        uses: pemtajo/badge-readme@main
        with:
          CREDLY_USER: duc-quan-hoang
          CREDLY_SORT: RECENT
          BADGE_SIZE: 110

Trong đó, mình đã thiết lập để trigger theo lịch trình với cron job. Hãy thêm đoạn mã sau vào tệp README.md, giữa hai comment magic:

html Copy
<!--START_SECTION:badges-->
<!--END_SECTION:badges-->

Đây là nơi mà các badge sẽ được tự động cập nhật.

Bước 4: Thêm badge từ Credential.net

Mình cũng đã thêm hai badge từ Credential.net ngay dưới các badge từ Credly. Dưới đây là cách mình thêm chúng:

html Copy
[![AWS Industry Quest: Healthcare](https://images.credly.com/size/110x110/images/370b5eab-6853-4deb-89a3-4a717edcba4d/image.png)](http://www.credly.com/badges/8ae1b9c5-8d6a-40d6-8aff-c25b3b52c951 "AWS Industry Quest: Healthcare")
[![AWS Industry Quest: Financial Services](https://images.credly.com/size/110x110/images/ac4918fd-87d6-4283-b896-52314f703327/image.png)](http://www.credly.com/badges/b55ffd5f-b377-4724-aca7-d94bd8f267e5 "AWS Industry Quest: Financial Services")

Và cũng thêm badge Ruby mà mình đã download sẵn:

html Copy
[<img src="https://badges.images.credential.net/1495071229333.png" width="110">](https://www.credential.net/d6b90bcc-0a14-4039-94ba-5443ea9dd343 "Ruby Certified Ruby Examination Silver")
[<img src="https://templates.images.credential.net/16599277022875216138354534652590.png" width="110">](https://www.credential.net/3c8a0b29-cc9d-4249-a148-ddf1800e53d9 "Ruby Certified Ruby Examination Gold Ver 3")

Kết quả

Sau khi thực hiện đầy đủ các bước, bạn có thể xem trang Github cá nhân của mình tại đây. Hy vọng bài viết này sẽ mang lại giá trị cho bạn trong việc quản lý badge trên trang cá nhân một cách tự động và hiệu quả hơn. Cảm ơn các bạn đã theo dõi! Mình sẽ cố gắng cải thiện hơn trong các bài viết sau.
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào