ci: use sccache for cargo & fix ci

This commit is contained in:
Nikos Papadakis 2023-09-03 17:37:03 +03:00
parent ec365709b4
commit e0991498fd
Signed by untrusted user who does not match committer: nikos
GPG key ID: 78871F9905ADFF02
3 changed files with 24 additions and 16 deletions

View file

@ -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

View file

@ -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 ]