王一之 cd43e0a621
All checks were successful
Release / deploy (push) Successful in 1m57s
ci: 修改ci
2023-11-10 10:54:48 +08:00

94 lines
2.5 KiB
YAML

name: Release
on:
push:
branches:
- main
- release/*
env:
APP_NAME: "dnspod-watch"
NAMESPACE: app
REGISTRY: ${{ secrets.DOCKER_REGISTRY && secrets.DOCKER_REGISTRY || 'docker.io' }}
REPOSITORY: "codfrm/dnspod-watch"
GOPROXY: ${{ secrets.GOPROXY && secrets.GOPROXY || 'https://goproxy.cn,direct' }}
RUNNER_TOOL_CACHE: /toolcache
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Go
uses: actions/setup-go@v4.2.0
with:
go-version: '1.21'
- name: Lint
# uses: golangci/golangci-lint-action@v3
uses: actions/golangci-lint-action@v3
with:
version: latest
install-mode: goinstall
- name: Tests
run: |
go test $(go list ./...)
- name: Build binary file
run: |
CGO_ENABLE=0 GOOS=linux GOARCH=amd64 go build -o ${{ env.APP_NAME }} ./cmd/app
- name: Set up QEMU
# uses: docker/setup-qemu-action@v3
uses: actions/setup-qemu-action@v3
- name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v3
uses: actions/setup-buildx-action@v3
- name: Login to Docker Hub
# uses: docker/login-action@v3
uses: actions/login-action@v1
with:
registry: ${{ env.REGISTRY }}
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Set outputs
id: vars
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Docker build and push
# use: docker/build-push-action@v5
uses: actions/build-push-action@v5
with:
push: true
file: deploy/docker/Dockerfile
tags: ${{ env.REGISTRY }}/${{ env.REPOSITORY }}:${{ steps.vars.outputs.sha_short }}
context: .
build-args: |
APP_NAME=${{ env.APP_NAME }}
- name: Set up kubeconfig
# uses: azure/k8s-set-context@v3
uses: actions/k8s-set-context@v3
with:
method: kubeconfig
kubeconfig: ${{ secrets.KUBE_CONFIG }}
context: k8s-context
- name: Set up Helm
# uses: azure/setup-helm@v3
uses: actions/setup-helm@v3.6
with:
version: 'v3.13.1' # default is latest (stable)
- name: Deploy
run: |
cd deploy/helm
helm upgrade --install --namespace $NAMESPACE $APP_NAME . \
--set image.tag=${{ steps.vars.outputs.sha_short }} --set image.repository=${{ env.REGISTRY }}/${{ env.REPOSITORY }} \
--set etcdConfig.password=${{ secrets.ETCD_CONFIG_PASSWORD }}