mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-11-04 07:24:13 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			168 lines
		
	
	
	
		
			5.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			168 lines
		
	
	
	
		
			5.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
version: 2.1
 | 
						|
 | 
						|
executors:
 | 
						|
  default:
 | 
						|
    working_directory: /tmp/workspace
 | 
						|
    docker:
 | 
						|
      - image: misskey/ci:latest
 | 
						|
      - image: circleci/mongo:latest
 | 
						|
      - image: circleci/redis:latest
 | 
						|
  docker:
 | 
						|
    working_directory: /tmp/workspace
 | 
						|
    docker:
 | 
						|
      - image: docker:latest
 | 
						|
  alpine:
 | 
						|
    working_directory: /tmp/workspace
 | 
						|
    docker:
 | 
						|
      - image: alpine:latest
 | 
						|
 | 
						|
jobs:
 | 
						|
  ok:
 | 
						|
    executor: alpine
 | 
						|
    steps:
 | 
						|
      - run:
 | 
						|
          name: OK
 | 
						|
          command: |
 | 
						|
            echo -e '\033[0;32mOK\033[0;39m'
 | 
						|
 | 
						|
  build:
 | 
						|
    executor: default
 | 
						|
    steps:
 | 
						|
      - checkout
 | 
						|
      - run:
 | 
						|
          name: Ensure package-lock.json
 | 
						|
          command: |
 | 
						|
            [ ! -e package-lock.json ] && echo '{}' > package-lock.json
 | 
						|
      - restore_cache:
 | 
						|
          name: Restore npm package caches
 | 
						|
          keys:
 | 
						|
            - npm-v1-arch-{{ arch }}-env-{{ .Environment.variableName }}-package-{{ checksum "package.json" }}-lock-{{ checksum "package-lock.json" }}-
 | 
						|
            - npm-v1-arch-{{ arch }}-env-{{ .Environment.variableName }}-package-{{ checksum "package.json" }}-
 | 
						|
            - npm-v1-arch-{{ arch }}-env-{{ .Environment.variableName }}-
 | 
						|
            - npm-v1-arch-{{ arch }}-
 | 
						|
            - npm-v1-
 | 
						|
      - run:
 | 
						|
          name: Install Dependencies
 | 
						|
          command: |
 | 
						|
            npm install
 | 
						|
            npm prune
 | 
						|
      - run:
 | 
						|
          name: Configure
 | 
						|
          command: |
 | 
						|
            cp .circleci/misskey/default.yml .config
 | 
						|
            cp .circleci/misskey/test.yml .config
 | 
						|
      - run:
 | 
						|
          name: Build
 | 
						|
          command: |
 | 
						|
            npm run build || (echo -e '\033[0;34mRebuild modules\033[0;39m' && ls -1A node_modules | grep '^[^@]' | xargs npm rebuild && ls -1A node_modules | grep '^@' | xargs -I%1 sh -c 'ls -1A node_modules/'%1' | xargs -P0 -I%2 npm rebuild node_modules/'%1'/%2' && npm run build)
 | 
						|
            ls -1ARl node_modules > ls
 | 
						|
      - save_cache:
 | 
						|
          name: Cache npm packages
 | 
						|
          key: npm-v1-arch-{{ arch }}-env-{{ .Environment.variableName }}-package-{{ checksum "package.json" }}-lock-{{ checksum "package-lock.json" }}-ls-{{ checksum "ls" }}
 | 
						|
          paths:
 | 
						|
            - node_modules
 | 
						|
#      - store_artifacts:
 | 
						|
