try speeding up build process
Rust / Run tests (push) Successful in 1m34s Details

This commit is contained in:
DataHearth 2023-08-14 11:24:17 +02:00
parent 368e82dbbd
commit 931a5b967b
No known key found for this signature in database
GPG Key ID: E88FD356ACC5F3C4
4 changed files with 24 additions and 143 deletions

View File

@ -14,65 +14,6 @@ env:
GITEA_REPOSITORY: datahearth/tech-bot
jobs:
build-push-builder:
name: Build and push rust builder image
runs-on: debian-docker
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Log into registry Docker
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Log into registry Gitea
uses: docker/login-action@v2
with:
registry: ${{ env.GITEA_REGISTRY }}
username: ${{ gitea.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- name: Log into registry GitHub
uses: docker/login-action@v2
with:
registry: ${{ env.GH_REGISTRY }}
username: ${{ gitea.repository_owner }}
password: ${{ secrets.GH_REGISTRY_TOKEN }}
- name: Extract Docker metadata
id: meta
uses: docker/metadata-action@v4
with:
images: |
${{ env.GITEA_REPOSITORY }}
${{ env.GITEA_REGISTRY }}/${{ env.GITEA_REPOSITORY }}
${{ env.GH_REGISTRY }}/${{ env.GH_REPOSITORY }}
tags: |
type=semver,pattern=rust-builder-latest
type=semver,pattern=rust-builder-{{version}}
type=semver,pattern=rust-builder-{{major}}.{{minor}}
flavor: |
latest=false
- name: Build and push Docker image
id: build-and-push
uses: docker/build-push-action@v4
with:
context: .
push: true
target: rust-builder
cache-to: type=inline
cache-from: |
type=registry,ref=${{ env.GITEA_REPOSITORY }}:rust-builder-latest
type=registry,ref=${{ env.GITEA_REGISTRY }}/${{ env.GITEA_REPOSITORY }}:rust-builder-latest
type=registry,ref=${{ env.GH_REGISTRY }}/${{ env.GH_REPOSITORY }}:rust-builder-latest
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-push-services:
name: Build and push service images

View File

@ -14,65 +14,6 @@ env:
GITEA_REPOSITORY: datahearth/tech-bot
jobs:
build-push-builder:
name: Build and push rust builder image
runs-on: debian-docker
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Log into registry Docker
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Log into registry Gitea
uses: docker/login-action@v2
with:
registry: ${{ env.GITEA_REGISTRY }}
username: ${{ gitea.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- name: Log into registry GitHub
uses: docker/login-action@v2
with:
registry: ${{ env.GH_REGISTRY }}
username: ${{ gitea.repository_owner }}
password: ${{ secrets.GH_REGISTRY_TOKEN }}
- name: Extract Docker metadata
id: meta
uses: docker/metadata-action@v4
with:
images: |
${{ env.GITEA_REPOSITORY }}
${{ env.GITEA_REGISTRY }}/${{ env.GITEA_REPOSITORY }}
${{ env.GH_REGISTRY }}/${{ env.GH_REPOSITORY }}
tags: |
type=semver,pattern=rust-builder-latest
type=semver,pattern=rust-builder-{{version}}
type=semver,pattern=rust-builder-{{major}}.{{minor}}
flavor: |
latest=false
- name: Build and push Docker image
id: build-and-push
uses: docker/build-push-action@v4
with:
context: .
push: true
target: rust-builder
cache-to: type=inline
cache-from: |
type=registry,ref=${{ env.GITEA_REPOSITORY }}:rust-builder-latest
type=registry,ref=${{ env.GITEA_REGISTRY }}/${{ env.GITEA_REPOSITORY }}:rust-builder-latest
type=registry,ref=${{ env.GH_REGISTRY }}/${{ env.GH_REPOSITORY }}:rust-builder-latest
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-push-services:
name: Build and push service images

View File

@ -19,10 +19,6 @@ jobs:
runs-on: debian-docker
strategy:
matrix:
target: [rust-builder, web-dependencies]
steps:
- name: Checkout
uses: actions/checkout@v3
@ -56,9 +52,9 @@ jobs:
${{ env.GITEA_REGISTRY }}/${{ env.GITEA_REPOSITORY }}
${{ env.GH_REGISTRY }}/${{ env.GH_REPOSITORY }}
tags: |
type=semver,pattern=${{ matrix.target }}-latest
type=semver,pattern=${{ matrix.target }}-{{version}}
type=semver,pattern=${{ matrix.target }}-{{major}}.{{minor}}
type=semver,pattern=web-dependencies-latest
type=semver,pattern=web-dependencies-{{version}}
type=semver,pattern=web-dependencies-{{major}}.{{minor}}
flavor: |
latest=false
@ -68,12 +64,12 @@ jobs:
with:
context: .
push: true
target: ${{ matrix.target }}
target: web-dependencies
cache-to: type=inline
cache-from: |
type=registry,ref=${{ env.GITEA_REPOSITORY }}:${{ matrix.target }}-latest
type=registry,ref=${{ env.GITEA_REGISTRY }}/${{ env.GITEA_REPOSITORY }}:${{ matrix.target }}-latest
type=registry,ref=${{ env.GH_REGISTRY }}/${{ env.GH_REPOSITORY }}:${{ matrix.target }}-latest
type=registry,ref=${{ env.GITEA_REPOSITORY }}:web-dependencies-latest
type=registry,ref=${{ env.GITEA_REGISTRY }}/${{ env.GITEA_REPOSITORY }}:web-dependencies-latest
type=registry,ref=${{ env.GH_REGISTRY }}/${{ env.GH_REPOSITORY }}:web-dependencies-latest
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
@ -138,5 +134,6 @@ jobs:
type=registry,ref=${{ env.GITEA_REPOSITORY }}:${{ matrix.target }}-latest
type=registry,ref=${{ env.GITEA_REGISTRY }}/${{ env.GITEA_REPOSITORY }}:${{ matrix.target }}-latest
type=registry,ref=${{ env.GH_REGISTRY }}/${{ env.GH_REPOSITORY }}:${{ matrix.target }}-latest
${{ (contains(${{ matrix.target }}, 'web') && 'type=registry,ref=${{ env.GH_REGISTRY }}/${{ env.GH_REPOSITORY }}:web-dependencies-latest') }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

View File

@ -1,34 +1,36 @@
# ********************************
# * Build the bot and database *
# * Build & deploy bot ***********
# ********************************
FROM rust:1 as rust-builder
FROM rust:1 as bot-builder
WORKDIR /app
COPY Cargo.toml Cargo.lock ./
COPY bot /app/bot
COPY database /app/database
COPY Cargo.toml Cargo.lock bot ./
RUN cargo build -r --workspace
RUN cargo build --release --bin bot
# ********************************
# * Deploy the bot *
# ********************************
FROM gcr.io/distroless/cc as bot
COPY --from=rust-builder /app/target/release/bot /bot
COPY --from=bot-builder /app/target/release/bot /bot
CMD [ "/bot" ]
# ********************************
# * Deploy the database *
# * Build & deploy the database **
# ********************************
FROM rust:1 as db-builder
WORKDIR /app
COPY Cargo.toml Cargo.lock database ./
RUN cargo build --release --bin database
FROM gcr.io/distroless/cc as database
COPY --from=rust-builder /app/target/release/database /database
COPY --from=db-builder /app/target/release/database /database
ENV DB_PATH=/app/tech-bot.db
@ -39,7 +41,7 @@ VOLUME [ "/app" ]
CMD [ "/database" ]
# ********************************
# * Build the web *
# * Build the web ***************
# ********************************
FROM node:18-slim as web-dependencies