Skip to content

Commit dd9679c

Browse files
committed
try to add bundle build
1 parent 04a925d commit dd9679c

File tree

1 file changed

+85
-58
lines changed

1 file changed

+85
-58
lines changed

.github/workflows/build.yml

Lines changed: 85 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,96 @@
1-
name: Build and Release Snapshot
1+
name: Build and Release
22

33
on:
44
push:
55
branches:
66
- master
7+
tags:
8+
- 'hortonmachine-*' # any tag starting with v, e.g. v0.10.11
79

810
jobs:
9-
build-and-release:
11+
# ---- SNAPSHOT BUILD ----
12+
snapshot:
13+
if: github.ref == 'refs/heads/master'
1014
runs-on: ubuntu-latest
15+
steps:
16+
- name: Checkout code
17+
uses: actions/checkout@v3
1118

12-
if: github.ref == 'refs/heads/master'
19+
- name: Setup Java
20+
uses: actions/setup-java@v4
21+
with:
22+
distribution: 'temurin'
23+
java-version: '17'
24+
cache: 'maven'
25+
server-id: ossrh
26+
server-username: MAVEN_USERNAME
27+
server-password: MAVEN_PASSWORD
28+
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
29+
gpg-passphrase: MAVEN_GPG_PASSPHRASE
30+
31+
- name: Run Tests
32+
run: mvn -U clean verify
33+
34+
- name: Build and Deploy Snapshot
35+
run: mvn -U deploy -DskipTests=true -P release -Dmaven.javadoc.skip=true -Dgpg.skip=false
36+
env:
37+
MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
38+
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
39+
MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
1340

41+
# ---- RELEASE BUNDLE ----
42+
release-bundle:
43+
if: startsWith(github.ref, 'refs/tags/')
44+
runs-on: ubuntu-latest
1445
steps:
15-
- name: Checkout code
16-
uses: actions/checkout@v3
17-
18-
- name: Setup Java
19-
uses: actions/setup-java@v4
20-
with:
21-
distribution: 'temurin'
22-
java-version: '17'
23-
cache: 'maven'
24-
server-id: ossrh
25-
server-username: MAVEN_USERNAME
26-
server-password: MAVEN_PASSWORD
27-
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
28-
gpg-passphrase: MAVEN_GPG_PASSPHRASE
29-
30-
- name: Run Tests
31-
run: |
32-
mvn clean verify
33-
34-
# - id: install-secret-key
35-
# name: Install gpg secret key
36-
# run: |
37-
# # Install gpg secret key
38-
# cat <(echo -e "${{ secrets.GPG_PRIVATE_KEY }}") | gpg --batch --import
39-
# # Verify gpg secret key
40-
# gpg --list-secret-keys --keyid-format LONG
41-
42-
- name: Build and Deploy Snapshot
43-
run: |
44-
mvn deploy -DskipTests=true -P release -Dmaven.javadoc.skip=true -Dgpg.skip=false
45-
env:
46-
MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
47-
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
48-
MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
49-
50-
# build-and-test:
51-
# runs-on: ubuntu-22.04
52-
53-
# steps:
54-
# - name: Checkout code
55-
# uses: actions/checkout@v3
56-
57-
# - name: Setup Java
58-
# uses: actions/setup-java@v3
59-
# with:
60-
# distribution: 'temurin'
61-
# java-version: '11'
62-
# cache: 'maven'
63-
64-
# - name: Build and Test Branch
65-
# run: |
66-
# mvn --no-transfer-progress \
67-
# --batch-mode \
68-
# clean install \
69-
# -Dmaven.javadoc.skip=true
46+
- name: Checkout code
47+
uses: actions/checkout@v3
48+
49+
- name: Setup Java
50+
uses: actions/setup-java@v4
51+
with:
52+
distribution: 'temurin'
53+
java-version: '17'
54+
cache: 'maven'
55+
56+
- name: Resolve project version
57+
id: ver
58+
run: echo "VERSION=$(mvn -q -DforceStdout help:evaluate -Dexpression=project.version)" >> "$GITHUB_OUTPUT"
59+
60+
- name: Build project (skip tests + javadoc)
61+
run: mvn -U clean install -DskipTests -Dmaven.javadoc.skip=true
62+
63+
- name: Assemble tar.gz bundle
64+
run: |
65+
set -euxo pipefail
66+
VERSION="${{ steps.ver.outputs.VERSION }}"
67+
TMPLIBS="./extras/export/libs"
68+
DEPLOY="./extras/deploy"
69+
RELEASE_DIR="${DEPLOY}/hortonmachine_${VERSION}"
70+
71+
rm -rf "${TMPLIBS}" "${DEPLOY}/libs" "${RELEASE_DIR}" "${DEPLOY}/hortonmachine_${VERSION}.tar.gz"
72+
mkdir -p "${RELEASE_DIR}"
73+
74+
cp ./apps/target/hm-apps-*.jar "${TMPLIBS}"
75+
76+
rm -f ${TMPLIBS}/junit*.jar || true
77+
rm -f ${TMPLIBS}/log4j-*.jar || true
78+
rm -f ${TMPLIBS}/*-sources.jar || true
79+
80+
mv "${TMPLIBS}" "${RELEASE_DIR}/libs"
81+
82+
cp -rv ${DEPLOY}/*.sh ${DEPLOY}/*.exe ${DEPLOY}/*.bat ${DEPLOY}/imgs ${DEPLOY}/natives ${DEPLOY}/quiet-logging.properties "${RELEASE_DIR}"
83+
84+
tar -C "${DEPLOY}" -zcvf "${DEPLOY}/hortonmachine_${VERSION}.tar.gz" "hortonmachine_${VERSION}"
85+
86+
- name: Upload bundle artifact
87+
uses: actions/upload-artifact@v4
88+
with:
89+
name: hortonmachine-${{ steps.ver.outputs.VERSION }}-bundle
90+
path: extras/deploy/hortonmachine_${{ steps.ver.outputs.VERSION }}.tar.gz
91+
92+
- name: Attach bundle to GitHub Release
93+
uses: softprops/action-gh-release@v2
94+
with:
95+
files: extras/deploy/hortonmachine_${{ steps.ver.outputs.VERSION }}.tar.gz
96+

0 commit comments

Comments
 (0)