Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ci deploy #20

Open
wants to merge 30 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
uses: actions/checkout@v4
with:
submodules: recursive
token: ${{ secrets.PAT_TOKEN }}
token: ${{ secrets.GHCR_TOKEN }}
# See https://github.com/marketplace/actions/setup-micromamba
- name: Install conda env
uses: mamba-org/[email protected]
Expand Down
83 changes: 83 additions & 0 deletions .github/workflows/cicd_deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: cicd_deploy

on:
pull_request:
branches:
- main
- dev

env:
IMAGE_NAME: ${{ github.repository }}
REGISTRY: ghcr.io
DOCKER_IMAGE_NAME: lidro
TEST_TAG: lidro:test

jobs:
deploy_docker:
runs-on: ubuntu-latest

steps:
- name: Checkout branch
uses: actions/checkout@v4
with:
submodules: recursive
token: ${{ secrets.GHCR_TOKEN }}
# build the image
- name: Build Docker image for tests
id: build
uses: docker/build-push-action@v5
with:
load: true
tags: ${{ env.TEST_TAG }}

- name: Run tests in docker
run: >
docker run
--ipc=host
${{ env.TEST_TAG }}
python -m pytest -m docker -s --log-cli-level DEBUG

- name: Set version number
run: |
echo "VERSION=v$(python -m lidro.version)" >> $GITHUB_ENV

- name: Check tag and version number consistency
if: ${{ github.event_name == 'tag' }}
run: |
if [[ ${{ github.ref_name }} == ${{ env.VERSION }} ]]
then
echo "OK: Tag name and VERSION.md (${{ env.VERSION }}) version number (${{ github.ref_name }}) match"
else
echo "NOK: Tag name and VERSION.md (${{ env.VERSION }}) version number (${{ github.ref_name }}) don't match"
exit 1
fi

# Login against a Docker registry except on PR
# https://github.com/docker/login-action
- name: Log into registry ${{ env.REGISTRY }}
if: github.event_name != 'pull_request'
uses: docker/login-action@v2
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GHCR_TOKEN }}

# Extract metadata (tags, labels) for Docker
# https://github.com/docker/metadata-action
- name: Extract Docker metadata
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}

# Build and push Docker image with Buildx (don't on PR)
# https://github.com/docker/build-push-action
- name: Build and push Docker image
id: build-and-push
if: ${{ github.event_name != 'pull_request' }}
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[submodule "data"]
path = data
url = git@github.com:IGNF/lidro-data.git
url = https://github.com/IGNF/lidro-data.git
21 changes: 20 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@ FROM mambaorg/micromamba:latest

USER root


# Switch to root to install additional packages
USER root

# Install Git to enable submodule sync/update commands
RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/*

WORKDIR /lidro

# # Set up the Conda environment: cf https://github.com/mamba-org/micromamba-docker
Expand All @@ -11,9 +18,21 @@ RUN chown $MAMBA_USER:$MAMBA_USER /tmp/env.yaml
RUN micromamba install -y -n base -f /tmp/env.yaml && \
micromamba clean --all --yes


# Set environment variables
ENV ENV=base
ARG MAMBA_DOCKERFILE_ACTIVATE=1

# Sync and update submodules (ensure they are configured in the repository)
RUN git submodule sync && \
git submodule update --init --recursive

# Create directories
RUN mkdir data tmp

# Copy the application files
COPY lidro lidro
COPY configs configs
COPY configs configs



18 changes: 15 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,24 @@ mamba-env-update:
# Docker
##############################

PROJECT_NAME=lidar_hd/lidro
REGISTRY=ghcr.io
IMAGE_NAME=lidro
NAMESPACE=ignf
VERSION=`python -m lidro._version`
FULL_IMAGE_NAME=${REGISTRY}/${NAMESPACE}/${IMAGE_NAME}:${VERSION}


docker-build:
docker build -t ${PROJECT_NAME}:${VERSION} -f Dockerfile .
docker build --no-cache -t ${IMAGE_NAME}:${VERSION} -f Dockerfile .

docker-test:
docker run --rm -it ${IMAGE_NAME}:${VERSION} python -m pytest -s

docker-remove:
docker rmi -f `docker images | grep ${PROJECT_NAME} | tr -s ' ' | cut -d ' ' -f 3`
docker rmi -f `docker images | grep ${IMAGE_NAME} | tr -s ' ' | cut -d ' ' -f 3`
docker rmi -f `docker images -f "dangling=true" -q`

docker-deploy:
docker tag ${IMAGE_NAME}:${VERSION} ${FULL_IMAGE_NAME}
docker push ${FULL_IMAGE_NAME}

2 changes: 1 addition & 1 deletion data
Submodule data updated from 031c33 to 2ae2df
Loading