diff --git a/.github/workflows/dockerToHub.yml b/.github/workflows/dockerToHub.yml index d15fd9c8f..9042e21eb 100644 --- a/.github/workflows/dockerToHub.yml +++ b/.github/workflows/dockerToHub.yml @@ -4,7 +4,6 @@ on: push: branches: - main - - dev jobs: @@ -15,39 +14,57 @@ jobs: steps: - name: Check out the repo uses: actions/checkout@v4 - #with: - # clean: false - - name: Set up SSH key - uses: webfactory/ssh-agent@v0.9.0 - with: - ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} - - name: Sync repository to nm + - name: Get author info + id: author_info run: | - echo "${{ secrets.DOCKER_ENV }}" > .env - ssh -o StrictHostKeyChecking=no -p${{ secrets.SSH_PORT }} root@${{ secrets.CHENGDU_SSH_IP }} 'mkdir -p /data/ChatGPT-Next-Web' - rsync -az -e 'ssh -o StrictHostKeyChecking=no -p${{ secrets.SSH_PORT }}' --delete $GITHUB_WORKSPACE/ root@${{ secrets.CHENGDU_SSH_IP }}:/data/ChatGPT-Next-Web/ -# - name: build and deploy to Docker Hub -# run: | -# echo ${{ secrets.DOCKER_PASSWORD }} | docker login registry.si.icu -u ${{ secrets.DOCKER_USERNAME }} --password-stdin - - name: build-by-chengdu - uses: appleboy/ssh-action@master + AUTHOR_NAME=$(git log -1 --pretty=format:'%an') + AUTHOR_EMAIL=$(git log -1 --pretty=format:'%ae') + echo "AUTHOR_NAME=$AUTHOR_NAME" >> $GITHUB_ENV + echo "AUTHOR_EMAIL=$AUTHOR_EMAIL" >> $GITHUB_ENV + - name: Set up Git configuration + run: | + git config --global user.name "${{ env.AUTHOR_NAME }}" + git config --global user.email "${{ env.AUTHOR_EMAIL }}" + - name: Add GitLab remote and push changes env: - SERVER_WORKDIR: ${{ secrets.SERVER_WORKDIR }} #传递工作目录变量 - with: - host: ${{ secrets.CHENGDU_SSH_IP }} #服务器地址 - username: root #用户名 - port: ${{ secrets.SSH_PORT }} - key: ${{ secrets.SSH_PRIVATE_KEY }} #私钥 安全问题一定都以变量的方式传递!!! - envs: SERVER_WORKDIR #使用工作目录变量 - script: | - cd $SERVER_WORKDIR #进入到工作目录 - IMAGE_NAME="registry.si.icu/sijinhui/chatgpt-next-web" - DATE_TAG=$(date +'%Y%m%d') - # 构建 Docker 镜像并推送到注册表 - docker build --no-cache -t ${IMAGE_NAME}:latest . - docker tag ${IMAGE_NAME}:latest ${IMAGE_NAME}:${DATE_TAG} - docker push ${IMAGE_NAME}:latest - docker push ${IMAGE_NAME}:${DATE_TAG} + GITLAB_USERNAME: ${{ secrets.GITLAB_USERNAME }} + GITLAB_PASSWORD: ${{ secrets.GITLAB_PASSWORD }} + run: | + git remote add gitlab https://${GITLAB_USERNAME}:${GITLAB_PASSWORD}@gitlab.si.icu/${GITHUB_REPOSITORY}.git + git push gitlab main --force # 强制推送以覆盖目标分支内容,可根据需要调整 + +# - name: Set up SSH key +# uses: webfactory/ssh-agent@v0.9.0 +# with: +# ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} +# +# - name: Sync repository to chengdu +# run: | +# echo "${{ secrets.DOCKER_ENV }}" > .env +# ssh -o StrictHostKeyChecking=no -p${{ secrets.SSH_PORT }} root@${{ secrets.CHENGDU_SSH_IP }} 'mkdir -p /data/ChatGPT-Next-Web' +# rsync -az -e 'ssh -o StrictHostKeyChecking=no -p${{ secrets.SSH_PORT }}' --delete $GITHUB_WORKSPACE/ root@${{ secrets.CHENGDU_SSH_IP }}:/data/ChatGPT-Next-Web/ +## - name: build and deploy to Docker Hub +## run: | +## echo ${{ secrets.DOCKER_PASSWORD }} | docker login registry.si.icu -u ${{ secrets.DOCKER_USERNAME }} --password-stdin +# - name: build-by-chengdu +# uses: appleboy/ssh-action@master +# env: +# SERVER_WORKDIR: ${{ secrets.SERVER_WORKDIR }} #传递工作目录变量 +# with: +# host: ${{ secrets.CHENGDU_SSH_IP }} #服务器地址 +# username: root #用户名 +# port: ${{ secrets.SSH_PORT }} +# key: ${{ secrets.SSH_PRIVATE_KEY }} #私钥 安全问题一定都以变量的方式传递!!! +# envs: SERVER_WORKDIR #使用工作目录变量 +# script: | +# cd $SERVER_WORKDIR #进入到工作目录 +# IMAGE_NAME="registry.si.icu/sijinhui/chatgpt-next-web" +# DATE_TAG=$(date +'%Y%m%d') +# # 构建 Docker 镜像并推送到注册表 +# docker build --no-cache -t ${IMAGE_NAME}:latest . +# docker tag ${IMAGE_NAME}:latest ${IMAGE_NAME}:${DATE_TAG} +# docker push ${IMAGE_NAME}:latest +# docker push ${IMAGE_NAME}:${DATE_TAG} # - name: Get current date # run: echo "DATE_TAG=$(date +'%Y%m%d')" >> $GITHUB_ENV # - name: Build and push Docker image diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000..b0c73b8fd --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,17 @@ +stages: + - build + +variables: + IMAGE_NAME: $CI_REGISTRY_IMAGE + +before_script: + - echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER $CI_REGISTRY --password-stdin + +build: + stage: build + script: + - DATE_TAG=$(date +'%Y%m%d') + - docker build --no-cache -t ${IMAGE_NAME}:latest . + - docker tag ${IMAGE_NAME}:latest ${IMAGE_NAME}:${DATE_TAG} + - docker push ${IMAGE_NAME}:latest + - docker push ${IMAGE_NAME}:${DATE_TAG}