@@ -21,31 +21,40 @@ env:
# 构建 Job
jobs :
build :
runs-on : ubuntu-node22 # 如果host构建 : linux_amd64
runs-on : ubuntu-node22 # 如果host构建: linux_amd64
# container:
# image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/catthehacker/ubuntu:act-latest
steps :
- name : Print system info 1
run : echo " The job was automatically triggered by a ${{ gitea.event_name }} event."
- name : Print system info 2
run : echo " This job is now running on a ${{ runner.os }} server hosted by Gitea!"
- name : Print system info 3
run : echo " The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
- name : Print env
run : env
- name : Install dependencies
run : apt-get update &&
apt-get install -y gettext &&
apt-get install -y maven &&
apt-get install coreutils &&
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add &&
cd /etc/apt/sources.list.d &&
touch docker.list &&
chmod 666 docker.list &&
echo "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" > docker.list &&
apt-get update && && apt upgrade &&
apt-get install -y docker-ce docker-ce-cli containerd.io
- name : Print env
run : env && blkid
- name : Install dependencies
run : |
apt-get update &&
apt-get install -y gettext &&
apt-get install -y maven &&
apt-get install -y sudo &&
apt-get install -y iptables
- name : Set up Docker
uses : http://139.9.216.111:3000/bamanker/setup-docker-action@v4.6.0
with :
version : type=archive,channel=stable,version=v27.4.0
daemon-config : |
{
"registry-mirrors":["https://docker.1ms.run"],
"dns": ["8.8.8.8", "114.114.114.114"]
}
- name : Generate maven config
uses : http://139.9.216.111:3000/bamanker/maven-settings-action@v3.1.0
with :
@@ -77,9 +86,7 @@ jobs:
id : set_envar
run : |
echo "The app version is $APP_TAG" && echo "tag=$APP_TAG" >> $GITHUB_OUTPUT &&
echo "now workspace: ${{ github.workspace }}" &&
pwd &&
docker version
echo "now workspace: ${{ github.workspace }}"
# 为其他配置文件注入环境变量
- name : Inject envVar
@@ -121,7 +128,12 @@ jobs:
env :
TAG : ${{ steps.set_envar.outputs.tag }}
run : |
docker buildx build -t ${{ env.REGISTRY }}/${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }}:${{ env.TAG }} --push .
ls &&
docker build --file Dockerfile --tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }}:${{ env.TAG }} . &&
docker image ls
docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }}:${{ env.TAG }}
# ${{ env.REGISTRY }}/${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }}:${{ env.TAG }} --push.
# uses: http://139.9.216.111:3000/bamanker/docker-build-push@v5
# with:
# context: .
## platforms: linux/amd64
@@ -130,17 +142,34 @@ jobs:
# tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }}:${{ env.TAG }}
#发布到 k8s
- name : Generate kubeconfig
uses : http://139.9.216.111:3000/bamanker/kubectl-action@v1.4.0
- name : Setup kubectl
uses : http://139.9.216.111:3000/bamanker/setup-kubectl@v4
with :
base64-kube-config : ${{ secrets.KUBE_CONFIG }}
- name : Deploy k8s
run : kubectl apply -f ./deployment.yml
# command: apply -f http://139.9.216.111:3000/bamanker/myk3sTest/raw/branch/master/.deploy/deployment-temp.yml
version : "v1.33.6" # 或指定具体版本,比如 "v1.29.0"
- name : Configure kubeconfig
# 假设您的 KUBE_CONFIG 秘密是 Base64 编码的 kubeconfig 文件内容
run : |
# 1. 创建 ~/.kube 目录
mkdir -p $HOME/.kube
# 2. 将 Base64 编码的 KUBE_CONFIG 秘密解码并写入默认配置文件
echo "${{ secrets.KUBE_CONFIG }}" | base64 -d > $HOME/.kube/config
# 3. 确保 kubectl 知道配置文件的位置 (可选, 但安全)
echo "KUBECONFIG=$HOME/.kube/config" >> $GITHUB_ENV
- name : Deploy with kubectl
run : |
kubectl apply -f ./deployment.yml
#
- name : k8s Check Pods Health
run : kubectl get pod -n default -l app=${{ env.APP_NAME }}
run : |
args: get pod -n default -l app=${{ env.APP_NAME }}
- name : k8s Update Deployment
run : kubectl rollout restart deployment ${{ env.APP_NAME }}
run : |
rollout restart deployment ${{ env.APP_NAME }}