From 046ff63e42ab4ab3e817350c530165d6ea5d0309 Mon Sep 17 00:00:00 2001 From: DAI Mingchen Date: Thu, 25 Jul 2024 10:01:24 +0000 Subject: [PATCH] test new CI pipeline workflow in the org repo, with a bunch of ENV vars --- .gitea/workflows/deploy-dev2poc.yaml | 46 ------------------ .gitea/workflows/devstar-studio-ci.yaml | 62 +++++++++++++++++++++++++ Dockerfile.rootless | 6 +-- 3 files changed, 65 insertions(+), 49 deletions(-) delete mode 100644 .gitea/workflows/deploy-dev2poc.yaml create mode 100644 .gitea/workflows/devstar-studio-ci.yaml diff --git a/.gitea/workflows/deploy-dev2poc.yaml b/.gitea/workflows/deploy-dev2poc.yaml deleted file mode 100644 index c61678d979..0000000000 --- a/.gitea/workflows/deploy-dev2poc.yaml +++ /dev/null @@ -1,46 +0,0 @@ -# -# Add secrets of Remote Git Repository Panel: -# - ${{ secrets.DOCKER_REGISTRY_PASSWORD }}: password corresponding to the Docker Registry username - -# Add variables of Remote Git Repository Panel: -# - ${{ vars.DOCKER_REGISTRY_ADDRESS }}: the address for Docker Registry -# - ${{ vars.DOCKER_REGISTRY_USERNAME }}: the username for Docker Registry -# - ${{ vars.K8S_NAMESPACE }}: the namespace defined in Helm Chart -# - ${{ vars.K8S_DEPLOYMENT_NAME}}: the Deployment to rolled out restart after pushing artifact to Docker Registry - -name: Deploy DevStar Studio PoC (Proof of Concept) -on: - push: - branches: - - master - pull_request: - branches: - - master - -jobs: - build-and-push-x86-64-docker-image: - runs-on: ubuntu-latest - steps: - - name: 🔍 Check out repository code - uses: actions/checkout@v4 - with: - ref: master - - name: 🔧 Test Codes and Build an Artifact - run: | - echo "Prepare to build repository code ${{ gitea.repository }}:${{ gitea.ref }}." - make docker - - name: 🚀 Push Artifact to Docker Registry - run: | - docker tag devstar-studio:latest ${{ vars.DOCKER_REGISTRY_ADDRESS }}/${{ vars.DOCKER_REGISTRY_USERNAME }}/devstar-studio-preview:latest-rootless - echo "${{ secrets.DOCKER_REGISTRY_PASSWORD }}" | docker login -u ${{ vars.DOCKER_REGISTRY_USERNAME }} ${{ vars.DOCKER_REGISTRY_ADDRESS }} --password-stdin - docker push ${{ vars.DOCKER_REGISTRY_ADDRESS }}/${{ vars.DOCKER_REGISTRY_USERNAME }}/devstar-studio-preview:latest-rootless - - if [ "$(docker volume ls -qf dangling=true)" ]; then - docker volume rm $(docker volume ls -qf dangling=true) - echo "Dangling docker volumes deleted." - fi - - name: 🔧 Roll out Update on Kubernetes - run: | - echo "Please manually execute: kubectl rollout restart deployment -n ${{ vars.K8S_NAMESPACE }} ${{ vars.K8S_DEPLOYMENT_NAME}}" - - name: 🍏 Job Status Report - run: echo "🍏 This job's status is ${{ job.status }}." diff --git a/.gitea/workflows/devstar-studio-ci.yaml b/.gitea/workflows/devstar-studio-ci.yaml new file mode 100644 index 0000000000..5ad9d55e0e --- /dev/null +++ b/.gitea/workflows/devstar-studio-ci.yaml @@ -0,0 +1,62 @@ +# +# Add secrets of Remote Git Repository Panel: +# - ${{ secrets.DOCKER_REGISTRY_USERNAME }}: username of Docker Registry +# - ${{ secrets.DOCKER_REGISTRY_PASSWORD }}: password corresponding to the Docker Registry username + +# Add variables of Remote Git Repository Panel: +# - ${{ vars.DOCKER_REGISTRY_ADDRESS }}: the address for Docker Registry +# - ${{ vars.DOCKER_REPOSITORY_ARTIFACT}}: the artifact $name:$version, e.g., `devstar/devstar-studio:latest-rootless` +# - ${{ vars.K8S_NAMESPACE }}: the namespace defined in Helm Chart +# - ${{ vars.K8S_DEPLOYMENT_NAME}}: the Deployment to rolled out restart after pushing artifact to Docker Registry + +name: DevStar Studio CI Pipeline +on: + push: + branches: + - dev + - dev-proof-of-concept + pull_request: + branches: + - master + +jobs: + build-and-push-x86-64-docker-image: + # TODO: 使用私有 registry 绕过默认 docker.io + runs-on: ubuntu-latest # Actual image: docker.io/library/gitea/runner_image:ubuntu-latest + steps: + - name: 🔍 Check out repository code + uses: actions/checkout@v4 + with: + ref: master + - name: 🔧 Test Codes and Build an Artifact + run: | + echo "Prepare to build repository code ${{ gitea.repository }}:${{ gitea.ref }}." + make docker + - name: 🚀 Push Artifact to Docker Registry + run: | + docker tag devstar-studio:latest ${{ vars.DOCKER_REGISTRY_ADDRESS }}/${{ vars.DOCKER_REPOSITORY_ARTIFACT }} + echo "${{ secrets.DOCKER_REGISTRY_PASSWORD }}" | docker login -u ${{ secrets.DOCKER_REGISTRY_USERNAME }} ${{ vars.DOCKER_REGISTRY_ADDRESS }} --password-stdin + docker push ${{ vars.DOCKER_REGISTRY_ADDRESS }}/${{ vars.DOCKER_REPOSITORY_ARTIFACT }} + - name: 🔧 Roll out Update on Kubernetes + run: | + echo "Please manually execute: kubectl rollout restart deployment -n ${{ vars.K8S_NAMESPACE }} ${{ vars.K8S_DEPLOYMENT_NAME}}" + - name: 🍏 Job Status Report + run: echo "🍏 This job's status is ${{ job.status }}." + + +# +# P.S.: +################################################################################ +# 1. How to config runner: +# $ docker run \ +# --name gitea-act-runner-repo-devstar-studio \ +# -d \ +# -e GITEA_INSTANCE_URL=https://www.mengning.net \ +# -e GITEA_RUNNER_REGISTRATION_TOKEN=${YOUR_GITEA_RUNNER_REGISTRATION_TOKEN} \ +# -v /var/run/docker.sock:/var/run/docker.sock \ +# gitea/act_runner:latest +# +# 2. To clean the docker cache: +# $ docker builder prune --force +# $ if [ "$(docker volume ls -qf dangling=true)" ]; then docker volume rm $(docker volume ls -qf dangling=true); fi +# diff --git a/Dockerfile.rootless b/Dockerfile.rootless index c00bc6739d..7101c27aad 100644 --- a/Dockerfile.rootless +++ b/Dockerfile.rootless @@ -1,8 +1,8 @@ ARG DOCKER_REGISTRY_ADDRESS="www.mengning.net" -ARG DOCKER_REGISTRY_USERNAME="daimingchen" +ARG DOCKER_REGISTRY_USERNAME="devstar" -ARG DEV_CONTAINER="gitea-devstar-dev-container:v1.0" -ARG RUNTIME_CONTAINER="gitea-devstar-runtime-container:v1.0" +ARG DEV_CONTAINER="gitea-dev-container:v1.0" +ARG RUNTIME_CONTAINER="gitea-runtime-container:v1.0" ###########################################################