mirror of
https://github.com/meilisearch/meilisearch.git
synced 2024-11-23 10:37:41 +08:00
Merge #3482
3482: Optimize meilisearch uffizzi build r=curquiza a=waveywaves # Pull Request ## Related issue Fixes https://github.com/meilisearch/meilisearch/issues/3476 ## What does this PR do? even though docker cache was being used earlier for uffizzi builds, seems like the cache layers weren't persisting. This commit adds changes to move meilisearch building outside the dockerfile so that we can use the rust cache action. We are also building to the musl target so that the binary for meilisearch which is created can be used for the uffizzi ttyd image which uses alpine. Meilisearch build time brought to 5 mins example https://github.com/waveywaves/meilisearch/actions/runs/4142776058 we also update the version of uffizzi action used here which fixes another uffizzi bug where the environments are not deployed. https://app.uffizzi.com/github.com/waveywaves/meilisearch/pull/2 was built as a part of a test for this PR and we can be sure that the deployment works well now. ## PR checklist Please check if your PR fulfills the following requirements: - [ ] Does this PR fix an existing issue, or have you listed the changes applied in the PR description (and why they are needed)? - [ ] Have you read the contributing guidelines? - [ ] Have you made sure that the title is accurate and descriptive of the changes? Thank you so much for contributing to Meilisearch! Co-authored-by: Vibhav Bobade <vibhav.bobde@gmail.com>
This commit is contained in:
commit
c88b6f331f
31
.github/uffizzi/Dockerfile
vendored
31
.github/uffizzi/Dockerfile
vendored
@ -1,24 +1,3 @@
|
|||||||
# Compile
|
|
||||||
FROM rust:alpine3.16 AS compiler
|
|
||||||
|
|
||||||
RUN apk add -q --update-cache --no-cache build-base openssl-dev
|
|
||||||
|
|
||||||
WORKDIR /meilisearch
|
|
||||||
|
|
||||||
ARG COMMIT_SHA
|
|
||||||
ARG COMMIT_DATE
|
|
||||||
ARG GIT_TAG
|
|
||||||
ENV COMMIT_SHA=${COMMIT_SHA} COMMIT_DATE=${COMMIT_DATE} VERGEN_GIT_SEMVER_LIGHTWEIGHT=${GIT_TAG}
|
|
||||||
ENV RUSTFLAGS="-C target-feature=-crt-static"
|
|
||||||
|
|
||||||
COPY . .
|
|
||||||
RUN set -eux; \
|
|
||||||
apkArch="$(apk --print-arch)"; \
|
|
||||||
if [ "$apkArch" = "aarch64" ]; then \
|
|
||||||
export JEMALLOC_SYS_WITH_LG_PAGE=16; \
|
|
||||||
fi && \
|
|
||||||
cargo build --release
|
|
||||||
|
|
||||||
# Run
|
# Run
|
||||||
FROM uffizzi/ttyd:alpine
|
FROM uffizzi/ttyd:alpine
|
||||||
|
|
||||||
@ -29,19 +8,11 @@ ENV MEILI_NO_ANALYTICS true
|
|||||||
RUN apk update --quiet \
|
RUN apk update --quiet \
|
||||||
&& apk add -q --no-cache libgcc tini curl
|
&& apk add -q --no-cache libgcc tini curl
|
||||||
|
|
||||||
# add meilisearch to the `/bin` so you can run it from anywhere and it's easy
|
COPY target/x86_64-unknown-linux-musl/release/meilisearch /bin/meilisearch
|
||||||
# to find.
|
|
||||||
COPY --from=compiler /meilisearch/target/release/meilisearch /bin/meilisearch
|
|
||||||
# To stay compatible with the older version of the container (pre v0.27.0) we're
|
|
||||||
# going to symlink the meilisearch binary in the path to `/meilisearch`
|
|
||||||
RUN ln -s /bin/meilisearch /meilisearch
|
RUN ln -s /bin/meilisearch /meilisearch
|
||||||
|
|
||||||
# This directory should hold all the data related to meilisearch so we're going
|
|
||||||
# to move our PWD in there.
|
|
||||||
# We don't want to put the meilisearch binary
|
|
||||||
WORKDIR /meili_data
|
WORKDIR /meili_data
|
||||||
|
|
||||||
|
|
||||||
EXPOSE 7700/tcp
|
EXPOSE 7700/tcp
|
||||||
|
|
||||||
ENTRYPOINT ["tini", "--"]
|
ENTRYPOINT ["tini", "--"]
|
||||||
|
20
.github/workflows/uffizzi-build.yml
vendored
20
.github/workflows/uffizzi-build.yml
vendored
@ -14,6 +14,26 @@ jobs:
|
|||||||
- name: checkout
|
- name: checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- run: sudo apt-get install musl-tools
|
||||||
|
|
||||||
|
- uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: stable
|
||||||
|
override: true
|
||||||
|
target: x86_64-unknown-linux-musl
|
||||||
|
|
||||||
|
- name: Cache dependencies
|
||||||
|
uses: Swatinem/rust-cache@v2.2.0
|
||||||
|
|
||||||
|
- name: Run cargo check without any default features
|
||||||
|
uses: actions-rs/cargo@v1
|
||||||
|
with:
|
||||||
|
command: build
|
||||||
|
args: --target x86_64-unknown-linux-musl --release
|
||||||
|
|
||||||
|
- name: Remove dockerignore so we can use the target folder in our docker build
|
||||||
|
run: rm -f .dockerignore
|
||||||
|
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v2
|
uses: docker/setup-qemu-action@v2
|
||||||
|
|
||||||
|
6
.github/workflows/uffizzi-preview-deploy.yml
vendored
6
.github/workflows/uffizzi-preview-deploy.yml
vendored
@ -82,7 +82,7 @@ jobs:
|
|||||||
name: Use Remote Workflow to Preview on Uffizzi
|
name: Use Remote Workflow to Preview on Uffizzi
|
||||||
needs:
|
needs:
|
||||||
- cache-compose-file
|
- cache-compose-file
|
||||||
uses: UffizziCloud/preview-action/.github/workflows/reusable.yaml@desc
|
uses: UffizziCloud/preview-action/.github/workflows/reusable.yaml@v2
|
||||||
with:
|
with:
|
||||||
# If this workflow was triggered by a PR close event, cache-key will be an empty string
|
# If this workflow was triggered by a PR close event, cache-key will be an empty string
|
||||||
# and this reusable workflow will delete the preview deployment.
|
# and this reusable workflow will delete the preview deployment.
|
||||||
@ -95,8 +95,8 @@ jobs:
|
|||||||
`meilisearch` command. You should be able to access this instance of meilisearch running in
|
`meilisearch` command. You should be able to access this instance of meilisearch running in
|
||||||
the preview from the link Meilisearch Endpoint link given below.
|
the preview from the link Meilisearch Endpoint link given below.
|
||||||
|
|
||||||
Web Terminal Endpoint : ${{ needs.cache-compose-file.outputs.expected-url }}
|
Web Terminal Endpoint : <uffizzi-url>
|
||||||
Meilisearch Endpoint : ${{ needs.cache-compose-file.outputs.expected-url }}/meilisearch
|
Meilisearch Endpoint : <uffizzi-url>/meilisearch
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
pull-requests: write
|
pull-requests: write
|
||||||
|
Loading…
Reference in New Issue
Block a user