Skip to content

Commit d6ecbfc

Browse files
Merge pull request #510 from iExecBlockchainComputing/release/8.0.0
Release/8.0.0
2 parents 1b48950 + e020bee commit d6ecbfc

File tree

80 files changed

+4057
-1628
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

80 files changed

+4057
-1628
lines changed

CHANGELOG.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,36 @@
22

33
All notable changes to this project will be documented in this file.
44

5+
## [[8.0.0]](https://github.com/iExecBlockchainComputing/iexec-worker/releases/tag/v8.0.0) 2023-03-08
6+
7+
### New Features
8+
* Support Gramine framework for TEE tasks.
9+
* Bind SMS URL to task.
10+
* Show application version on banner.
11+
### Bug Fixes
12+
* Remove dataset decryption non-TEE workflow.
13+
* Purge result files and metadata when task is completed.
14+
* On _iExec Core Scheduler_ REST call failure, only try to log in once to avoid nested retry loops.
15+
* Update iconarchive RLC PNG hash in tests.
16+
* Do not try to send heartbeat more than scheduled on _iExec Core Scheduler_.
17+
* Only try to log in once when the _iExec Core Scheduler_ returns __401 Unauthorized__ HTTP status code.
18+
* Wait for the application to be started before creating STOMP session.
19+
* Wait for the STOMP session to be ready before sending any replicate status update.
20+
* Do not call `isSgxSupported` when `SgxDriverMode.NONE`.
21+
* Remove duplicated calls to `IexecHubService#getTaskDescription` in `TaskManagerService`.
22+
* Refactor update replicate status call.
23+
### Quality
24+
* Improve code quality.
25+
* Extract STOMP client configuration to its own bean.
26+
* Remove unchecked casts.
27+
### Dependency Upgrades
28+
* Replace the deprecated `openjdk` Docker base image with `eclipse-temurin` and upgrade to Java 11.0.18 patch.
29+
* Upgrade to Spring Boot 2.6.14.
30+
* Upgrade to Gradle 7.6.
31+
* Upgrade OkHttp to 4.9.0.
32+
* Upgrade to `iexec-common` 7.0.0.
33+
* Upgrade to `jenkins-library` 2.4.0.
34+
535
## [[7.3.0]](https://github.com/iExecBlockchainComputing/iexec-worker/releases/tag/v7.3.0) 2022-12-18
636

737
* Add endpoint to allow health checks.

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM openjdk:11.0.15-jre-slim
1+
FROM eclipse-temurin:11.0.18_10-jre
22

33
ARG jar
44

Jenkinsfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@Library('global-jenkins-library@2.2.3') _
1+
@Library('global-jenkins-library@2.4.0') _
22
buildJavaProject(
33
buildInfo: getBuildInfo(),
44
integrationTestsEnvVars: [],

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@
55
The _iExec Worker_ participates in a workerpool by computing tasks purchased by requesters on the iExec marketplace.
66
The _iExec Worker_ must connect to the _iExec Core Scheduler_ of the workerpool to actively participate in the computation.
77

8+
After registration, the _iExec Worker_ sends a signal to the _iExec Core Scheduler_ at a fixed rate.
9+
This signal is used to let the _iExec Core Scheduler_ be aware of the _iExec Worker_ liveness.
10+
At the moment, the rate is fixed and this signal is sent every 10 seconds.
11+
The _iExec Worker_ will be considered as lost after several failures.
12+
813
The _iExec Worker_ is available as an OCI image on [Docker Hub](https://hub.docker.com/r/iexechub/iexec-worker/tags).
914

1015
## Configuration

build.gradle

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,17 @@
11
plugins {
22
id 'java'
3-
id 'org.springframework.boot' version '2.6.2'
4-
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
5-
id 'eclipse'
3+
id 'io.freefair.lombok' version '6.6.1'
4+
id 'org.springframework.boot' version '2.6.14'
5+
id 'io.spring.dependency-management' version '1.1.0'
66
id 'jacoco'
77
id 'org.sonarqube' version '3.3'
88
id 'maven-publish'
99
}
1010

1111
group = 'com.iexec.worker'
12-
sourceCompatibility = 11
13-
targetCompatibility = 11
1412

1513
ext {
16-
springCloudVersion = '2021.0.0'
14+
springCloudVersion = '2021.0.5'
1715
dockerJavaVersion = '3.2.12'
1816
lombokVersion = '1.18.2'
1917
}
@@ -79,14 +77,19 @@ dependencies {
7977
testImplementation "org.springframework.boot:spring-boot-starter-test"
8078
testImplementation "org.mockito:mockito-inline:4.8.0" // activates mocking final classes/methods
8179

80+
// apache commons.lang3
81+
implementation 'org.apache.commons:commons-lang3'
82+
8283
// Web3j issues, see core build.gradle
83-
implementation 'com.squareup.okhttp3:okhttp:4.3.1'
84-
implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.3.50'
84+
// NoSuchMethodError: 'okhttp3.RequestBody okhttp3.RequestBody.create(java.lang.String, okhttp3.MediaType)'
85+
// Spring Boot dependencies BOM enforces okhttp3 3.14.9 in 2.6.X
86+
// It is required to define the dependency version required by web3j until migration to at least Spring Boot 2.7.X
87+
implementation 'com.squareup.okhttp3:okhttp:4.9.0' // Web3j issue: https://github.com/web3j/web3j/issues/1180
8588

8689
// Required for com.iexec.worker.feign.config.RestTemplateConfig
87-
implementation 'org.apache.httpcomponents:httpclient:4.5.13'
90+
implementation 'org.apache.httpcomponents:httpclient'
8891

89-
implementation 'org.glassfish.jersey.inject:jersey-hk2:2.26'
92+
implementation 'org.glassfish.jersey.inject:jersey-hk2'
9093
implementation 'org.glassfish.jersey.bundles.repackaged:jersey-guava:2.25.1'
9194
implementation 'javax.activation:activation:1.1.1'
9295

@@ -96,12 +99,6 @@ dependencies {
9699
//graylog
97100
implementation 'biz.paluch.logging:logstash-gelf:1.5.1'
98101

99-
// lombok
100-
compileOnly "org.projectlombok:lombok:${lombokVersion}"
101-
annotationProcessor "org.projectlombok:lombok:${lombokVersion}"
102-
testCompileOnly "org.projectlombok:lombok:${lombokVersion}"
103-
testAnnotationProcessor "org.projectlombok:lombok:${lombokVersion}"
104-
105102
// docker
106103
implementation "com.github.docker-java:docker-java:${dockerJavaVersion}"
107104

@@ -112,6 +109,12 @@ dependencies {
112109
testImplementation "org.awaitility:awaitility:4.2.0"
113110
}
114111

112+
java {
113+
toolchain {
114+
languageVersion.set(JavaLanguageVersion.of(11))
115+
}
116+
}
117+
115118
// ./gradlew build -Pdev
116119
def isDev = project.hasProperty('dev')
117120

@@ -124,6 +127,13 @@ springBoot {
124127
buildInfo()
125128
}
126129

130+
tasks.named("bootJar") {
131+
manifest {
132+
attributes("Implementation-Title": "iExec Worker",
133+
"Implementation-Version": project.version)
134+
}
135+
}
136+
127137
test {
128138
useJUnitPlatform {
129139
// Ignore slow tests in development
@@ -144,7 +154,7 @@ jacoco {
144154
// sonarqube code coverage requires jacoco XML report
145155
jacocoTestReport {
146156
reports {
147-
xml.enabled true
157+
xml.required = true
148158
}
149159
}
150160
tasks.test.finalizedBy tasks.jacocoTestReport
@@ -153,7 +163,7 @@ tasks.sonarqube.dependsOn tasks.jacocoTestReport
153163
publishing {
154164
publications {
155165
maven(MavenPublication) {
156-
artifact bootJar
166+
artifact tasks.named("bootJar")
157167
from components.java
158168
}
159169
}

gradle.properties

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
version=7.3.0
2-
iexecCommonVersion=6.1.0
3-
iexecBlockchainAdapterVersion=7.3.0
4-
iexecResultVersion=7.3.0
5-
iexecSmsVersion=7.3.0
1+
version=8.0.0
2+
iexecCommonVersion=7.0.0
3+
iexecBlockchainAdapterVersion=8.0.0
4+
iexecResultVersion=8.0.0
5+
iexecSmsVersion=8.0.0
66

77
nexusUser
88
nexusPassword

gradle/wrapper/gradle-wrapper.jar

2.32 KB
Binary file not shown.
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip
4+
networkTimeout=10000
45
zipStoreBase=GRADLE_USER_HOME
56
zipStorePath=wrapper/dists

0 commit comments

Comments
 (0)