2024-02-24 20:23:06 +01:00

72 lines
2.0 KiB
YAML

name: SharePulse Build
on:
push:
branches:
- '**'
jobs:
build-jar:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v2
with:
java-version: '21'
distribution: 'adopt'
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 'node' # Use latest version
npm-version: 'latest'
- name: Build frontend
run: |
cd frontend
npm install
npm run build
cd ..
- name: Grant execute permission for gradlew
run: chmod +x ./gradlew
- name: Build .jar with Gradle
run: ./gradlew clean bootJar
- name: Upload Artifact
uses: actions/upload-artifact@v3
with:
name: jar-artifact
path: build/libs/*.jar
build-docker-image:
needs: build-jar
runs-on: ubuntu-22.04
steps:
- name: Initialize Docker runtime
run: |
apt-get update
apt-get install ca-certificates curl gnupg lsb-release -y
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin -y
- name: Checkout
uses: actions/checkout@v4
- name: Download Artifact
uses: actions/download-artifact@v3
with:
name: jar-artifact
path: build/libs
- name: Build Docker Image
run: docker build . -t sharepulse:latest