ci: use sccache for cargo & fix ci
This commit is contained in:
		
							parent
							
								
									ec365709b4
								
							
						
					
					
						commit
						e0991498fd
					
				
					 3 changed files with 24 additions and 16 deletions
				
			
		| 
						 | 
					@ -1,7 +1,6 @@
 | 
				
			||||||
when:
 | 
					when:
 | 
				
			||||||
  - event: tag
 | 
					  - event: tag
 | 
				
			||||||
    branch: main
 | 
					    branch: main
 | 
				
			||||||
    path: "agent/src/*"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
matrix:
 | 
					matrix:
 | 
				
			||||||
  BUILD_TARGET:
 | 
					  BUILD_TARGET:
 | 
				
			||||||
| 
						 | 
					@ -11,13 +10,19 @@ matrix:
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
  build:
 | 
					  build:
 | 
				
			||||||
    image: git.nikos.gg/prymn/rust/aarch64:latest
 | 
					    image: git.nikos.gg/prymn/rust/aarch64:latest
 | 
				
			||||||
 | 
					    environment:
 | 
				
			||||||
 | 
					      - RUSTC_WRAPPER=/usr/local/bin/sccache
 | 
				
			||||||
 | 
					      - SCCACHE_BUCKET=prymn-cargo-cache
 | 
				
			||||||
 | 
					      - SCCACHE_ENDPOINT=https://75178f9eca227dea51b3db4db2c15a5a.r2.cloudflarestorage.com
 | 
				
			||||||
 | 
					      - SCCACHE_REGION=auto
 | 
				
			||||||
 | 
					    secrets: [ aws_access_key_id, aws_secret_access_key ]
 | 
				
			||||||
    commands:
 | 
					    commands:
 | 
				
			||||||
      - protoc --version
 | 
					      - protoc --version
 | 
				
			||||||
      - cargo build --bin prymn_agent --release --target "${BUILD_TARGET}"
 | 
					      - cargo build --bin prymn_agent --release --target "${BUILD_TARGET}"
 | 
				
			||||||
      - mkdir -p "dist/${BUILD_TARGET}"
 | 
					      - mkdir -p "dist/${BUILD_TARGET}"
 | 
				
			||||||
      - cp "target/${BUILD_TARGET}/release/prymn_agent" "dist/${BUILD_TARGET}"
 | 
					      - cp "target/${BUILD_TARGET}/release/prymn_agent" "dist/${BUILD_TARGET}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  release-binaries:
 | 
					  upload:
 | 
				
			||||||
    image: woodpeckerci/plugin-s3
 | 
					    image: woodpeckerci/plugin-s3
 | 
				
			||||||
    settings:
 | 
					    settings:
 | 
				
			||||||
      bucket: prymn-static
 | 
					      bucket: prymn-static
 | 
				
			||||||
| 
						 | 
					@ -27,4 +32,4 @@ steps:
 | 
				
			||||||
      secret_key:
 | 
					      secret_key:
 | 
				
			||||||
        from_secret: r2_secret_key
 | 
					        from_secret: r2_secret_key
 | 
				
			||||||
      source: dist/**/*
 | 
					      source: dist/**/*
 | 
				
			||||||
      target: /
 | 
					      target: /agent
 | 
				
			||||||
| 
						 | 
					@ -2,18 +2,24 @@ labels:
 | 
				
			||||||
  platform: linux/arm64
 | 
					  platform: linux/arm64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
when:
 | 
					when:
 | 
				
			||||||
  - event: tag
 | 
					  - event: push
 | 
				
			||||||
    branch: main
 | 
					    branch: main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
  make-release:
 | 
					  make-release:
 | 
				
			||||||
    image: docker.io/hexpm/elixir:1.15.5-erlang-26.0.2-debian-bookworm-20230612
 | 
					    image: git.nikos.gg/prymn/images/elixir:61de1c5f
 | 
				
			||||||
    environment:
 | 
					    environment:
 | 
				
			||||||
      - MIX_ENV=prod
 | 
					      - MIX_ENV=prod
 | 
				
			||||||
    commands:
 | 
					    commands:
 | 
				
			||||||
      - apt-get update -y && apt-get install -y build-essential
 | 
					      - cd app && mkdir -p _build
 | 
				
			||||||
      - cd app
 | 
					      ###  TODO: REMOVE WHEN TAILWIND FROM PHOENIX IS FIXED
 | 
				
			||||||
      - mix local.hex --force && mix local.rebar --force
 | 
					      - curl -sfL https://github.com/tailwindlabs/tailwindcss/releases/download/v3.3.3/tailwindcss-linux-arm64 -o _build/tailwind-linux-arm64
 | 
				
			||||||
 | 
					      - curl -sfL https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.11.tgz -o /tmp/esbuild.tgz
 | 
				
			||||||
 | 
					      - tar zxf /tmp/esbuild.tgz -C /tmp
 | 
				
			||||||
 | 
					      - cp /tmp/package/bin/esbuild _build/esbuild-linux-arm64
 | 
				
			||||||
 | 
					      - chmod +x _build/esbuild-linux-arm64
 | 
				
			||||||
 | 
					      - chmod +x _build/tailwind-linux-arm64
 | 
				
			||||||
 | 
					      ###
 | 
				
			||||||
      - mix deps.get --only prod
 | 
					      - mix deps.get --only prod
 | 
				
			||||||
      - mix compile
 | 
					      - mix compile
 | 
				
			||||||
      - mix assets.deploy
 | 
					      - mix assets.deploy
 | 
				
			||||||
| 
						 | 
					@ -22,14 +28,11 @@ steps:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  deploy:
 | 
					  deploy:
 | 
				
			||||||
    image: alpine:latest
 | 
					    image: alpine:latest
 | 
				
			||||||
    environment:
 | 
					    secrets: [ DEPLOY_KEY, APP_SERVER_ADDRESS ]
 | 
				
			||||||
      - REMOTE_SERVER="prymnci@${APP_SERVER_ADDRESS}"
 | 
					 | 
				
			||||||
      - DEPLOY_PATH="/srv/app"
 | 
					 | 
				
			||||||
    commands:
 | 
					    commands:
 | 
				
			||||||
      - apk add --no-cache openssh-client rsync
 | 
					      - apk add --no-cache openssh-client rsync
 | 
				
			||||||
      - eval $(ssh-agent -s)
 | 
					      - eval $(ssh-agent -s)
 | 
				
			||||||
      - echo "${DEPLOY_KEY}" | ssh-add -
 | 
					      - echo "$${DEPLOY_KEY}" | ssh-add -
 | 
				
			||||||
      - mkdir -p ~/.ssh && chmod 700 ~/.ssh
 | 
					      - mkdir -p ~/.ssh && chmod 700 /root/.ssh
 | 
				
			||||||
      - echo "${DEPLOY_KEY}" > ~/.ssh/known_hosts
 | 
					      - ssh-keyscan -t rsa "$${APP_SERVER_ADDRESS}" > /root/.ssh/known_hosts
 | 
				
			||||||
      - cd app && rsync -avz --delete _build/prod/rel/prymn/ "${REMOTE_SERVER}:${DEPLOY_PATH}"
 | 
					      - cd app && rsync -avz --delete _build/prod/rel/prymn/ "prymnci@$${APP_SERVER_ADDRESS}:/srv/app"
 | 
				
			||||||
    secrets: [ DEPLOY_KEY ]
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue