用 Github Action 編譯並發 Release

如果自己寫的小工具的 GitHub 頁面右邊 Release 那欄有個什麼東西,一定很酷對吧!如果裡面已經提供了不同作業系統編譯好的程式,一定更酷! 想要建立 Release,你可以在新版本發布時自己手動 crose compile 再手動設定 Release,這個方法可行,但是聽起來全手動就很 low,我們要用一個全自動的方式發 Release! Github Actioin 既然我們程式碼都託管在 GitHub 了,直接用 Gtithub Action 是很合理的吧! 觸發條件 因為我們要做的是發布版本,不是每個 commit 都要觸發,因此觸發條件就設成 on: push: tags: - "v[0-9]+.[0-9]+.[0-9]+" 意思是只有像是 v0.1.13 這樣的標籤會觸發,也就是你建立新版本時。 編譯 在嘗試各種套件之後,我覺得 goreleaser-action 是我用起來最舒服的,不用太多設定,就直接都編譯好了(詳細設定可以去 goreleaser 的網站看 ) 在 GitHub Action 中設定就下面幾行,第一個步驟是安裝 go,再來就是編譯了。 - name: Set up Go uses: actions/[email protected] with: go-version: 1.17.x - name: Run GoReleaser uses: goreleaser/[email protected] with: version: latest args: release --rm-dist env: GITHUB_TOKEN: ${{ secrets....

2022-March-27 · 2 分鐘 · simba-fs

GitHub Action 自動部署 hexo

前言 本來部署 hexo 都是手動下指令,但是這樣在手機上因為沒辦法裝 hexo ,所以一直不能在手機上寫文章。剛好想到 GitHub Action 可以滿足我的需求,上網查了一下資料發現蠻多人有和我一樣的需求,這次參考的是 owlran 大大的文章。 ssh key 因為要部署到 GitHub repo,最方便的方法當然是 ssh key 啦。 ssh-keygen 首先隨便找個資料夾產生一組 ssh key ssh-keygen -f deploy-key GitHub 再來要讓 GitHub 知道你的 ssh key(public/secret 都要) public key public key 是要放在你的 <username>.github.io 的 repo 下 .ggithub.io -> settings -> Deploy keys -> add deploy key 新增一個 ssh key,名字叫 DEPLOY_KEY_PUB 把 depoly-key.pub 的內容貼上,記得下面的勾勾(Allow write access )要選起來 secret key secret key 要放在你存放部落格檔案的 repo,owlran 大大是放在同一個 repo 不同 branch,我是放在兩個不同 repo,其中放部落格檔案的 repo 我設成 private repo(因為我放了一些 gitalk 要用的 clientSecret,這個不能公開)。...

2020-August-16 · 2 分鐘 · simba-fs

gitalk

啟用 gitalk 留言 到這個網址填資料 加入下面的片段到_config.yml disqus: enabled: false gitalk: enabled: true owner: <username> repo: <username>.github.io admin: ['<username>'] clientID: <clientID> clientSecret: <clientSecret> 加入下面的片段到themes/cactus/layout/_partial/comments.ejs <% if(page.comments && theme.gitalk.enabled){ %> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/gitalk.css"> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/gitalk.min.js"></script> <script src="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.min.js"></script> <div id="gitalk-container"></div> <script type="text/javascript"> var gitalk = new Gitalk({ clientID: '<%= theme.gitalk.clientID %>', clientSecret: '<%= theme.gitalk.clientSecret %>', id: md5(window.location.pathname), repo: '<%= theme.gitalk.repo %>', owner: '<%= theme.gitalk.owner %>', admin: '<%= theme.gitalk.admin %>', distractionFreeMode: '<%= theme....

2020-February-11 · 1 分鐘 · simba-fs