66 lines
1.6 KiB
YAML
66 lines
1.6 KiB
YAML
name: Build Resilient App
|
|
|
|
on:
|
|
push:
|
|
branches: [main, master, develop]
|
|
pull_request:
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: [docker]
|
|
|
|
container:
|
|
image: forgejo-custom-runner:latest
|
|
|
|
steps:
|
|
- name: Show working directory contents
|
|
run: ls -la
|
|
|
|
# Because I created a custom image with these dependencies installed, no need to keep them in the pipeline
|
|
# - name: Install system dependencies
|
|
# run: |
|
|
# apt-get update
|
|
# apt-get install -y nodejs npm openjdk-17-jdk maven git
|
|
# export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which javac))))
|
|
# echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
|
|
|
|
# node -v
|
|
# npm -v
|
|
# java -version
|
|
# mvn -version
|
|
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install frontend dependencies
|
|
run: |
|
|
cd src/main/webapp
|
|
npm ci
|
|
|
|
- name: Build frontend
|
|
run: |
|
|
cd src/main/webapp
|
|
npm run build
|
|
|
|
- name: Cache Maven dependencies
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: ~/.m2/repository
|
|
key: maven-${{ runner.os }}-${{ hashFiles('**/pom.xml') }}
|
|
restore-keys: |
|
|
maven-${{ runner.os }}-
|
|
|
|
- name: Build backend (Spring Boot)
|
|
run: |
|
|
mvn clean package -Pprod -DskipTests
|
|
|
|
- name: List output files
|
|
run: |
|
|
ls -lh target/*.jar || true
|
|
|
|
- name: Upload backend JAR
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: app-backend
|
|
path: target/resilient*.jar
|