mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-10-23 09:44:51 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			115 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| stages:
 | |
|   - test
 | |
|   - deploy
 | |
| 
 | |
| testCommit:
 | |
|   stage: test
 | |
|   image: node:jod
 | |
|   services:
 | |
|     - postgres:15
 | |
|     - redis
 | |
|   variables:
 | |
|     POSTGRES_PASSWORD: ci
 | |
|     COREPACK_DEFAULT_TO_LATEST: 0
 | |
|   script:
 | |
|     - apt-get update && apt-get install -y git wget curl build-essential python3 ffmpeg
 | |
|     - cp .config/ci.yml .config/default.yml
 | |
|     - cp .config/ci.yml .config/test.yml
 | |
|     - corepack enable
 | |
|     - corepack install
 | |
|     - git submodule update --init
 | |
|     - pnpm install --frozen-lockfile
 | |
|     - pnpm run build
 | |
|     - pnpm run migrate
 | |
|     - pnpm run test
 | |
|     - pnpm run --filter=backend --filter=misskey-js --filter=frontend-shared lint
 | |
|     - pnpm run --filter=frontend --filter=frontend-embed eslint
 | |
|   cache:
 | |
|     key: test
 | |
|     policy: pull-push
 | |
|     when: on_success
 | |
|     paths:
 | |
|      - node_modules/
 | |
|      - packages/*/node_modules/
 | |
|   only:
 | |
|     - develop
 | |
|     - merge_requests
 | |
|     - stable
 | |
| 
 | |
| getImageTag:
 | |
|   stage: deploy
 | |
|   image: ubuntu:latest
 | |
|   script:
 | |
|     - apt-get update && apt-get install -y jq
 | |
|     - |
 | |
|       if test -n "$CI_COMMIT_TAG"; then
 | |
|         tag="$CI_COMMIT_TAG"
 | |
|       elif test "$CI_COMMIT_BRANCH" == "stable"; then
 | |
|         tag="latest"
 | |
|       elif test "$CI_COMMIT_BRANCH" == "develop"; then
 | |
|         tag="develop"
 | |
|       else
 | |
|         tag="$CI_COMMIT_BRANCH"
 | |
|       fi
 | |
|       version=$(cat package.json | jq -r '.version')
 | |
|     - echo "REGISTRY_PUSH_TAG=$tag" >> build.env
 | |
|     - echo "REGISTRY_PUSH_VERSION=$version" >> build.env
 | |
|   artifacts:
 | |
|     reports:
 | |
|       dotenv: build.env
 | |
|   only:
 | |
|     - stable
 | |
|     - develop
 | |
|     - tags
 | |
| 
 | |
| buildDocker:
 | |
|   stage: deploy
 | |
|   needs:
 | |
|     - job: getImageTag
 | |
|       artifacts: true
 | |
|   parallel:
 | |
|     matrix:
 | |
|       - ARCH: amd64
 | |
|       - ARCH: arm64
 | |
|   tags:
 | |
|     - ${ARCH}
 | |
|   image:
 | |
|     name: gcr.io/kaniko-project/executor:debug
 | |
|     entrypoint: [""]
 | |
|   script:
 | |
|     - >-
 | |
|       /kaniko/executor
 | |
|       --context "${CI_PROJECT_DIR}"
 | |
|       --dockerfile "${CI_PROJECT_DIR}/Dockerfile"
 | |
|       --destination "${CI_REGISTRY_IMAGE}:${REGISTRY_PUSH_VERSION}-${ARCH}"
 | |
|   only:
 | |
|     - stable
 | |
|     - develop
 | |
|     - tags
 | |
| 
 | |
| mergeManifests:
 | |
|   stage: deploy
 | |
|   needs:
 | |
|     - job: buildDocker
 | |
|       artifacts: false
 | |
|     - job: getImageTag
 | |
|       artifacts: true
 | |
|   tags:
 | |
|     - docker
 | |
|   image:
 | |
|       name: mplatform/manifest-tool:alpine
 | |
|       entrypoint: [""]
 | |
|   script:
 | |
|     - >-
 | |
|       manifest-tool
 | |
|       --username=${CI_REGISTRY_USER}
 | |
|       --password=${CI_REGISTRY_PASSWORD}
 | |
|       push from-args
 | |
|       --platforms linux/amd64,linux/arm64
 | |
|       --tags ${REGISTRY_PUSH_VERSION}
 | |
|       --template ${CI_REGISTRY_IMAGE}:${REGISTRY_PUSH_VERSION}-ARCH
 | |
|       --target ${CI_REGISTRY_IMAGE}:${REGISTRY_PUSH_TAG}
 | |
|   only:
 | |
|     - stable
 | |
|     - develop
 | |
|     - tags
 |