Files
my-app/.gitea/workflows/demo.yaml
Patrick 79e0160e50
Some checks failed
checks / Set up Node and other necessary dependencies for Frontend Tests and Build (push) Successful in 11s
checks / Set up Java for Backend Tests and Build (push) Failing after 12s
Gitea Actions Demo / Explore-Gitea-Actions-2 (pull_request) Successful in 3s
checks / Set up Node and other necessary dependencies for Frontend Tests and Build (pull_request) Successful in 10s
checks / Set up Java for Backend Tests and Build (pull_request) Failing after 13s
ma jdk
2025-10-31 15:09:07 +01:00

138 lines
4.6 KiB
YAML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: checks
on:
push:
pull_request:
jobs:
frontend-jobs:
name: Set up Node and other necessary dependencies for Frontend Tests and Build
runs-on: ubuntu-latest
steps:
- name: Info
run: |
echo "Triggered by ${{ gitea.event_name }} event"
echo "Branch: ${{ gitea.ref }}"
echo "Repository: ${{ gitea.repository }}"
- name: Install Node.js, npm, and Yarn (optimized)
run: |
set -e
echo "Preparing Node.js, npm, and Yarn setup..."
if command -v apt >/dev/null 2>&1; then
echo "→ Using apt (Debian/Ubuntu)..."
export DEBIAN_FRONTEND=noninteractive
apt-get update -qq >/dev/null
apt-get install -y -qq curl ca-certificates >/dev/null
curl -fsSL https://deb.nodesource.com/setup_20.x | bash - >/dev/null 2>&1
apt-get install -y -qq nodejs >/dev/null
npm install -g yarn --silent
elif command -v apk >/dev/null 2>&1; then
echo "→ Using apk (Alpine)..."
apk add --no-cache curl nodejs npm >/dev/null
npm install -g yarn --silent
elif command -v dnf >/dev/null 2>&1; then
echo "→ Using dnf (Fedora/RHEL)..."
dnf install -y -q curl ca-certificates nodejs npm >/dev/null
npm install -g yarn --silent
else
echo "No supported package manager found (apt, apk, dnf)."
exit 1
fi
echo "Node.js, npm, and Yarn installed successfully:"
node -v
npm -v
yarn -v
- name: Checkout repository manually
env:
TOKEN: ${{ secrets.ACCESS_TOKEN }}
CLONE_URL: ${{ vars.CLONE_URL }}
run: |
echo "Cloning from $CLONE_URL"
echo "Cloning ALL_REPO_TOKEN $ALL_REPO_TOKEN"
CLONE_URL_WITH_AUTH=$(echo "$CLONE_URL" | sed "s#https://#https://$ALL_REPO_TOKEN@#")
git clone --quiet "$CLONE_URL_WITH_AUTH" .
echo "${{ gitea.repository }} cloned successfully."
# Install frontend dependencies and run tests
- name: Install frontend dependencies and run tests
#uses: actions/cache@v3
working-directory: ./frontend
with:
path: |
~/.yarn/cache
./node_modules
key: frontend-${{ runner.os }}-yarn-${{ hashFiles('frontend/yarn.lock') }}
restore-keys: |
frontend-${{ runner.os }}-yarn-
run: |
yarn install --frozen-lockfile
#yarn test --watchAll=false --ci
#Check frontend linting
- name: Check frontend linting
working-directory: ./frontend
run: yarn lint
backend-jobs:
name: Set up Java for Backend Tests and Build
runs-on: ubuntu-latest
#container:
#image: eclipse-temurin:21-jdk
steps:
# Checkout repository
- name: Checkout repository manually
env:
TOKEN: ${{ secrets.ACCESS_TOKEN }}
CLONE_URL: ${{ vars.CLONE_URL }}
run: |
CLONE_URL_WITH_AUTH=$(echo "$CLONE_URL" | sed "s#https://#https://$TOKEN@#")
git clone --quiet "$CLONE_URL_WITH_AUTH" .
echo "Repository cloned successfully."
# Install Maven manually
- name: Checkout code
uses: actions/checkout@v4
# 1⃣ Download OpenJDK 21 (example source URL)
- name: Download OpenJDK 21
run: |
download_url="https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz"
wget -O $RUNNER_TEMP/java_package.tar.gz $download_url
# 2⃣ Setup Java from local JDK file
- name: Set up OpenJDK 21
uses: actions/setup-java@v5
with:
distribution: 'jdkfile' # Use locally downloaded JDK
jdkFile: ${{ runner.temp }}/java_package.tar.gz
java-version: '21'
architecture: x64
mvn-toolchain-vendor: 'Oracle'
cache: 'maven' # Enable Maven dependency caching
# 3⃣ Verify Java installation
- name: Verify Java setup
run: |
java -version
echo "JAVA_HOME=$JAVA_HOME"
# 4⃣ Build and test with Maven
- name: Build with Maven
run: mvn -B verify
# Run backend tests and build
- name: Test & build backend
working-directory: ./src
run: mvn clean verify -B
- name: Done
run: echo "Workflow successfully completed."