Skip to content

Commit

Permalink
Version 1.4.0
Browse files Browse the repository at this point in the history
  • Loading branch information
MicroEJ GitHub Delivery committed Aug 7, 2023
1 parent c2ee0e1 commit 0dbc8c4
Show file tree
Hide file tree
Showing 4 changed files with 117 additions and 70 deletions.
23 changes: 23 additions & 0 deletions 5.8.0/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.4.0] - 2023-08-07
### Added
- Add Dockerfile for sdk 5.8.0

## [1.3.0] - 2023-03-10
### Added
- Add Dockerfile for sdk 5.6.2 jdk11
- Add Dockerfile for sdk 5.7.0 and 5.7.0-jdk11 based on 5.6.2

## [1.2.0] - 2022-09-06
### Added
- Add Dockerfile for sdk 5.6.2 based on 5.5.0

---
_Markdown_
_Copyright 2021-2022 MicroEJ Corp. All rights reserved._
_Use of this source code is governed by a BSD-style license that can be found with this software._
78 changes: 78 additions & 0 deletions 5.8.0/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# Dockerfile
#
# Copyright 2023 MicroEJ Corp. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be found with this software.
FROM eclipse-temurin:11

RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y --no-install-recommends \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && \
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null && \
apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
git \
unzip \
udev \
docker-ce-cli \
ssh \
sshpass \
# Required for Eclipse-based SDK to run
libwebkit2gtk-4.0-37 && \
rm -rf /var/lib/apt/lists/* && \
apt-get clean

# Set the new user parameter.
ARG user=microej
ARG group=microej
ARG uid=1000
ARG gid=1000
RUN addgroup --gid ${gid} ${group} && \
adduser --home /home/${user} --uid ${uid} --ingroup ${group} --disabled-password ${user}

# Set env
ENV HOME /home/${user}
ENV ECLIPSE_HOME=/opt/eclipse
ENV BUILD_KIT_HOME=/opt/buildKit
ENV PATH=$BUILD_KIT_HOME/bin:$PATH

# Set workdir
WORKDIR ${HOME}

# I) Install SDK
RUN curl -O https://repository.microej.com/packages/SDK/23.07/zip/microej-sdk-23.07-linux_x86_64.zip && \
mkdir -p $ECLIPSE_HOME && \
unzip microej-sdk-23.07-linux_x86_64.zip -d $ECLIPSE_HOME && \
rm -f microej-sdk-23.07-linux_x86_64.zip && \
# II) Configure SDK location
mkdir -p $HOME/.microej && \
chown $user:$group $HOME/.microej && \
echo "[options]\neclipse.home=\"${ECLIPSE_HOME}\"" > $HOME/.microej/.mmmconfig && \
# III) Extract Build Kit from SDK
mkdir -p $BUILD_KIT_HOME && \
# 1. Extract build repository
unzip $ECLIPSE_HOME/plugins/com.is2t.eclipse.plugin.easyant4e.offlinerepo_1.6.1.202307031455.jar repositories/microej-build-repository.zip && \
unzip repositories/microej-build-repository.zip -d $BUILD_KIT_HOME/microej-build-repository && \
rm -rf repositories/ && \
# 2. Extract mmm-cli
unzip $ECLIPSE_HOME/plugins/com.is2t.eclipse.plugin.easyant4e_2.7.1.202307031455.jar cli/mmm-cli.zip && \
unzip cli/mmm-cli.zip -d $BUILD_KIT_HOME/ && \
rm -rf cli && \
# 3. Extract ivysettings
unzip $ECLIPSE_HOME/plugins/org.apache.ivyde.eclipse_2.5.1.final-202307031339-RELEASE/ivyde-eclipse.jar resources/microej-ivysettings-5.4.xml && \
mkdir -p $BUILD_KIT_HOME/microej-module-repository/ && \
mv resources/microej-ivysettings-5.4.xml $BUILD_KIT_HOME/microej-module-repository/ivysettings.xml && \
rm -rf resources/ && \
# 4. Set SDK version
echo 'sdk.version=5.8.0' > $BUILD_KIT_HOME/release.properties && \
mkdir -p $HOME/.microej/build-repository-cache && \
ln -s $HOME/.microej/build-repository-cache $BUILD_KIT_HOME/microej-build-repository/cache && \
chown $user:$group $BUILD_KIT_HOME/microej-build-repository/cache

# Good practice, switch back to user.
USER ${user}
85 changes: 15 additions & 70 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,80 +5,19 @@ node('docker') {

def platform_dir = "Platform-Espressif-ESP-WROVER-KIT-V4.1"
def platform_url = "https://github.com/MicroEJ/${platform_dir}"
def platform_tag = "2.0.0"
def platform_tag = "2.2.0"
def platform_target = "ESP32WROVER-Platform-GNUv84_xtensa-esp32-psram-${platform_tag}"

stage('Checkout') {
cleanWs()
checkout scm
}

////////////////////////
/ Build of image 4.1.5 /
////////////////////////

stage('Lint check 4.1.5') {
docker.image('hadolint/hadolint:latest-alpine').inside {
sh 'hadolint --no-fail 4.1.5/Dockerfile'
}
}
stage('Build 4.1.5') {
image = docker.build("sdk:4.1.5", "4.1.5")
}
stage('Test: ensure sdk:4.1.5 can run docker') {
image.inside('-u root -v/var/run/docker.sock:/var/run/docker.sock') {
sh 'docker run --rm -t hello-world'
}
}
stage('Test: Prepare central-repo') {
image.inside {
sh 'mkdir central-repo'
sh 'curl -LO https://developer.microej.com/4.1/ivy/microej-4.1-1.10.0.zip'
sh 'unzip microej-4.1-1.10.0.zip -d central-repo'
}
}
stage('Test: snapshot is correctly published') {
image.inside {
sh 'mkdir snapshot'
sh 'sed -e s~^microej.central.repository.dir=.*~microej.central.repository.dir=$(pwd)/central-repo~ $MICROEJ_BUILDKIT_HOME/local-build.properties > /tmp/local-build && cat /tmp/local-build > $MICROEJ_BUILDKIT_HOME/local-build.properties'
sh 'sed -e s~^snapshot.repository.dir=.*~snapshot.repository.dir=$(pwd)/snapshot~ $MICROEJ_BUILDKIT_HOME/local-build.properties > /tmp/local-build && cat /tmp/local-build > $MICROEJ_BUILDKIT_HOME/local-build.properties'
sh 'rm -rf Demo-Widget'
sh 'git clone --branch 6.1.1 https://github.com/MicroEJ/Demo-Widget.git'
sh 'build_module_local.sh Demo-Widget/com.microej.demo.widget/ snapshot'
sh 'ls snapshot/com/microej/demo/widget/6.1.1-RC*/ivy-6.1.1-RC*.xml'
}
}
stage('Test: release is correctly published') {
image.inside {
sh 'mkdir release'
sh 'sed -e s~^microej.central.repository.dir=.*~microej.central.repository.dir=$(pwd)/central-repo~ $MICROEJ_BUILDKIT_HOME/local-build.properties > /tmp/local-build && cat /tmp/local-build > $MICROEJ_BUILDKIT_HOME/local-build.properties'
sh 'sed -e s~^release.repository.dir=.*~release.repository.dir=$(pwd)/release~ $MICROEJ_BUILDKIT_HOME/local-build.properties > /tmp/local-build && cat /tmp/local-build > $MICROEJ_BUILDKIT_HOME/local-build.properties'
sh 'echo "skip.license.checker=true\nskip.readme.checker=true\nskip.changelog.checker=true" > build.properties'
sh 'build_module_local.sh Demo-Widget/com.microej.demo.widget/ release build.properties'
sh 'ls release/com/microej/demo/widget/6.1.1/ivy-6.1.1.xml'
}
}
stage('Test: build platform') {
image.inside {
sh "rm -rf ${platform_dir}"
sh "git clone --depth 1 --branch 1.8.4 ${platform_url}"
// Remove mccom-install not provided by SDK:4.1.5
sh "sed '/mccom-install/d' -i ${platform_dir}/ESP32-WROVER-Xtensa-FreeRTOS-configuration/module.ivy"
// Override mccom-install targets with empty ones
sh "sed '/<project.*/a <target name=\"readme:init\" />' -i ${platform_dir}/ESP32-WROVER-Xtensa-FreeRTOS-configuration/module.ant"
sh "sed '/<project.*/a <target name=\"changelog:init\" />' -i ${platform_dir}/ESP32-WROVER-Xtensa-FreeRTOS-configuration/module.ant"
// Add microEJCentral to the list of resolvers to fetch the dependencies
sh 'sed \'/<chain name=\"fetchRelease\">/a <url name=\"microEJDeveloper\" m2compatible=\"true\"><artifact pattern=\"http://forge.microej.com/artifactory/microej-developer-repository-release/[organization]/[module]/[branch]/[revision]/[artifact]-[revision](-[classifier]).[ext]\" /><ivy pattern=\"http://forge.microej.com/artifactory/microej-developer-repository-release/[organization]/[module]/[branch]/[revision]/ivy-[revision].xml\" /></url><url name=\"microEJCentral\" m2compatible=\"true\"><artifact pattern=\"https://repository.microej.com/modules/[organization]/[module]/[branch]/[revision]/[artifact]-[revision](-[classifier]).[ext]\" /><ivy pattern=\"https://repository.microej.com/modules/[organization]/[module]/[branch]/[revision]/ivy-[revision].xml\" /></url>\' -i $MICROEJ_BUILDKIT_HOME/ivy/ivysettings.xml'
// This fails because we don't have an eval license, but the build per see is started with eclipse
sh "build_module_local.sh ${platform_dir}/ESP32-WROVER-Xtensa-FreeRTOS-configuration/ | grep 'No license found'"
}
}

