Files
my-app/.gitea/workflows/demo.yaml
Patrick 014c6f01a4
Some checks failed
checks / Set up Node and other necessary dependencies for Frontend Tests and Build (push) Successful in 10s
checks / Set up Java for Backend Tests and Build (push) Failing after 13s
Gitea Actions Demo / Explore-Gitea-Actions-2 (pull_request) Successful in 2s
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 12s
ma jdk ch
2025-10-31 15:29:47 +01:00

127 lines
4.3 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:
# 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: Download and extract 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
mkdir -p $RUNNER_TEMP/jdk
tar -xzf $RUNNER_TEMP/java_package.tar.gz -C $RUNNER_TEMP/jdk --strip-components=1
echo "JAVA_HOME=$RUNNER_TEMP/jdk" >> $GITHUB_ENV
echo "$RUNNER_TEMP/jdk/bin" >> $GITHUB_PATH
# 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."