#          path: built
 | 
						|
      - persist_to_workspace:
 | 
						|
          root: .
 | 
						|
          paths:
 | 
						|
            - .
 | 
						|
  test:
 | 
						|
    parameters:
 | 
						|
      without_redis:
 | 
						|
        type: string
 | 
						|
        default: ""
 | 
						|
    executor: default
 | 
						|
    steps:
 | 
						|
      - attach_workspace:
 | 
						|
          at: /tmp/workspace
 | 
						|
      - when:
 | 
						|
          condition: <<parameters.without_redis>>
 | 
						|
          steps:
 | 
						|
            - run:
 | 
						|
                name: Configure
 | 
						|
                command: |
 | 
						|
                  mv .config/test.yml .config/test_redis.yml
 | 
						|
                  touch .config/test.yml
 | 
						|
                  cat .config/test_redis.yml | while IFS= read line; do if [[ "$line" = '# __REDIS__' ]]; then break; else echo "$line" >> .config/test.yml; fi; done
 | 
						|
      - run:
 | 
						|
          name: Test
 | 
						|
          command: |
 | 
						|
            npm run test || (npm rebuild && npm run test) || ((node-gyp configure && node-gyp build && npm run build || (echo -e '\033[0;34mRebuild modules\033[0;39m' && ls -1A node_modules | grep '^[^@]' | xargs npm rebuild && ls -1A node_modules | grep '^@' | xargs -I%1 sh -c 'ls -1A node_modules/'%1' | xargs -P0 -I%2 npm rebuild node_modules/'%1'/%2' && npm run build)) && npm run test)
 | 
						|
            ls -1ARl node_modules > ls
 | 
						|
      - save_cache:
 | 
						|
          name: Cache npm packages
 | 
						|
          key: npm-v1-arch-{{ arch }}-env-{{ .Environment.variableName }}-package-{{ checksum "package.json" }}-lock-{{ checksum "package-lock.json" }}-ls-{{ checksum "ls" }}
 | 
						|
          paths:
 | 
						|
            - node_modules
 | 
						|
 | 
						|
  docker:
 | 
						|
    parameters:
 | 
						|
      with_deploy:
 | 
						|
        type: string
 | 
						|
        default: ""
 | 
						|
    executor: docker
 | 
						|
    steps:
 | 
						|
      - checkout
 | 
						|
      - setup_remote_docker
 | 
						|
      - run:
 | 
						|
          name: Build
 | 
						|
          command: |
 | 
						|
            docker build -t misskey/misskey .
 | 
						|
      - when:
 | 
						|
          condition: <<parameters.with_deploy>>
 | 
						|
          steps:
 | 
						|
            - run:
 | 
						|
                name: Deploy
 | 
						|
                command: |
 | 
						|
                  if [ "$DOCKERHUB_USERNAME$DOCKERHUB_PASSWORD" ]
 | 
						|
                   then
 | 
						|
                    apk update && apk add jq
 | 
						|
                    docker tag misskey/misskey misskey/misskey:$(cat package.json | jq -r .version)
 | 
						|
                    docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD
 | 
						|
                    docker push misskey/misskey
 | 
						|
                   else
 | 
						|
                    echo -e '\033[0;33mAborted deploying to Docker Hub\033[0;39m'
 | 
						|
                  fi
 | 
						|
 | 
						|
workflows:
 | 
						|
  version: 2
 | 
						|
  build-and-test:
 | 
						|
    jobs:
 | 
						|
      - ok:
 | 
						|
          filters:
 | 
						|
            branches:
 | 
						|
              only:
 | 
						|
                - l10n_develop
 | 
						|
                - imgbot
 | 
						|
      - build:
 | 
						|
          filters:
 | 
						|
            branches:
 | 
						|
              ignore:
 | 
						|
                - l10n_develop
 | 
						|
                - imgbot
 | 
						|
      - test:
 | 
						|
          requires:
 | 
						|
            - build
 | 
						|
          filters:
 | 
						|
            branches:
 | 
						|
              ignore:
 | 
						|
#                - master
 | 
						|
                - l10n_develop
 | 
						|
                - imgbot
 | 
						|
      - test:
 | 
						|
          without_redis: "true"
 | 
						|
          requires:
 | 
						|
            - build
 | 
						|
          filters:
 | 
						|
            branches:
 | 
						|
              only: master
 | 
						|
#      - docker:
 | 
						|
#          filters:
 | 
						|
#            branches:
 | 
						|
#              ignore: master
 | 
						|
      - docker:
 | 
						|
          with_deploy: "true"
 | 
						|
          filters:
 | 
						|
            branches:
 | 
						|
              only: master
 |