Skip to content

Merge branch 'main' of https://github.com/open4good/open4goods.git in… #825

Merge branch 'main' of https://github.com/open4good/open4goods.git in…

Merge branch 'main' of https://github.com/open4good/open4goods.git in… #825

on:
push:
branches:
- 'main'
name: 🔘 Beta - Build, Test, and Publish
jobs:
deploy:
name: Beta Test, Build, and Publish
runs-on: self-hosted
steps:
############################################
# Cache Maven Dependencies
###########################################
- name: Cache Maven Dependencies
id: cache-maven
uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
############################################
# Set up JDK 21
###########################################
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'
cache: 'maven' # Uses the cache-maven step
############################################
# Set up Maven Repositories
###########################################
- name: Set up Maven Repositories
uses: s4u/[email protected]
with:
repositories: |
[
{
"id": "xwiki-releases",
"name": "xwiki-releases",
"url": "https://maven.xwiki.org/releases/",
"snapshots": {
"enabled": false
}
},
{
"id": "spring-snapshots",
"name": "spring-snapshots",
"url": "https://repo.spring.io/snapshot",
"snapshots": {
"enabled": true
}
},
{
"id": "linkedin",
"name": "linkedin",
"url": "https://linkedin.jfrog.io/artifactory/open-source/",
"snapshots": {
"enabled": false
}
}
]
############################################
# Checkout and Build xwiki-springboot-starter
###########################################
- name: Checkout xwiki-springboot-starter
uses: actions/checkout@v4
with:
repository: 'open4good/xwiki-spring-boot-starter'
- name: Build and Test xwiki-springboot-starter
working-directory: ./xwiki-spring-boot-starter
run: mvn --batch-mode --update-snapshots install
############################################
# Checkout the Main Repository
###########################################
- name: Checkout Repository
uses: actions/checkout@v4
############################################
# TODO 2 Issue
###########################################
- name: "TODO2Issue"
uses: "alstr/todo-to-issue-action@v5"
with:
IDENTIFIERS: '[{"name": "ISSUE", "labels": ["codeTodo"]}]'
############################################
# Maven Dependency Tree Submission
###########################################
- name: Maven Dependency Submission
uses: advanced-security/[email protected]
############################################
# Build and Test with Maven
###########################################
- name: Build and Test with Maven
run: mvn --batch-mode --update-snapshots install
############################################
# Deploy JAR Files to Qualification Environment
###########################################
- name: Deploy SBADMIN to Qualification Server
uses: easingthemes/ssh-deploy@main
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
ARGS: "-rltgoDzvO --delete"
SOURCE: "/admin/target/admin-0.0.1-SNAPSHOT.jar"
REMOTE_HOST: ${{ secrets.REMOTE_BETA_HOST }}
REMOTE_USER: ${{ secrets.REMOTE_BETA_USER }}
TARGET: "/opt/open4goods/bin/latest/sbadmin-latest.jar"
- name: Deploy API to Qualification Server
uses: easingthemes/ssh-deploy@main
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
ARGS: "-rltgoDzvO --delete"
SOURCE: "/api/target/api-0.0.1-SNAPSHOT.jar"
REMOTE_HOST: ${{ secrets.REMOTE_BETA_HOST }}
REMOTE_USER: ${{ secrets.REMOTE_BETA_USER }}
TARGET: "/opt/open4goods/bin/latest/api-latest.jar"
- name: Deploy UI to Qualification Server
uses: easingthemes/ssh-deploy@main
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
ARGS: "-rltgoDzvO --delete"
SOURCE: "/ui/target/ui-0.0.1-SNAPSHOT.jar"
REMOTE_HOST: ${{ secrets.REMOTE_BETA_HOST }}
REMOTE_USER: ${{ secrets.REMOTE_BETA_USER }}
TARGET: "/opt/open4goods/bin/latest/ui-latest.jar"
############################################
# Restarting Application
###########################################
- name: Publish Applications
uses: appleboy/[email protected]
with:
host: ${{ secrets.REMOTE_BETA_HOST }}
username: ${{ secrets.REMOTE_BETA_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY}}
script: sh /opt/open4goods/bin/publish-jars.sh beta