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 # 👈 your custom image name 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