diff --git a/.gitea/workflows/test.yml b/.gitea/workflows/test.yml index 135c2d1..3d10d27 100644 --- a/.gitea/workflows/test.yml +++ b/.gitea/workflows/test.yml @@ -81,3 +81,73 @@ jobs: working-directory: ./frontend run: yarn lint + backend-jobs: + name: Set up Java for Backend Tests and Build + runs-on: ubuntu-latest + + steps: + # Checkout repository first + - 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." + + - name: Set up Java 21 and Maven + run: | + if command -v act >/dev/null 2>&1; then + echo "Detected act runner, installing OpenJDK 21 via apt-get..." + sudo apt-get update + sudo apt-get install -y openjdk-21-jdk maven + else + echo "Detected GitHub runner, using actions/setup-java..." + fi + shell: bash + + - uses: actions/checkout@v5 + - name: Set up JDK 21 for x64 + uses: actions/setup-java@v4 + with: + java-version: '21' + distribution: 'oracle' + architecture: x64 + cache: maven + cache-dependency-path: 'pom.xml' # optional + + - name: Setup Java 21 (for act) + #if: ${{ runner.os == 'Linux' && env.ACT_RUNNER == 'true' }} + run: | + apt-get update -y + apt-get install -y openjdk-21-jdk + java -version + echo "Java 21 setup completed." + + - name: Set up Maven + uses: stCarolas/setup-maven@v5 + with: + maven-version: 3.9.9 + + - 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: Test & build backend + working-directory: ./src + run: | + echo "Started test & build backend..." + ls . + mvn clean + echo "Backend tests and build completed successfully." + # mvn clean verify package -B + + - name: Done + run: echo "Workflow successfully completed."