mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-11-04 07:24:13 +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
 |