時間飛逝,第 29 天已經來臨,你還過得好嗎?
回顧 Day 25,我們已經一同探討了並成功在 docker-compose.yml
檔案中做了適當的設置。今天,我們的目標是在 GitHub Actions 的 .github/workflows/main.yml
檔案中加上部署階段,勇敢地將我們的應用部署到生產環境,為 2023 年的自我挑戰留下完美的一個句點。
在我們進入正題之前,不妨先回顧一下目前 .github/workflows/main.yml
的基本架構:
name: CI/CD Pipeline
on:
push:
branches:
- main
jobs:
build:
# 中略...
publish:
# 中略...
此刻,我們將要在這份工作流程中,加入一個全新的 job
,專門來處理部署的工作。
deploy:
needs: publish
runs-on: self-hosted
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Deploy to PROD
run: docker-compose -f docker-compose.prod.yml up -d
注意到了嗎?needs: publish
這一行表明這個 job 是建立在 publish
完成之後才會進行。
整理過後,完整的 .github/workflows/main.yml
檔案會呈現如下:
name: CI/CD Pipeline
on: [push, pull_request]
jobs:
build:
# 中略...
publish:
# 中略...
deploy:
needs: build
runs-on: self-hosted
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Deploy to PROD
run: docker-compose -f docker-compose.prod.yml up -d
今天的旅程中,我們成功地在 GitHub Actions 的 .github/workflows/main.yml
檔案中添增了部署階段,這也是持續集成與持續部署(CI/CD)中極其重要的一環。
這次用Go語言開發的RSS閱讀器專案很基本,想談談該專案未來發展的可能方向。
目前,我們的RSS閱讀器僅支持基本的RSS來源。未來我們計劃增加對Podcast、YouTube頻道和其他社交媒體來源的支持。
為了使更多人能使用這個應用,我們也計劃添加多語言支持。
為了能夠更好地擴展和處理大量請求,我們計劃將應用升級為分佈式架構。
雖然我們已經有了基本的自動化測試,但未來會增加更多涵蓋各種情況和邊界條件的測試。
我們計劃開放API,以促進與其他開發者和企業的合作。
希望能夠吸引更多開發者參與這個專案,不論是貢獻代碼、提出建議,或是報告問題。
未來的路還很長,但我們對這個RSS閱讀器專案充滿期待和熱情。感謝你們一直以來的支持和陪伴。
明天是這個30天挑戰的最後一天,我們會回顧這整個月的學習旅程,請大家期待!