///////////////////////
/ Build of images 5.+ /
///////////////////////

def subfolders = sh(returnStdout: true, script: 'ls -d 5.*').trim().split("\n")
def subfolders = sh(returnStdout: true, script: 'ls -d 5.8*').trim().split("\n")
subfolders.each { folder ->
stage("Lint check ${folder}") {
docker.image('hadolint/hadolint:latest-alpine').inside {
Expand Down Expand Up @@ -153,13 +92,19 @@ node('docker') {
}
}
stage("Test(${folder}): build platform and firmware-singleapp") {
image.inside {
sh "rm -rf ${platform_dir}"
sh "git clone --depth 1 --branch ${platform_tag} ${platform_url}"
sh "cd ${platform_dir}/ESP32-WROVER-Xtensa-FreeRTOS-configuration/ && mmm"
sh 'mmm init -D"skeleton.org=com.is2t.easyant.skeletons" -D"skeleton.module=firmware-singleapp" -D"skeleton.rev=+" -D"project.org=com.mycompany" -Dproject.module=firmware-singleapp -Dproject.rev=1.0.0 -Dskeleton.target.dir=firmware-singleapp'
sh "cd firmware-singleapp && mmm publish local -Dplatform-loader.target.platform.dir=../${platform_dir}/${platform_target}/source -Dvirtual.device.sim.only=SET"
try {
image.inside {
sh "rm -rf ${platform_dir}"
sh "git clone --depth 1 --branch ${platform_tag} ${platform_url}"
sh "cd ${platform_dir}/ESP32-WROVER-Xtensa-FreeRTOS-configuration/ && mmm -v"
sh 'mmm init -D"skeleton.org=com.is2t.easyant.skeletons" -D"skeleton.module=firmware-singleapp" -D"skeleton.rev=+" -D"project.org=com.mycompany" -Dproject.module=firmware-singleapp -Dproject.rev=1.0.0 -Dskeleton.target.dir=firmware-singleapp'
sh "cd firmware-singleapp && mmm publish local -Dplatform-loader.target.platform.dir=../${platform_dir}/${platform_target}/source -Dvirtual.device.sim.only=SET"
}
}
catch (Exception e) {
echo 'Exception occurred: ' + e.toString()
sh 'cat /home/microej/.eclipse/com.is2t.microej.mpp.product.product_23.07_1473617060_linux_gtk_x86_64/configuration/*.log'
}
}
}
}
}
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
![SDK 5.8 Compatible](https://shields.microej.com/endpoint?url=https://repository.microej.com/packages/badges/sdk_5.8.json)
![SDK 5.7 Compatible](https://shields.microej.com/endpoint?url=https://repository.microej.com/packages/badges/sdk_5.7.json)
![SDK 5.6 Compatible](https://shields.microej.com/endpoint?url=https://repository.microej.com/packages/badges/sdk_5.6.json)
![SDK 5.5 Compatible](https://shields.microej.com/endpoint?url=https://repository.microej.com/packages/badges/sdk_5.5.json)
Expand Down

0 comments on commit 0dbc8c4

Please sign in to comment.