diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..b38b25552c5619a2db1530017cff6ab49eb466be --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,49 @@ +name: ci + +on: + push: + branches: + - 'releases/v*' + - 'develop' + tags: + - 'v*.*.*' + workflow_dispatch: + +jobs: + docker: + runs-on: [self-hosted, Linux, X64] + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Set the environment variable + run: echo REPOSITORY_NAME=${GITHUB_REPOSITORY#*\/} >> $GITHUB_ENV + - name: Docker meta + id: meta + uses: docker/metadata-action@v4 + with: + images: | + "${{ secrets.DOCKERHUB_USERNAME }}/${{ env.REPOSITORY_NAME }}" + tags: | + type=ref,event=branch + type=ref,event=pr + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + - name: Login to DockerHub + if: github.event_name != 'pull_request' + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Build and push + uses: docker/build-push-action@v4 + with: + context: . + platforms: linux/amd64,linux/arm64/v8 + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/Dockerfile b/Dockerfile index cf481ee3295e1fe73bab028720304a6f74e76bed..d5e4339641b58fa525d96f7859ae7bafbc013039 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,7 @@ -ARG BASE_CONTAINER=brunoe/jupyterutln-default:develop -FROM $BASE_CONTAINER +FROM brunoe/jupyter-base:develop LABEL maintainer="Emmanuel Bruno <emmanuel.bruno@univ-tln.fr>" -ENV PLANTUML_VERSION 1.2022.12 -ENV PLANTUML_SHA1 da1de7f1b3de4c70b2ff501579802085dbc9a05b USER root # Install minimal dependencies @@ -12,25 +9,15 @@ RUN --mount=type=cache,target=/var/cache/apt \ rm -f /etc/apt/apt.conf.d/docker-clean &&\ apt-get update && apt-get install -qq --yes --no-install-recommends\ coreutils \ - curl \ dnsutils \ gnupg \ - graphviz \ inkscape \ iputils-ping \ net-tools \ - pandoc \ - procps \ tree \ ttf-bitstream-vera \ - zsh \ - make latexmk fonts-freefont-otf texlive-latex-extra texlive-fonts-extra texlive-xetex latexmk \ && rm -rf /var/lib/apt/lists/* -## ZSH -ADD zsh/initzsh.sh /tmp/initzsh.sh -ADD zsh/p10k.zsh $HOME/.p10k.zsh - RUN --mount=type=cache,target=/var/cache/buildkit/pip \ echo -e "\e[93m**** Install Java Kernel for Jupyter ****\e[38;5;241m" && \ curl -sL https://github.com/SpencerPark/IJava/releases/download/v1.3.0/ijava-1.3.0.zip -o /tmp/ijava-kernel.zip && \ @@ -39,24 +26,6 @@ RUN --mount=type=cache,target=/var/cache/buildkit/pip \ python3 install.py --sys-prefix && \ # jupyter kernelspec install --user java/ && \ cd && rm -rf /tmp/ijava-kernel /tmp/ijava-kernel.zip && \ - echo -e "\e[93m**** Install ZSH Kernel for Jupyter ****\e[38;5;241m" && \ - python3 -m pip install zsh_jupyter_kernel && \ - python3 -m zsh_jupyter_kernel.install --sys-prefix && \ - echo -e "\e[93m**** Update Jupyter config ****\e[38;5;241m" && \ - mkdir -p $HOME/jupyter_data && \ - jupyter lab --generate-config && \ - sed -i -e '/c.ServerApp.disable_check_xsrf =/ s/= .*/= True/' \ - -e 's/# \(c.ServerApp.disable_check_xsrf\)/\1/' \ - -e '/c.ServerApp.data_dir =/ s/= .*/= "\/home\/jovyan\/jupyter_data"/' \ - -e "/c.ServerApp.terminado_settings =/ s/= .*/= { 'shell_command': ['\/bin\/zsh'] }/" \ - -e 's/# \(c.ServerApp.terminado_settings\)/\1/' \ - $HOME/.jupyter/jupyter_lab_config.py && \ - echo -e "\e[93m**** Configure a nice zsh environment ****\e[38;5;241m" && \ - git clone --recursive https://github.com/sorin-ionescu/prezto.git "$HOME/.zprezto" && \ - zsh -c /tmp/initzsh.sh && \ - sed -i -e "s/zstyle ':prezto:module:prompt' theme 'sorin'/zstyle ':prezto:module:prompt' theme 'powerlevel10k'/" $HOME/.zpreztorc && \ - echo "[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh" >> $HOME/.zshrc && \ - echo "PATH=/opt/bin:$PATH" >> $HOME/.zshrc && \ fix-permissions $CONDA_DIR && \ fix-permissions /home/$NB_USER @@ -106,9 +75,9 @@ RUN echo '#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!' >> $HOME/. SHELL ["/bin/zsh","-l","-c"] -# Install PlantUML -RUN curl -L https://repo1.maven.org/maven2/net/sourceforge/plantuml/plantuml/${PLANTUML_VERSION}/plantuml-${PLANTUML_VERSION}.jar -o /usr/local/bin/plantuml.jar && \ - echo "$PLANTUML_SHA1 */usr/local/bin/plantuml.jar" | sha1sum -c - +RUN echo -e "\e[93m**** Install lombok and java dependencies ***\e[38;5;241m" && \ + mkdir -p "${HOME}/lib/" && \ + curl -sL https://projectlombok.org/downloads/lombok.jar -o "${HOME}/lib/lombok.jar" COPY dependencies/* "$HOME/lib/" diff --git a/kernel.json b/kernel.json index c58e17bcf4d8701dc8281be148672b35d74d9cec..1aaf9c08a2ab92c9844e74e7896f39695ac7f4ca 100644 --- a/kernel.json +++ b/kernel.json @@ -1,6 +1,6 @@ { "argv": [ - "java", + "java", "-ea", "-jar", "/opt/conda/share/jupyter/kernels/java/ijava-1.3.0.jar",