Optimize CI [skip ci]

This commit is contained in:
video-prize-ranch
2022-05-06 21:05:15 -04:00
parent 67506d5447
commit 4143d2156f
3 changed files with 32 additions and 34 deletions
+20 -21
View File
@@ -1,28 +1,10 @@
variables:
DOCKER_HOST: tcp://docker:2375
bin:
docker:
image: docker:20
stage: build
needs: []
image: rust:alpine
cache:
- key:
files:
- Cargo.toml
- Cargo.lock
paths:
- vendor/
script:
- mkdir ~/.cargo && mv config/cargo.toml ~/.cargo/config.toml
- cargo vendor
- cargo build --release
artifacts:
paths:
- target/release/stream-proxy
build:
image: docker:20
stage: deploy
services:
- name: docker:20-dind
command: ["--experimental"]
@@ -36,4 +18,21 @@ build:
- docker context create mybuilder
- docker buildx create --use --name mybuilder mybuilder
- docker pull $CI_REGISTRY_IMAGE:latest || true
- docker buildx build --cache-from $CI_REGISTRY_IMAGE:latest --platform linux/amd64 --push -t $CI_REGISTRY_IMAGE:latest .
- docker buildx build --cache-from $CI_REGISTRY_IMAGE:latest --platform linux/amd64 --push -t $CI_REGISTRY_IMAGE:latest .
- docker run --rm $CI_REGISTRY_IMAGE:latest cat /app/stream-proxy > stream-proxy
artifacts:
paths:
- stream-proxy
deploy:
image: alpine:latest
stage: deploy
needs:
- docker
before_script:
- apk update && apk --no-cache add curl git
- wget -O - https://fly.io/install.sh | sh
- git clone https://codeberg.org/video-prize-ranch/fly-cfg
- cd fly-cfg/librarian
script:
- /root/.fly/bin/flyctl deploy --no-cache --detach
+12 -8
View File
@@ -1,17 +1,21 @@
FROM rust:alpine AS build
FROM lukemathwalker/cargo-chef:latest-rust-alpine AS chef
WORKDIR /src
RUN apk --no-cache add musl-dev git ca-certificates
RUN git clone https://codeberg.org/librarian/stream-proxy .
RUN mkdir ~/.cargo && mv config/cargo.toml ~/.cargo/config.toml
RUN cargo vendor
RUN cargo build --release
FROM chef AS planner
COPY . .
RUN cargo chef prepare --recipe-path recipe.json
FROM chef AS builder
COPY --from=planner /src/recipe.json recipe.json
RUN cargo chef cook --release --recipe-path recipe.json
COPY . .
ENV CARGO_INCREMENTAL=0
RUN cargo build --release --bin stream-proxy
FROM alpine:latest as bin
WORKDIR /app
COPY --from=build /src/target/release/stream-proxy .
COPY --from=builder /src/target/release/stream-proxy .
EXPOSE 3001
-5
View File
@@ -1,5 +0,0 @@
[source.crates-io]
replace-with = "vendored-sources"
[source.vendored-sources]
directory = "vendor"