add actions and devcontainer #10

Merged
mengning merged 6 commits from actions into main 2025-12-21 08:56:40 +00:00
7 changed files with 156 additions and 192 deletions
Showing only changes of commit f0d59db967 - Show all commits

View File

@@ -1,77 +1,77 @@
name: CI/CD Pipeline for mengning.com.cn name: CI/CD Pipeline for mengning.com.cn
on: on:
push: push:
branches: branches:
- main - main
pull_request: pull_request:
branches: branches:
- main - main
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
# container: # container:
# image: gitea/runner-images:ubuntu-latest # image: gitea/runner-images:ubuntu-latest
steps: steps:
- name: 拉取代码 - name: 拉取代码
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:
fetch-depth: 1 fetch-depth: 1
- name: 安装依赖 - name: 安装依赖
working-directory: working-directory:
run: | run: |
npm install npm install
npm add -D vitepress npm add -D vitepress
- name: 构建项目 - name: 构建项目
working-directory: working-directory:
run: | run: |
chmod +x node_modules/.bin/vitepress chmod +x node_modules/.bin/vitepress
npm run build npm run build
- name: 构建 Docker 镜像 - name: 构建 Docker 镜像
run: | run: |
docker build -t devstar.cn/devstar/devstar-docs:latest . docker build -t devstar.cn/devstar/devstar-docs:latest .
- name: 登录 Docker Registry 并推送镜像 - name: 登录 Docker Registry 并推送镜像
if: github.event_name != 'pull_request' if: github.event_name != 'pull_request'
run: | run: |
echo "${{ secrets.DOCKER_REGISTRY_PASSWORD }}" | docker login -u ${{ secrets.DOCKER_REGISTRY_USERNAME }} ${{ vars.DOCKER_REGISTRY_ADDRESS }} --password-stdin echo "${{ secrets.DOCKER_REGISTRY_PASSWORD }}" | docker login -u ${{ secrets.DOCKER_REGISTRY_USERNAME }} ${{ vars.DOCKER_REGISTRY_ADDRESS }} --password-stdin
docker push devstar.cn/devstar/devstar-docs:latest docker push devstar.cn/devstar/devstar-docs:latest
- name: 📝 Update mengning.com.cn通过删除/创建 Application CRD - name: 📝 Update mengning.com.cn通过删除/创建 Application CRD
if: github.event_name != 'pull_request' if: github.event_name != 'pull_request'
env: env:
TLS_CERTIFICATE: ${{ secrets.TLS_CERTIFICATE }} TLS_CERTIFICATE: ${{ secrets.TLS_CERTIFICATE }}
TLS_PRIVATE_KEY: ${{ secrets.TLS_PRIVATE_KEY }} TLS_PRIVATE_KEY: ${{ secrets.TLS_PRIVATE_KEY }}
run: | run: |
curl -LO https://mirrors.ustc.edu.cn/kubernetes/core%3A/stable%3A/v1.28/deb/amd64/kubectl_1.28.0-1.1_amd64.deb curl -LO https://mirrors.ustc.edu.cn/kubernetes/core%3A/stable%3A/v1.28/deb/amd64/kubectl_1.28.0-1.1_amd64.deb
sudo dpkg -i kubectl_1.28.0-1.1_amd64.deb sudo dpkg -i kubectl_1.28.0-1.1_amd64.deb
kubectl config set-cluster remote-cluster --server=${{ secrets.K8S_URL }} --insecure-skip-tls-verify=true kubectl config set-cluster remote-cluster --server=${{ secrets.K8S_URL }} --insecure-skip-tls-verify=true
kubectl config set-credentials token-user --token=${{ secrets.K8S_TOKEN }} kubectl config set-credentials token-user --token=${{ secrets.K8S_TOKEN }}
kubectl config set-context remote-context --cluster=remote-cluster --user=token-user kubectl config set-context remote-context --cluster=remote-cluster --user=token-user
kubectl config use-context remote-context kubectl config use-context remote-context
# 创建或更新 TLS Secret # 创建或更新 TLS Secret
# Secret 名称: mengningsoftware-tls # Secret 名称: mengningsoftware-tls
echo "$TLS_CERTIFICATE" > /tmp/tls.crt echo "$TLS_CERTIFICATE" > /tmp/tls.crt
echo "$TLS_PRIVATE_KEY" > /tmp/tls.key echo "$TLS_PRIVATE_KEY" > /tmp/tls.key
kubectl create secret tls mengningsoftware-tls \ kubectl create secret tls mengningsoftware-tls \
--cert=/tmp/tls.crt \ --cert=/tmp/tls.crt \
--key=/tmp/tls.key \ --key=/tmp/tls.key \
-n istio-system \ -n istio-system \
--dry-run=client -o yaml | kubectl apply -f - --dry-run=client -o yaml | kubectl apply -f -
rm -f /tmp/tls.crt /tmp/tls.key rm -f /tmp/tls.crt /tmp/tls.key
# 删除旧的 Application CRD如果存在忽略错误 # 删除旧的 Application CRD如果存在忽略错误
kubectl delete application mengningsoftware -n web-servers --ignore-not-found=true || true kubectl delete application mengningsoftware -n web-servers --ignore-not-found=true || true
# 创建新的 Application CRD # 创建新的 Application CRD
kubectl apply -f deploy.yaml kubectl apply -f deploy.yaml
- name: Clean Environment - name: Clean Environment
if: always() if: always()
run: | run: |
docker rmi devstar.cn/devstar/devstar-docs:latest || true docker rmi devstar.cn/devstar/devstar-docs:latest || true
docker builder prune -f || true docker builder prune -f || true