Tạo Release trong Github action - How to do it?
Việc tự động hóa quy trình phát hành (release) trong phát triển phần mềm có thể giúp cải thiện hiệu suất và độ tin cậy của dự án. GitHub Actions là một công cụ mạnh mẽ cho phép tự động hóa các tác vụ như tạo release tags, xây dựng mã nguồn, và triển khai. Bài viết này sẽ hướng dẫn cách tạo release tag tự động sử dụng GitHub Actions cho trang web HionCoding, với các bước rõ ràng và minh họa bằng mã ví dụ.
Phần 1: Giới thiệu về GitHub Actions và Release Tags
GitHub Actions là một tính năng của GitHub cho phép bạn tự động hóa các tác vụ bằng cách sử dụng các tệp YAML để xác định quy trình công việc (workflow). Release tags là một cách để đánh dấu các phiên bản ổn định của dự án, giúp dễ dàng tham khảo trong tương lai và là bước quan trọng trong quá trình phát hành phần mềm.
Phần 2: Thiết lập GitHub Actions
Để tạo một GitHub Action nhằm tự động hóa việc tạo release tag, bạn cần tạo một tệp YAML trong thư mục .github/workflows
của dự án. Tệp YAML này xác định các bước cần thiết để tạo release tag khi có một sự kiện cụ thể.
Dưới đây tôi có 3 cách để tạo 1 bản release:
name: Create Release Tag
on:
push:
branches:
- main
jobs:
create_tag:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: write
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Create tag name
id: create_tag_name
run: |
echo "tag_name=v1.3.3" >> $GITHUB_OUTPUT
echo "tag_name_gh=v1.3.4" >> $GITHUB_OUTPUT
echo "tag_name_api=v1.3.5" >> $GITHUB_OUTPUT
- name: Create New Tag
run: |
echo "${{ steps.create_tag_name.outputs.tag_name }}"
tag_name="${{ steps.create_tag_name.outputs.tag_name }}"
git tag $tag_name
git push origin $tag_name
- name: Create Release by actions/create-release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: "${{ steps.create_tag_name.outputs.tag_name }}"
release_name: Release "${{ steps.create_tag_name.outputs.tag_name }}"
body: |
Changes in this Release
- First Change
- Second Change
draft: false
prerelease: false
# By GH
- name: Install GitHub CLI
run: |
sudo apt update
sudo apt install -y gh
- name: Create GitHub Release by GH
env:
GH_TOKEN: ${{ github.token }}
run: |
tag_name="${{ steps.create_tag_name.outputs.tag_name_gh }}"
gh release create $tag_name -t "Release $tag_name" -n "Description for Release $tag_name"
- name: Create GitHub Release with API
run: |
tag_name="${{ steps.create_tag_name.outputs.tag_name_api }}"
curl -X POST -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-d '{
"tag_name": "'$tag_name'",
"target_commitish": "main",
"name": "Release '$tag_name'",
"body": "Description for release '$tag_name'",
"draft": false,
"prerelease": false
}' \
https://api.github.com/repos/${{ github.repository }}/releases
Giải thích:
draft: false
: Nếu bạn muốn tạo release nháp, đặt thànhtrue
.prerelease: false
: Đặt thànhtrue
nếu đây là một phiên bản tiền phát hành (prerelease).
Kết quả nhận được:
Phần Kết Luận:
Bằng cách sử dụng GitHub Actions, bạn có thể tự động hóa quy trình tạo release tag, giúp tăng cường hiệu suất và độ tin cậy trong phát triển phần mềm. Mã ví dụ trong bài viết này sẽ giúp bạn bắt đầu, nhưng bạn có thể tùy chỉnh theo nhu cầu cụ thể của dự án. Chúc bạn thành công trong việc triển khai quy trình phát hành tự động và tận hưởng lợi ích của nó đối với dự án của bạn.
Nếu bạn cần hỗ trợ thêm hoặc có câu hỏi khác về GitHub Actions, hãy tham gia cộng đồng GitHub hoặc tham khảo tài liệu chính thức để tìm hiểu thêm về các tính năng nâng cao và cách áp dụng chúng vào dự án của bạn.