| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- # https://docs.gitlab.com/ee/ci/yaml/
- # https://docs.gitlab.com/ee/ci/variables/predefined_variables.html
- # https://docs.gitlab.com/ee/ci/migration/github_actions.html
- # https://gitlab.com/gitlab-org/gitlab/-/tree/master/lib/gitlab/ci/templates/Jobs
- stages:
- - github-sync
- - gitlab-build
- - gitlab-deploy
- services:
- - name: docker:dind
- #command: ["--registry-mirror=https://dhcr-cf.oni.li"]
- variables:
- DOCKER_IMAGE_NAME: $DOCKER_USER/$CI_PROJECT_NAME
- PUB_DOCKER_IMAGE_NAME: $PUB_DOCKER_URL/$CI_PROJECT_NAME
- PRI_DOCKER_USER: "nili"
- PRI_DOCKER_IMAGE_NAME: $PRI_DOCKER_URL/$CI_PROJECT_NAME
- 同步至 GitHub:
- stage: github-sync
- tags:
- - oracle
- image: alpine
- before_script:
- #- sed -i 's#https\?://dl-cdn.alpinelinux.org/alpine#https://mirrors.tuna.tsinghua.edu.cn/alpine#g' /etc/apk/repositories
- - TIME=$(TZ='UTC-8' date +'%Y%m%d-%H-%M-%S')
- - apk add git rsync
- - git config --global user.email $GIT_USER_EMAIL
- - git config --global user.name $GIT_USER_NAME
- - git clone https://$GIT_USER_NAME:$GITHUB_ACCESS_TOKEN@github.com/$GIT_USER_NAME/$CI_PROJECT_NAME.git ../tmp
- script:
- #- rm -rf .git
- - cd ../tmp
- - find . -mindepth 1 -path './.git' -prune -o -exec rm -rf {} +
- - cd ../$CI_PROJECT_NAME
- - rsync -av --include='.*' --exclude='.git/*' --exclude='.gitlab-ci.yml' . ../tmp
- - cd ../tmp
- - git add -A
- - git commit -sm "Gitlab CI Auto Update $TIME"
- - git push
- rules:
- - if: $CI_COMMIT_BRANCH
- exists:
- - .gitignore
- Gitlab Runner 构建 Docker 镜像:
- stage: gitlab-build
- tags:
- - oracle
- #image: docker:dind
- before_script:
- - docker run --privileged --rm tonistiigi/binfmt --install all
- - docker buildx create --use --name mybuilder
- #- docker login -u "$PRI_DOCKER_USER" -p "$DOCKER_PASSWORD" $PRI_DOCKER_URL
- #- TIME=$(TZ='UTC-8' date +'%Y%m%d-%H-%M-%S')
- script:
- - docker buildx build --file Dockerfile --progress=plain --tag "$PUB_DOCKER_IMAGE_NAME:latest" --platform linux/amd64,linux/arm64 --push .
- #- docker buildx build --file Dockerfile --progress=plain --tag "$PUB_DOCKER_IMAGE_NAME:latest" --tag "$PRI_DOCKER_IMAGE_NAME:$TIME" --platform linux/amd64,linux/arm64 --push .
- #linux/amd64,linux/arm64,linux/386,linux/arm/v7
- rules:
- - if: $CI_COMMIT_BRANCH
- exists:
- - .dockerignore
- Gitlab Runner 部署 Docker 镜像:
- stage: gitlab-deploy
- tags:
- - oracle
- #image: docker:dind
- #before_script:
- # - sleep 60
- script:
- - echo "$SSH_KEY" > key
- - chmod 600 key
- - ssh-keygen -p -f key -N '' -P "$SSH_KEY_PASSWD"
- - rm key
- rules:
- - if: $CI_PIPELINE_SOURCE == "push"
- exists:
- - .dockerignore
|