🚀 Githubアクションを迅速かつ簡単にできるだけ早くプロジェクトを開く
導入
こんにちは、devの世界!😉 優れたCI/CDツールを使用してルーチンを自動化する記事の連続シリーズ- githubアクション.
これは、外出先で書かれたアプリケーションのリリースを自動化する時間です!
📝 目次
What will we automate?
Time to release!
🤔 何が自動化されますか?
あなたが別のプラットフォーム/OSのためにGOに書かれたプロジェクトをリリースするの課題に直面した場合は、すでにあなたが遭遇する可能性のある問題の種類を知っている.そうでなければ、私はいくつかを持ってきます.
CHANGELOG
新しいバージョン.私は冗談ではない、それはあなたがこのすべてを行うことができます
GoReleaser
ギタブアクション👇ゴーレム / ゴーレムアクション
Octocat : Gorelezerのためのアクション
ゴーレムアクション
GitHub Action ゴーレズ
Usage
Customizing
用途
ワークフロー
name: goreleaser on: pull_request: push: jobs: goreleaser: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 with: fetch-depth: 0 - name: Set up Go uses: actions/setup-go@v2 with: go-version: 1.15 - name: Run GoReleaser uses: goreleaser/goreleaser-action@v2 with: # either 'goreleaser' (default) or 'goreleaser-pro' distribution: goreleaser version: latest args: release --rm-dist env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Your GoReleaser Pro key, if you are using the 'goreleaser-pro' distribution # GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
IMPORTANT: note the
fetch-depth: 0
input inCheckout
step. It is required for the changelog to work correctly.
新しいタグで走る
If you want to run GoReleaser only…
👀 リポジトリ構造
For a short, project will be contain very simple function:
package main
import "fmt"
func main() {
fmt.Println("Hi, DEV World! 😉")
}
リポジトリの構造は以下のように簡単になります..
├── .github
│ └── workflows
│ └── release_build.yml # <-- GitHub Action
└── main.go # <-- main function
↑ Table of contents 🤖 アクションを設定する
話の主人公に移りましょう.ファイルの一覧を見る
release_build.yml
, あなたがGithubアクションについての私の前の記事を読んだならば😏):name: Release Go project
on:
push:
tags:
- "*" # triggers only if push new tag version, like `0.8.4` or else
jobs:
build:
name: GoReleaser build
runs-on: ubuntu-latest
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v2
with:
fetch-depth: 0 # See: https://goreleaser.com/ci/actions/
- name: Set up Go 1.14
uses: actions/setup-go@v2
with:
go-version: 1.14
id: go
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@master
with:
version: latest
args: release --rm-dist
env:
GITHUB_TOKEN: ${{ secrets.GO_RELEASER_GITHUB_TOKEN }}
はい、githubは自動的にGITHUB_TOKEN
あなたのワークフローで使用する秘密repo
スコープhere :そして今、新しいGithub秘密を作成します
GO_RELEASER_GITHUB_TOKEN
私の場合)↑ Table of contents
✅ トラブルシューティング
あなたのファイル
main()
関数はリポジトリのルートディレクトリにありません.Goreleaserはエラーを生成します.したがって、次のように、ステップ設定で正しいディレクトリを指定する必要があります.# ...
steps:
# ...
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@master
with:
version: latest
args: release --rm-dist
workdir: ./cmd/myapp # <-- path to directory with main() func
env:
GITHUB_TOKEN: ${{ secrets.GO_RELEASER_GITHUB_TOKEN }}
↑ Table of contents 🚀 リリースする時間!
タグで新しいリリースを作成します
0.8.4
) アクションページに次のようにしてください.正常にジョブを完了した後、素晴らしい結果を表示するには、ページを開きます.
CHANGELOG
すべてのコミット(2つのバージョンの間).checksums.txt
すべてのプラットフォーム用のコンパイルされたアプリケーションとファイルとアップロードされたアーカイブ!それだ!それと同じように!🎉
↑ Table of contents
🎯 実生活例
上記のスクリーンショットが十分でないならば、私はあなたが私が使用する私のプロジェクトの1つを見るために、あなたを招待します
GoReleaser
実生活における行動アプリを作成 / CLI
✨ バックエンド、フロントエンド、および1つのCLIコマンドを実行して自動化を展開すると、新しい生産準備プロジェクトを作成!
クリエイトアプリ
バックエンド(Golang)、フロントエンド(JavaScript、typescript)で、新しい生産準備プロジェクトを作成し、1つのCLIコマンドを実行することによって自動化(ansible、Docker)を展開します.フォーカスを書くコードとビジネスロジックの思考に!CLIは残りの世話をします.
畝 畝 畝
⚡️ クイックスタート
まず第一にdownload をインストールします.バージョン1.17
が必要です.
If you're looking for the Create Go App CLI for Go 1.16
, you can find it here.
インストールは go install
インストールされたバイナリのコマンドと名前の変更$GOPATH/bin
:
Githubをインストールします.com/create/cli/v 3/cmd/cgapp@latest
また、MacOSやGNU/Linuxユーザを経由してインストールする方法Homebrew :
新しい式をタップします.
専用のアプリケーションを作成する
インストール
をインストールしてください
インタラクティブなコンソールUI(またはCUIのショートカット)を使用して新しいフォルダを作成します.
CGappクリエイト
次に、生成された可用性インベントリファイルを開きますhosts.ini
) そして
View on GitHub
↑ Table of contents
💬 より良い理解のための質問
If you're looking for the Create Go App CLI for Go 1.16
, you can find it here.
fetch-depth: 0
for actions/checkout
アクション?-rm-dist
引数平均Run GoReleaser
ステップ?✏️ 独立執行演習
写真/画像
ピーエス
あなたがより望むならば、下記のコメントを書いて、私について来てください.THX!😘
Reference
この問題について(🚀 Githubアクションを迅速かつ簡単にできるだけ早くプロジェクトを開く), 我々は、より多くの情報をここで見つけました https://dev.to/koddr/github-action-for-release-your-go-projects-as-fast-and-easily-as-possible-20a2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol