Rust 使用 GitHub 流水線發佈包
GitHub 流水線功能是比較方便用來做自動化的,常見的有單元測試、覆蓋率報告或圖標生成、docker 鏡像構建、npm 發佈等。當然也可以用來發布 Rust 包到 https://crates.io。
它主要依賴於 publish-action 這個庫。
首先,在項目根目錄下,新建一個文件.github/workflows/release.yaml
name: Publish to Cargo
on:
push:
# branches: [ main ]
# paths:
# - 'src/'
tags:
- '**'
jobs:
publish:
runs-on: ubuntu-latest
name: 'publish'
# Reference your environment variables
environment: cargo
steps:
- uses: actions/checkout@master
# Use caching to speed up your build
- name: Cache publish-action bin
id: cache-publish-action
uses: actions/cache@v3
env:
cache-name: cache-publish-action
with:
path: ~/.cargo
key: ${{ runner.os }}-build-${{ env.cache-name }}-v0.2.0
# install publish-action by cargo in github action
- name: Install publish-action
if: steps.cache-publish-action.outputs.cache-hit != 'true'
run:
cargo install publish-action --version=0.2.0
- name: Run publish-action
id: publish-action
run:
publish-action
env:
# This can help you tagging the github repository
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# This can help you publish to crates.io
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
#- name: Update Changelog.md
# if: steps.publish-action.outputs.new_version == 'true' && steps.publish-action.outputs.publish == 'true'
# run: |
# changelog -o Changelog.md
這個表示,只有打 tag 時纔會觸發任務。詳見:https://github.com/tu6ge/publish-action
進入 Github 上這個項目的 settings 頁面,找到環境變量 environments,新增一個名稱叫 cargo:
添加你在 cargo 上的密鑰:
最終在 github 的 action 中可以看到:
我這是已經發布成功了,之所以流水線失敗是因爲 commit 信息太短了。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/1FrU1EGRsFulcGlLHO3pFw