Skip to content
Snippets Groups Projects
Commit 7c02828b authored by Moul's avatar Moul
Browse files

[ci] #388: Add image generation build automation

Introduce Dockerfile based on latest Python available
Install silkaj via pip and make it available to the CLI
Two steps: build, copy

Manual triggered job to generate the image
Definition as an extensible job for future usages
Rename stage
parent 889f823e
No related branches found
No related tags found
No related merge requests found
stages: stages:
- checks - checks
- tests - tests
- publish - package
- coverage - coverage
variables: variables:
...@@ -76,8 +76,30 @@ tests-3.9: ...@@ -76,8 +76,30 @@ tests-3.9:
variables: variables:
PYTHON_VERSION: "3.9" PYTHON_VERSION: "3.9"
.container:
stage: package
tags: [docker]
image: docker:latest
services:
- docker:dind
script:
- docker pull $CI_REGISTRY_IMAGE:$IMAGE_TAG || true
- docker build --cache-from $CI_REGISTRY_IMAGE:$IMAGE_TAG --pull -t "$CI_REGISTRY_IMAGE:$IMAGE_TAG" -f release/container-pip .
- docker login -u "$CI_REGISTRY_USER" -p "$CI_BUILD_TOKEN" $CI_REGISTRY
- docker tag "$CI_REGISTRY_IMAGE:$IMAGE_TAG" "$CI_REGISTRY_IMAGE:$IMAGE_TAG"
- docker push "$CI_REGISTRY_IMAGE:$IMAGE_TAG"
- docker tag "$CI_REGISTRY_IMAGE:$IMAGE_TAG" "$CI_REGISTRY_IMAGE:latest"
- docker push "$CI_REGISTRY_IMAGE:latest"
container:
extends: .container
variables:
IMAGE_TAG: "dev"
rules:
- when: manual
pypi_test: pypi_test:
stage: publish stage: package
rules: rules:
- if: $CI_COMMIT_TAG - if: $CI_COMMIT_TAG
when: manual when: manual
...@@ -86,7 +108,7 @@ pypi_test: ...@@ -86,7 +108,7 @@ pypi_test:
- poetry publish --build --username $PYPI_TEST_LOGIN --password $PYPI_TEST_PASSWORD --repository pypi_test - poetry publish --build --username $PYPI_TEST_LOGIN --password $PYPI_TEST_PASSWORD --repository pypi_test
pypi: pypi:
stage: publish stage: package
rules: rules:
- if: $CI_COMMIT_TAG - if: $CI_COMMIT_TAG
when: manual when: manual
......
# ------------------------------------------------------------------------------
# Build Stage
# ------------------------------------------------------------------------------
ARG PYTHON_VERS=3.9
FROM registry.duniter.org/docker/python3/poetry/${PYTHON_VERS}:latest as build
WORKDIR /silkaj
# Copy source tree
COPY ./ ./
# Install Silkaj
RUN pip install .
# ------------------------------------------------------------------------------
# Final Stage
# ------------------------------------------------------------------------------
FROM registry.duniter.org/docker/python3/poetry/${PYTHON_VERS}:latest
ARG PYTHON_VERS=3.9
# Create silkaj group and user
RUN groupadd -g 1111 silkaj && \
useradd -d /silkaj -g silkaj -u 1111 silkaj
# Copy the build artifact from the build stage
COPY --from=build /usr/local/bin/silkaj /usr/local/bin/silkaj
COPY --from=build /usr/local/lib/python${PYTHON_VERS}/site-packages/ /usr/local/lib/python${PYTHON_VERS}/site-packages/
# Use silkaj user
USER silkaj
WORKDIR /usr/local/lib/python${PYTHON_VERS}/site-packages/silkaj
CMD ["/usr/local/bin/silkaj"]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment