# git action 實作CI初戰 ## 1. 目的 - 新增 tag or release 就 push docker image 到 docker hub - docker image tag 會使用 git 的 tag name ## 作法 1. 新增 workflows  2. 新增下列設定,[在官網可以找到範例](https://docs.github.com/en/actions/publishing-packages/publishing-docker-images) ```yml name: Docker Image CI on: push: tags: - '*' # 任何tag都做,也可以寫成 v1.* 之類的 release: types: [published] jobs: push_to_registry: name: Push Docker image to Docker Hub runs-on: ubuntu-latest steps: - name: Check out the repo uses: actions/checkout@v3 - name: Log in to Docker Hub uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 with: username: ${{ secrets.DOCKER_USERNAME }} # 要在專案內新增 secret password: ${{ secrets.DOCKER_PASSWORD }} - name: Extract metadata (tags, labels) for Docker id: meta uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 with: images: kkrong/ci-test # 需要對應到 docker hub 的 repository - name: Build and push Docker image uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc with: context: . push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} ``` ### 補充1. 取得 github tag name的一種方式 - [參考github討論文章](https://github.com/orgs/community/discussions/26686#discussioncomment-3396593) ### 補充2. 新增Secret - [新增方式參考官網](https://docs.github.com/en/actions/security-guides/encrypted-secrets)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up