-
Notifications
You must be signed in to change notification settings - Fork 36
106 lines (89 loc) · 3.58 KB
/
publish.yml
File metadata and controls
106 lines (89 loc) · 3.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
name: Publish meta-model Eclipse Plugins to GitHub Packages
on:
pull_request:
push:
branches:
- "**"
paths:
- "releng/jar-for-github-publish/**"
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
packages: write
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
steps:
# ------------------------------
# Checkout
# ------------------------------
- name: Checkout code
uses: actions/checkout@v4
# ------------------------------
# Setup Java & Maven
# ------------------------------
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17
cache: maven
# ------------------------------
# Install all Eclipse-plugin JARs locally
# ------------------------------
- name: Install all plugin JARs into local Maven repo
run: |
cd releng/jar-for-github-publish
mkdir -p local-maven-repo
install_jars() {
GROUP_ID="$1"
JAR_PATHS="$2"
for jar_path in $JAR_PATHS; do
echo "Installing $jar_path"
ARTIFACT_ID=$(basename "$jar_path" | sed 's/_.*//')
VERSION=$(basename "$jar_path" | sed -n 's/.*_\([0-9]\+\.[0-9]\+\.[0-9]\+\).*/\1/p')
mvn install:install-file \
-Dfile="$jar_path" \
-DgroupId="$GROUP_ID" \
-DartifactId="$ARTIFACT_ID" \
-Dversion="$VERSION" \
-Dpackaging=jar \
-DgeneratePom=true \
-DlocalRepositoryPath=local-maven-repo
done
}
ENTITY_JAR_PATHS=$(ls | grep -E ".*(org.obeonetwork.dsl.environment_|org.obeonetwork.dsl.environment.edit_)")
install_jars org.obeonetwork.dsl "$ENTITY_JAR_PATHS"
ENTITY_JAR_PATHS=$(ls | grep -E ".*(org.obeonetwork.dsl.entity_|org.obeonetwork.dsl.entity.edit_)")
install_jars org.obeonetwork.dsl "$ENTITY_JAR_PATHS"
ENTITY_JAR_PATHS=$(ls | grep -E ".*(org.obeonetwork.dsl.technicalid_|org.obeonetwork.dsl.technicalid.edit_)")
install_jars org.obeonetwork.dsl "$ENTITY_JAR_PATHS"
ENTITY_JAR_PATHS=$(ls | grep -E ".*net4j.util_")
install_jars org.eclipse.net4j.util "$ENTITY_JAR_PATHS"
ENTITY_JAR_PATHS=$(ls | grep -E ".*(cdo_|cdo.common_)")
install_jars org.eclipse.emf.cdo "$ENTITY_JAR_PATHS"
# ------------------------------
# Publish to GitHub Packages
# ------------------------------
- name: Deploy all installed artifacts to GitHub Packages
env:
GITHUB_USER: ${{ github.actor }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
cd releng/jar-for-github-publish
for pom in $(find local-maven-repo -name "*.pom"); do
echo "Found POM: $pom"
ARTIFACT_DIR=$(dirname "$pom")
FILE_JAR=$(ls "$ARTIFACT_DIR"/*.jar | head -n 1)
echo "Found JAR: $FILE_JAR"
mvn deploy:deploy-file \
-DrepositoryId=github \
-Durl="https://maven.pkg.github.com/${{ github.repository }}" \
-Dfile="$FILE_JAR" \
-DpomFile="$pom" \
-Dpackaging=jar \
-DgeneratePom=false \
-Dtoken=${{ secrets.GITHUB_TOKEN }}
done