Skip to content

Testing: Just download base eclipse and create the artifact #417

Testing: Just download base eclipse and create the artifact

Testing: Just download base eclipse and create the artifact #417

Workflow file for this run

name: Build Eclipse eMoflon
on:
push:
# Run pipeline for commits on branch 'main' and on 'testing/<stuff>'
branches:
- main
- 'testing/**'
- 'feature/**'
- 'hotfix/**'
# Run pipeline for release tags
tags:
- 'v*.*.*'
schedule:
# Weekly builds on Monday morning 4:42
# Github doc:
# "The schedule event can be delayed during periods of high loads of GitHub Actions workflow runs.
# High load times include the start of every hour.
# To decrease the chance of delay, schedule your workflow to run at a different time of the hour."
# https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule
- cron: '42 4 * * 1'
env:
# Eclipse version to use in this CI
VERSION: "2024-03"
# emoflon-headless source URL (needed by macOS-based runner workaround)
EMOFLON_HEADLESS_SRC: "https://api.github.com/repos/eMoflon/emoflon-headless/releases/latest"
# import plugin URL
IMPORT_PLUGIN_SRC: "https://api.github.com/repos/maxkratz/eclipse-import-projects-plugin/releases/latest"
jobs:
# Get emoflon-headless updatesite release + eclipse import plugin artifacts
# This is necessary because some of the Github-hosted macOS-based runner
# did trigger the API rate limit from time to time.
collect-github-api-artifacts:
runs-on: [ubuntu-20.04]
steps:
- name: Find emoflon-headless updatesite
run: |
RESPONSE=$(curl -s $EMOFLON_HEADLESS_SRC)
echo "curl: $RESPONSE"
EMOFLON_HEADLESS_LATEST_UPDATESITE=$(echo "$RESPONSE" \
| grep "updatesite.*zip" \
| cut -d : -f 2,3 \
| tr -d \")
if [[ -z "${EMOFLON_HEADLESS_LATEST_UPDATESITE// }" ]]; then
log "This runner propably reached it's Github API rate limit. Exit."
exit 1
fi
wget -qi $EMOFLON_HEADLESS_LATEST_UPDATESITE
mv updatesite.zip emoflon-headless-updatesite.zip
- name: Find eclipse import plugin jar
run: |
RESPONSE=$(curl -s $IMPORT_PLUGIN_SRC)
echo "curl: $RESPONSE"
IMPORT_PLUGIN_LATEST_SRC=$(echo "$RESPONSE" \
| grep "/com.seeq.eclipse.importprojects*.*jar" \
| cut -d : -f 2,3 \
| tr -d \")
if [[ -z "${IMPORT_PLUGIN_LATEST_SRC// }" ]]; then
echo "This runner propably reached it's Github API rate limit. Exit."
exit 1
fi
echo "Found URL: $IMPORT_PLUGIN_LATEST_SRC"
wget "${IMPORT_PLUGIN_LATEST_SRC// }"
mv com.seeq.eclipse.importprojects*.jar com.seeq.eclipse.importprojects.jar
- name: Upload emoflon-headless updatesite artifact
uses: actions/upload-artifact@v4
with:
name: emoflon-headless-updatesite.zip
path: emoflon-headless-updatesite.zip
- name: Upload eclipse import plugin artifact
uses: actions/upload-artifact@v4
with:
name: com.seeq.eclipse.importprojects.jar
path: com.seeq.eclipse.importprojects.jar
# Create splash image
create-splash-image:
runs-on: [ubuntu-20.04]
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Start message
run: echo "Creating splash image for version $VERSION."
- name: Run splash creator script
run: chmod +x splash.sh && ./splash.sh img $VERSION null
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: splash.bmp
path: splash.bmp
# Build Eclipse eMoflon macOS dev HiPE
build-macos-dev-hipe:
needs: [create-splash-image, collect-github-api-artifacts]
runs-on: [macos-12]
steps:
# - name: Start message
# run: echo "Started CI build (Eclipse eMoflon macOS dev HiPE)."
- name: Install dependencies
run: |
brew install p7zip coreutils grep wget curl
- name: Check out repository code
uses: actions/checkout@v4
# - name: Download splash image
# uses: actions/download-artifact@v4
# with:
# name: splash.bmp
# - name: Download emoflon-headless updatesite
# uses: actions/download-artifact@v4
# with:
# name: emoflon-headless-updatesite.zip
# - name: Move emoflon-headless updatesite
# run: |
# mkdir -p ./tmp/emoflon-headless
# mv emoflon-headless-updatesite.zip ./tmp/emoflon-headless/updatesite.zip
# - name: Download Eclipse import plugin JAR
# uses: actions/download-artifact@v4
# with:
# name: com.seeq.eclipse.importprojects.jar
- name: Run build script
run: chmod +x build.sh && ./build.sh -m hipedev -o macos
# - name: Fix permissions
# run: sudo xattr -cr ./eclipse/Eclipse.app
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: eclipse-emoflon-macos-dev-hipe
path: eclipse-emoflon-macos-dev-hipe.zip