emoflon / emoflon-ibex-eclipse-build Goto Github PK
View Code? Open in Web Editor NEWCI and build scripts for eMoflon::IBeX Eclipse installations.
Home Page: https://emoflon.org
License: GNU General Public License v3.0
CI and build scripts for eMoflon::IBeX Eclipse installations.
Home Page: https://emoflon.org
License: GNU General Public License v3.0
The group has to be removed here: https://github.com/maxkratz/emoflon-eclipse-build/blob/main/packages/emoflon-packages.list
Currently, there is a Github UI limitation that does not allow the download of individual artifact files from a Github Action run.
actions/upload-artifacts@v2
uploads a single zip file (that our build script generated in the run).Related:
Currently, this project uses com.seeq.eclipse.importprojects
in version v1.4.0. Version v2.0.0 introduced breaking changes to the API: https://github.com/seeq12/eclipse-import-projects-plugin#breaking-changes-with-200
Version v2.0.0 is also available as JAR build here https://github.com/maxkratz/eclipse-import-projects-plugin/releases/tag/v2.0.0
If we decide to kick VIATRA from eMoflon completely, we have to remove it from the build process of this project:
Cannot complete the install because one or more required items could not be found.
Software being installed: MWE2 Launcher 2.14.0.v20221117-1134 (org.eclipse.emf.mwe2.launcher.feature.group 2.14.0.v20221117-1134)
Missing requirement: MWE2 Launcher 2.14.0.v20221117-1134 (org.eclipse.emf.mwe2.launcher.feature.group 2.14.0.v20221117-1134) requires 'org.eclipse.equinox.p2.iu; org.eclipse.xtext 2.29.0' but it could not be found
https://github.com/eMoflon/emoflon-ibex-eclipse-build/actions/runs/3511564481/jobs/5882457122
# Install com.seeq.eclipse.importprojects (by hand because there is no update site)
# https://github.com/seeq12/eclipse-import-projects-plugin/raw/master/jar/com.seeq.eclipse.importprojects_1.4.0.jar
wget -P eclipse/plugins https://github.com/seeq12/eclipse-import-projects-plugin/raw/master/jar/com.seeq.eclipse.importprojects_1.4.0.jar
Warnings to resolve, e.g., taken from here: https://github.com/eMoflon/emoflon-eclipse-build/actions/runs/3233212005
collect-github-api-artifacts
Node.js 12 actions are deprecated. For more information see: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/. Please update the following actions to use Node.js 16: actions/upload-artifact, actions/upload-artifact
create-splash-image
Node.js 12 actions are deprecated. For more information see: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/. Please update the following actions to use Node.js 16: actions/checkout, actions/upload-artifact, actions/checkout
create-splash-image
The save-state
command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
create-splash-image
The save-state
command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
create-splash-image
The save-state
command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Somehow, the "Darkest Darktheme" or some of its packages crashes if the built Eclipse (Linux) has to start headless without a desktop environment.
Possible solution: Build version(s) without the dark theme for CI builds etc.
!ENTRY com.genuitec.eclipse.theming.core 4 0 2022-01-14 17:30:29.148
!MESSAGE <null>
!STACK 0
Unexpected token RIGHT SQUARE(]) at position 0.
at org.json.simple.parser.JSONParser.parse(JSONParser.java:257)
at org.json.simple.parser.JSONParser.parse(JSONParser.java:92)
at com.genuitec.eclipse.theming.core.services.ImageReplacementService.loadUnknownImages(ImageReplacementService.java:91)
at com.genuitec.eclipse.theming.core.services.ImageReplacementService.<init>(ImageReplacementService.java:74)
at com.genuitec.eclipse.theming.core.services.ImageReplacementService.<clinit>(ImageReplacementService.java:38)
at com.genuitec.eclipse.theming.core.internal.images.URLImageDescriptorWeaver.weave(URLImageDescriptorWeaver.java:23)
at com.genuitec.eclipse.theming.core.AbstractWeaverExtension.weave(AbstractWeaverExtension.java:51)
at com.genuitec.eclipse.patches.internal.InstrumentationManager$WeavingExtension.weave(InstrumentationManager.java:429)
at com.genuitec.eclipse.patches.internal.InstrumentationManager.weave(InstrumentationManager.java:332)
at com.genuitec.eclipse.patches.internal.InstrumentationWeaver.weave(InstrumentationWeaver.java:15)
at org.eclipse.osgi.internal.weaving.WovenClassImpl.call(WovenClassImpl.java:187)
at org.eclipse.osgi.internal.weaving.WovenClassImpl.call(WovenClassImpl.java:1)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHookPrivileged(ServiceRegistry.java:1321)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHooksPrivileged(ServiceRegistry.java:1294)
at org.eclipse.osgi.internal.weaving.WovenClassImpl.callHooks(WovenClassImpl.java:249)
at org.eclipse.osgi.internal.weaving.WeavingHookConfigurator.processClass(WeavingHookConfigurator.java:80)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.processClass(ClasspathManager.java:735)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.defineClass(ClasspathManager.java:706)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findClassImpl(ClasspathManager.java:639)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:607)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:587)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:566)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:335)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:384)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:475)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:403)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:168)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
at org.eclipse.ui.internal.BrandingProperties.getImages(BrandingProperties.java:115)
at org.eclipse.ui.internal.ProductProperties.getWindowImages(ProductProperties.java:310)
at org.eclipse.ui.internal.ProductInfo.getWindowImages(ProductInfo.java:100)
at org.eclipse.ui.internal.WorkbenchPlugin.getWindowImages(WorkbenchPlugin.java:1031)
at org.eclipse.ui.internal.Workbench.initializeImages(Workbench.java:1795)
at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:753)
at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:168)
at org.eclipse.ui.internal.ide.application.IDEApplication.createDisplay(IDEApplication.java:182)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:125)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
at org.eclipse.equinox.launcher.Main.main(Main.java:1440)
Currently, this project stores the exported as Github Action artifacts. For easier use in other pipelines, the ZIP files should be attached to releases.
For example: "eclipse-emoflon-linux-dev.zip" -> "eclipse-2021-12-emoflon-linux-dev.zip"
Currently, the Eclipse PMD plugin is incompatible with Eclipse Modeling Tools 2022-12 R. (I've opened an issue at their repository: pmd/pmd-eclipse-plugin#168)
To resolve this, the merging of #70 will remove it from the build.
(See commit b52cefa.)
Once the dependency issue with the PMD plugin is resolved, we should add it back to the additional plugins in this build. (A revert of b52cefa should be enough!)
See #44 (comment).
Currently, the custom Eclipse settings (e.g., UTF-8, Git workspace path) do not work in macOS-based versions.
org.eclipse.emf.examples.generator.validator
is missing
Currently, the latest release (https://github.com/eMoflon/emoflon-ibex-eclipse-build/releases/tag/v1.0.0.202309111048) of this Eclipse build is broken.
When trying to start a runtime Eclipse, the following (validation) error message occurs:
Since this not an error of this specific Eclipse build, i.e., it also happens when using the latest Eclipse Modeling 2023-06 build and installing Xtext v2.32.0 manually, I created an upstream issue: eclipse/xtext#2800
org.eclipse.collections
is missing
... update site to be created.
To resolve #15, I had to add three dependencies to the package install list:
org.eclipse.emf.mwe2.launcher.feature.group
org.eclipse.emf.mwe2.runtime.sdk.feature.group
org.eclipse.emf.mwe2.language.sdk.feature.group
Unfortunately, there was a dependency problem:
Cannot complete the install because one or more required items could not be found.
Software being installed: MWE2 Launcher 2.12.2.v20220118-1914 (org.eclipse.emf.mwe2.launcher.feature.group 2.12.2.v20220118-1914)
Missing requirement: MWE2 Launcher 2.12.2.v20220118-1914 (org.eclipse.emf.mwe2.launcher.feature.group 2.12.2.v20220118-1914) requires 'org.eclipse.equinox.p2.iu; org.eclipse.xtext 2.26.0' but it could not be found
To solve this issue, I've hard-coded the versions of the three features:
org.eclipse.emf.mwe2.launcher.feature.group/2.12.1.v20210218-2134
org.eclipse.emf.mwe2.runtime.sdk.feature.group/2.12.1.v20210218-2134
org.eclipse.emf.mwe2.language.sdk.feature.group/2.12.1.v20210218-2134
(See: #25)
This "fix" is only necessary until xtext v2.26.0 will be released (or the dependency to v2.26.0 will be removed from MWE2 launcher). After said release, the hard-coded version value should be removed from the list.
Currently blocked by the integration of the new GT and TGG languages.
Add a variant without HiPE -> for Windows + Linux (dev)
Create and add an update script for the whole Eclipse directory/archive.
Can be reproduced with the eMoflon-VM.
... but all "depending" projects (https://github.com/eMoflon/emoflon-vm, scripts, website, ...) have to be updated.
As already mentioned on various issues, brew update
currently breaks the macOS-based CI jobs. See:
There is a limitation with Github Actions self-hosted runners: They can only run one job concurrently.
Currently, our build-jobs do not depend on each other. Unfortunately, the build time is much higher than necessary because of the runner limitation.
Possible solutions to solve this:
user
package, upload it and then install the eMoflon packages (hence, create the dev
version)See #44 (comment).
Currently, the Eclipse.app
(macOS-based version) isn't directly runnable after downloading it.
Workaround:
Eclipse.app
.sudo xattr -cr ./Eclipse.app
Currently, all builds are missing the MWE2 dependencies of eMoflon. This should be solved by merging this: eMoflon/emoflon-ibex-deployment#1
... like eclemma, pmd, checkstyle
Low priority, but nice to have.
Apparently, newer macOS versions show an error that the downloaded Eclipse.app
is broken (which it is not).
This seems to be a workaround:
Eclipse.app
xattr -d com.apple.quarantine Eclipse.app
Eclipse.app
should now start with a normal double clickIt would be nicer if the version could be found dynamically.
Possible solution:
JDK_VERSION_INSTALLED
.JDK_´VERSION_INSTALLED
.Examples:
${workspace}/git
Depends on: eMoflon/emoflon-ibex#411
https://github.com/eMoflon/emoflon-headless: There will probably be a bugfix to change the antJarBuilder
from extract to package mode.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.