🐥
Github Actions設定備忘録(自分用)
name: Build and Release
on:
push:
tags:
- "v*"
env:
DOCKER_IMAGE: ghcr.io/namespace/image_name
jobs:
setup-build-publish-deploy:
name: Setup, Build, Publish
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: version
id: version
run: |
echo "VERSION=${GITHUB_REF#refs/tags/}" >> "$GITHUB_ENV"
# これがないとdocker/build-push-actionでcache-toを使えない
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: login to Github Container Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN}}
- name: Container Build and Push
uses: docker/build-push-action@v2
with:
tags: ${{ env.DOCKER_IMAGE }}:${{ env.VERSION }}
cache-from: type=registry,ref=${{ env.DOCKER_IMAGE }}:buildcache
cache-to: type=registry,ref=${{ env.DOCKER_IMAGE }}:buildcache
build-args: |
VERSION=${{ env.VERSION }}
ARG_GO_MODULES_TOKEN=${{env.GO_MODULES_TOKEN}}
outputs: type=registry
push: true
- name: Deployment yaml
uses: n-creativesystem/variable-template@v1
with:
input: input/filename.yaml
output: output/filename.yaml
env:
env_name: value
- name: Notify to Slack channel
if: ${{ success() }}
uses: rtCamp/action-slack-notify@v2
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
SLACK_USERNAME: GitHUb Actions
SLACK_TITLE: Workflow succeeded
SLACK_ICON: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png
SLACK_MESSAGE: "Succeeded Run number : #${{ github.run_number }}"
- name: Notify to Slack channel
if: ${{ failure() }}
uses: rtCamp/action-slack-notify@v2
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
SLACK_USERNAME: GitHUb Actions
SLACK_TITLE: Workflow failed
SLACK_ICON: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png
SLACK_COLOR: danger
SLACK_MESSAGE: "Failed Run number : #${{ github.run_number }}"
Discussion