mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-10-31 05:24:13 +00:00 
			
		
		
		
	Gitlab CI
This commit is contained in:
		
							parent
							
								
									5ea0ef8587
								
							
						
					
					
						commit
						c203ef7a44
					
				
					 2 changed files with 320 additions and 0 deletions
				
			
		
							
								
								
									
										216
									
								
								.config/ci.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										216
									
								
								.config/ci.yml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,216 @@ | |||
| #━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ | ||||
| # Misskey configuration | ||||
| #━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ | ||||
| 
 | ||||
| #   ┌─────┐ | ||||
| #───┘ URL └───────────────────────────────────────────────────── | ||||
| 
 | ||||
| # Final accessible URL seen by a user. | ||||
| url: https://example.tld/ | ||||
| 
 | ||||
| # ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE | ||||
| # URL SETTINGS AFTER THAT! | ||||
| 
 | ||||
| #   ┌───────────────────────┐ | ||||
| #───┘ Port and TLS settings └─────────────────────────────────── | ||||
| 
 | ||||
| # | ||||
| # Misskey requires a reverse proxy to support HTTPS connections. | ||||
| # | ||||
| #                 +----- https://example.tld/ ------------+ | ||||
| #   +------+      |+-------------+      +----------------+| | ||||
| #   | User | ---> || Proxy (443) | ---> | Misskey (3000) || | ||||
| #   +------+      |+-------------+      +----------------+| | ||||
| #                 +---------------------------------------+ | ||||
| # | ||||
| #   You need to set up a reverse proxy. (e.g. nginx) | ||||
| #   An encrypted connection with HTTPS is highly recommended | ||||
| #   because tokens may be transferred in GET requests. | ||||
| 
 | ||||
| # The port that your Misskey server should listen on. | ||||
| port: 3000 | ||||
| 
 | ||||
| #   ┌──────────────────────────┐ | ||||
| #───┘ PostgreSQL configuration └──────────────────────────────── | ||||
| 
 | ||||
| db: | ||||
|   host: postgres | ||||
|   port: 5432 | ||||
| 
 | ||||
|   # Database name | ||||
|   db: postgres | ||||
| 
 | ||||
|   # Auth | ||||
|   user: postgres | ||||
|   pass: ci | ||||
| 
 | ||||
|   # Whether disable Caching queries | ||||
|   #disableCache: true | ||||
| 
 | ||||
|   # Extra Connection options | ||||
|   #extra: | ||||
|   #  ssl: true | ||||
| 
 | ||||
| dbReplications: false | ||||
| 
 | ||||
| # You can configure any number of replicas here | ||||
| #dbSlaves: | ||||
| #  - | ||||
| #    host: | ||||
| #    port: | ||||
| #    db: | ||||
| #    user: | ||||
| #    pass: | ||||
| #  - | ||||
| #    host: | ||||
| #    port: | ||||
| #    db: | ||||
| #    user: | ||||
| #    pass: | ||||
| 
 | ||||
| #   ┌─────────────────────┐ | ||||
| #───┘ Redis configuration └───────────────────────────────────── | ||||
| 
 | ||||
| redis: | ||||
|   host: redis | ||||
|   port: 6379 | ||||
|   #family: 0  # 0=Both, 4=IPv4, 6=IPv6 | ||||
|   #pass: example-pass | ||||
|   #prefix: example-prefix | ||||
|   #db: 1 | ||||
| 
 | ||||
| #redisForPubsub: | ||||
| #  host: redis | ||||
| #  port: 6379 | ||||
| #  #family: 0  # 0=Both, 4=IPv4, 6=IPv6 | ||||
| #  #pass: example-pass | ||||
| #  #prefix: example-prefix | ||||
| #  #db: 1 | ||||
| 
 | ||||
| #redisForJobQueue: | ||||
| #  host: redis | ||||
| #  port: 6379 | ||||
| #  #family: 0  # 0=Both, 4=IPv4, 6=IPv6 | ||||
| #  #pass: example-pass | ||||
| #  #prefix: example-prefix | ||||
| #  #db: 1 | ||||
| 
 | ||||
| #redisForTimelines: | ||||
| #  host: redis | ||||
| #  port: 6379 | ||||
| #  #family: 0  # 0=Both, 4=IPv4, 6=IPv6 | ||||
| #  #pass: example-pass | ||||
| #  #prefix: example-prefix | ||||
| #  #db: 1 | ||||
| 
 | ||||
| #   ┌───────────────────────────┐ | ||||
| #───┘ MeiliSearch configuration └───────────────────────────── | ||||
| 
 | ||||
| # You can set scope to local (default value) or global  | ||||
| # (include notes from remote). | ||||
| 
 | ||||
| #meilisearch: | ||||
| #  host: meilisearch | ||||
| #  port: 7700 | ||||
| #  apiKey: '' | ||||
| #  ssl: true | ||||
| #  index: '' | ||||
| #  scope: global | ||||
| 
 | ||||
| #   ┌───────────────┐ | ||||
| #───┘ ID generation └─────────────────────────────────────────── | ||||
| 
 | ||||
| # You can select the ID generation method. | ||||
| # You don't usually need to change this setting, but you can | ||||
| # change it according to your preferences. | ||||
| 
 | ||||
| # Available methods: | ||||
| # aid ... Short, Millisecond accuracy | ||||
| # aidx ... Millisecond accuracy | ||||
| # meid ... Similar to ObjectID, Millisecond accuracy | ||||
| # ulid ... Millisecond accuracy | ||||
| # objectid ... This is left for backward compatibility | ||||
| 
 | ||||
| # ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE | ||||
| # ID SETTINGS AFTER THAT! | ||||
| 
 | ||||
| id: 'aidx' | ||||
| 
 | ||||
| #   ┌─────────────────────┐ | ||||
| #───┘ Other configuration └───────────────────────────────────── | ||||
| 
 | ||||
| # Whether disable HSTS | ||||
| #disableHsts: true | ||||
| 
 | ||||
| # Number of worker processes | ||||
| #clusterLimit: 1 | ||||
| 
 | ||||
| # Job concurrency per worker | ||||
| # deliverJobConcurrency: 128 | ||||
| # inboxJobConcurrency: 16 | ||||
| # relashionshipJobConcurrency: 16 | ||||
| #  What's relashionshipJob?: | ||||
| #   Follow, unfollow, block and unblock(ings) while following-imports, etc. or account migrations. | ||||
| 
 | ||||
| # Job rate limiter | ||||
| # deliverJobPerSec: 128 | ||||
| # inboxJobPerSec: 32 | ||||
| # relashionshipJobPerSec: 64 | ||||
| 
 | ||||
| # Job attempts | ||||
| # deliverJobMaxAttempts: 12 | ||||
| # inboxJobMaxAttempts: 8 | ||||
| 
 | ||||
| # Local address used for outgoing requests | ||||
| #outgoingAddress: 127.0.0.1 | ||||
| 
 | ||||
| # IP address family used for outgoing request (ipv4, ipv6 or dual) | ||||
| #outgoingAddressFamily: ipv4 | ||||
| 
 | ||||
| # Amount of characters that can be used when writing notes (maximum: 8192, minimum: 1) | ||||
| maxNoteLength: 3000 | ||||
| 
 | ||||
| # Proxy for HTTP/HTTPS | ||||
| #proxy: http://127.0.0.1:3128 | ||||
| 
 | ||||
| proxyBypassHosts: | ||||
|   - api.deepl.com | ||||
|   - api-free.deepl.com | ||||
|   - www.recaptcha.net | ||||
|   - hcaptcha.com | ||||
|   - challenges.cloudflare.com | ||||
| 
 | ||||
| # Proxy for SMTP/SMTPS | ||||
| #proxySmtp: http://127.0.0.1:3128   # use HTTP/1.1 CONNECT | ||||
| #proxySmtp: socks4://127.0.0.1:1080 # use SOCKS4 | ||||
| #proxySmtp: socks5://127.0.0.1:1080 # use SOCKS5 | ||||
| 
 | ||||
| # Media Proxy | ||||
| #mediaProxy: https://example.com/proxy | ||||
| 
 | ||||
| # Proxy remote files (default: true) | ||||
| # Proxy remote files by this instance or mediaProxy to prevent remote files from running in remote domains. | ||||
| proxyRemoteFiles: true | ||||
| 
 | ||||
| # Movie Thumbnail Generation URL | ||||
| # There is no reference implementation. | ||||
| # For example, Misskey will point to the following URL: | ||||
| #   https://example.com/thumbnail.webp?thumbnail=1&url=https%3A%2F%2Fstorage.example.com%2Fpath%2Fto%2Fvideo.mp4 | ||||
| #videoThumbnailGenerator: https://example.com | ||||
| 
 | ||||
| # Sign to ActivityPub GET request (default: true) | ||||
| signToActivityPubGet: true | ||||
| # check that inbound ActivityPub GET requests are signed ("authorized fetch") | ||||
| checkActivityPubGetSignature: false | ||||
| 
 | ||||
| # For security reasons, uploading attachments from the intranet is prohibited, | ||||
| # but exceptions can be made from the following settings. Default value is "undefined".  | ||||
| # Read changelog to learn more (Improvements of 12.90.0 (2021/09/04)). | ||||
| #allowedPrivateNetworks: [ | ||||
| #  '127.0.0.1/32' | ||||
| #] | ||||
| 
 | ||||
| #customMOTD: ['Hello World', 'The sharks rule all', 'Shonks'] | ||||
| 
 | ||||
| # Upload or download file size limits (bytes) | ||||
| #maxFileSize: 262144000 | ||||
							
								
								
									
										104
									
								
								.gitlab-ci.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										104
									
								
								.gitlab-ci.yml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,104 @@ | |||
| stages: | ||||
|   - test | ||||
|   - deploy | ||||
| 
 | ||||
| testCommit: | ||||
|   stage: test | ||||
|   image: node:latest | ||||
|   services: | ||||
|     - postgres:15 | ||||
|     - redis | ||||
|   variables: | ||||
|     POSTGRES_PASSWORD: ci | ||||
|   script: | ||||
|     - apt-get update && apt-get install -y git wget curl build-essential python3  | ||||
|     - cp .config/ci.yml .config/default.yml | ||||
|     - corepack enable | ||||
|     - corepack prepare pnpm@latest --activate | ||||
|     - git submodule update --init | ||||
|     - pnpm install --frozen-lockfile | ||||
|     - pnpm run build | ||||
|     - pnpm run migrate | ||||
|   cache: | ||||
|     key: test | ||||
|     policy: pull-push | ||||
|     when: on_success | ||||
|     paths: | ||||
|      - node_modules/ | ||||
|      - packages/*/node_modules/ | ||||
|   only: | ||||
|     - develop | ||||
|     - 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 | ||||
|   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}:${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}:ARCH | ||||
|       --target ${CI_REGISTRY_IMAGE}:${REGISTRY_PUSH_TAG} | ||||
|   only: | ||||
|     - stable | ||||
|     - develop | ||||
|     - tags | ||||
		Loading…
	
	Add table
		
		Reference in a new issue