From 39b42d9067c16f3ec0d27774d2da578f8bb35c4b Mon Sep 17 00:00:00 2001 From: "Jeroen Baten [NIPV]" Date: Tue, 11 Nov 2025 12:02:44 +0100 Subject: [PATCH 1/6] Testing Forgejo actions --- .forgejo/workflows/ubuntu_24.04.yml | 53 +++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 .forgejo/workflows/ubuntu_24.04.yml diff --git a/.forgejo/workflows/ubuntu_24.04.yml b/.forgejo/workflows/ubuntu_24.04.yml new file mode 100644 index 000000000..e346673f2 --- /dev/null +++ b/.forgejo/workflows/ubuntu_24.04.yml @@ -0,0 +1,53 @@ +# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time +# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven + +name: Ubuntu 24.04 (Noble Numbat) + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +jobs: + build: + + runs-on: docker + container: + image: ubuntu:24.04 + + services: + postgres: + image: postgres:16.0 + env: + POSTGRES_USER: libreplan + POSTGRES_PASSWORD: libreplan + ports: + - 5432:5432 + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + steps: + - uses: actions/checkout@v3 + + - name: Create libreplandev database + uses: akanieski/setup-postgres-cli@v0.1.2 + with: + commands: PGPASSWORD=libreplan psql -U libreplan -h postgres -p 5432 -c "CREATE DATABASE libreplandev;" + + - name: Create libreplandevtest database + uses: akanieski/setup-postgres-cli@v0.1.2 + with: + commands: PGPASSWORD=libreplan psql -U libreplan -h postgres -p 5432 -c "CREATE DATABASE libreplandevtest;" + + - name: Set up JDK 8 + uses: actions/setup-java@v3 + with: + java-version: '8' + distribution: 'temurin' + cache: maven + + - name: Build with Maven + run: mvn -Ddefault.passwordsControl=false -Ddefault.exampleUsersDisabled=false clean install From c6e406a3cf60737fbefc69db042d35341031a50a Mon Sep 17 00:00:00 2001 From: "Jeroen Baten [NIPV]" Date: Tue, 11 Nov 2025 12:08:41 +0100 Subject: [PATCH 2/6] Edit --- .forgejo/workflows/ubuntu_24.04.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/ubuntu_24.04.yml b/.forgejo/workflows/ubuntu_24.04.yml index e346673f2..0161aa77d 100644 --- a/.forgejo/workflows/ubuntu_24.04.yml +++ b/.forgejo/workflows/ubuntu_24.04.yml @@ -13,8 +13,8 @@ jobs: build: runs-on: docker - container: - image: ubuntu:24.04 + container: + image: ubuntu:24.04 services: postgres: From 96e0c8e7f8b7ccd15d6249f0eef25f2e634f67ab Mon Sep 17 00:00:00 2001 From: "Jeroen Baten [NIPV]" Date: Tue, 11 Nov 2025 14:42:04 +0100 Subject: [PATCH 3/6] testing 1 --- .forgejo/workflows/ubuntu_24.04.yml | 87 ++++++++++++++++++++++++----- 1 file changed, 73 insertions(+), 14 deletions(-) diff --git a/.forgejo/workflows/ubuntu_24.04.yml b/.forgejo/workflows/ubuntu_24.04.yml index 0161aa77d..071a2f7d8 100644 --- a/.forgejo/workflows/ubuntu_24.04.yml +++ b/.forgejo/workflows/ubuntu_24.04.yml @@ -22,6 +22,7 @@ jobs: env: POSTGRES_USER: libreplan POSTGRES_PASSWORD: libreplan + POSTGRES_DB: libreplandev ports: - 5432:5432 options: >- @@ -29,25 +30,83 @@ jobs: --health-interval 10s --health-timeout 5s --health-retries 5 + steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - name: Create libreplandev database - uses: akanieski/setup-postgres-cli@v0.1.2 - with: - commands: PGPASSWORD=libreplan psql -U libreplan -h postgres -p 5432 -c "CREATE DATABASE libreplandev;" + - name: Install psql client + run: | + apt-get update + apt-get install -y postgresql-client + - name: Show Postgres info (debug) + env: + PGPASSWORD: ${{ secrets.PG_PASSWORD }} + run: | + psql -h postgres -U libreplan -d libreplandev -c "SELECT version();" + psql -h postgres -U libreplan -d libreplandev -c "SELECT current_database(), current_user;" + +# - name: Create libreplandev database +# uses: akanieski/setup-postgres-cli@v0.1.2 +# with: +# commands: PGPASSWORD=libreplan psql -U libreplan -h postgres -p 5432 -c "CREATE DATABASE libreplandev;" + +# - name: Create libreplandevtest database +# uses: akanieski/setup-postgres-cli@v0.1.2 +# with: +# commands: PGPASSWORD=libreplan psql -U libreplan -h postgres -p 5432 -c "CREATE DATABASE libreplandevtest;" + + # ▶️ Voorbeeld 1: extra database expliciet aanmaken - name: Create libreplandevtest database - uses: akanieski/setup-postgres-cli@v0.1.2 - with: - commands: PGPASSWORD=libreplan psql -U libreplan -h postgres -p 5432 -c "CREATE DATABASE libreplandevtest;" + env: + PGPASSWORD: ${{ secrets.PG_PASSWORD }} + run: | + psql -h postgres -U libreplan -d postgres -v ON_ERROR_STOP=1 -c "CREATE DATABASE libreplandevtest;" - - name: Set up JDK 8 - uses: actions/setup-java@v3 - with: - java-version: '8' - distribution: 'temurin' - cache: maven +# # ▶️ Voorbeeld 2: schema/rollen in je default DB aanmaken +# - name: Create schema and role +# env: +# PGPASSWORD: ${{ secrets.PG_PASSWORD }} +# run: | +# psql -h postgres -U libreplan -d libreplandev -v ON_ERROR_STOP=1 <<'SQL' +# DO $$ +# BEGIN +# IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = 'appuser') THEN +# CREATE ROLE appuser LOGIN PASSWORD 'appuserpass'; +# END IF; +# END $$; +# CREATE SCHEMA IF NOT EXISTS app AUTHORIZATION ci; +# GRANT ALL ON SCHEMA app TO appuser; +# SQL + +# # ▶️ Voorbeeld 3: init-SQL uit je repo draaien +# - name: Run init SQL from repo +# if: ${{ hashFiles('db/init.sql') != '' }} +# env: +# PGPASSWORD: ${{ secrets.PG_PASSWORD }} +# run: | +# psql -h postgres -U libreplan -d libreplandev -v ON_ERROR_STOP=1 -f db/init.sql + +# - name: Set up JDK 8 +# uses: actions/setup-java@v3 +# with: +# java-version: '8' +# distribution: 'temurin' +# cache: maven +# + - name: Set up Java 8 + uses: actions/setup-java@v4 + with: + distribution: temurin # of adopt, zulu, corretto, liberica … + java-version: 8 + + - name: Verify Java version + run: java -version - name: Build with Maven run: mvn -Ddefault.passwordsControl=false -Ddefault.exampleUsersDisabled=false clean install + + +# - name: Build with Maven +# run: mvn -B clean package + From 6f1d2fed50bb5a45434e8675bb6094c9efca8cb4 Mon Sep 17 00:00:00 2001 From: Jeroen Baten Date: Wed, 12 Nov 2025 11:53:26 +0100 Subject: [PATCH 4/6] Update README.rst Adding DeepWiki dev docs. --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index d11268a25..421c47416 100644 --- a/README.rst +++ b/README.rst @@ -135,7 +135,7 @@ You can find more information about *LibrePlan* at https://www.libreplan.dev/home/ For information related with *LibrePlan* development you can visit the wiki at -https://wiki.libreplan.dev +https://wiki.libreplan.dev or have a look at the DeepWiki documentation: [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/LibrePlan/libreplan) Reporting bugs From 6e265807871a94aea140f491b0ff0c539541de75 Mon Sep 17 00:00:00 2001 From: Jeroen Baten Date: Wed, 12 Nov 2025 11:59:55 +0100 Subject: [PATCH 5/6] Update README.rst Fix md to rst text --- README.rst | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 421c47416..500bde2fb 100644 --- a/README.rst +++ b/README.rst @@ -135,7 +135,10 @@ You can find more information about *LibrePlan* at https://www.libreplan.dev/home/ For information related with *LibrePlan* development you can visit the wiki at -https://wiki.libreplan.dev or have a look at the DeepWiki documentation: [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/LibrePlan/libreplan) +https://wiki.libreplan.dev or have a look at the DeepWiki documentation: |Ask DeepWiki| + +.. |Ask DeepWiki| image:: https://deepwiki.com/badge.svg + :target: https://deepwiki.com/LibrePlan/libreplan Reporting bugs From d8261f186480046ada75cc1b972dc35a05fc3ff9 Mon Sep 17 00:00:00 2001 From: "Jeroen Baten [NIPV]" Date: Wed, 12 Nov 2025 16:13:28 +0100 Subject: [PATCH 6/6] First working Forgejo action file. --- .forgejo/workflows/ubuntu_24.04.yml | 106 +++++++++++----------------- 1 file changed, 43 insertions(+), 63 deletions(-) diff --git a/.forgejo/workflows/ubuntu_24.04.yml b/.forgejo/workflows/ubuntu_24.04.yml index 071a2f7d8..b334b4a01 100644 --- a/.forgejo/workflows/ubuntu_24.04.yml +++ b/.forgejo/workflows/ubuntu_24.04.yml @@ -1,5 +1,6 @@ -# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time -# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven + +# The first Forgejo action of this project. +# This builds the main branch on jdk8. name: Ubuntu 24.04 (Noble Numbat) @@ -32,81 +33,60 @@ jobs: --health-retries 5 steps: - - uses: actions/checkout@v4 - - - name: Install psql client + - name: install needed software run: | apt-get update - apt-get install -y postgresql-client + apt-get install -y postgresql-client nodejs git maven libpostgresql-jdbc-java - - name: Show Postgres info (debug) - env: - PGPASSWORD: ${{ secrets.PG_PASSWORD }} - run: | - psql -h postgres -U libreplan -d libreplandev -c "SELECT version();" - psql -h postgres -U libreplan -d libreplandev -c "SELECT current_database(), current_user;" + - uses: actions/checkout@v3 -# - name: Create libreplandev database -# uses: akanieski/setup-postgres-cli@v0.1.2 -# with: -# commands: PGPASSWORD=libreplan psql -U libreplan -h postgres -p 5432 -c "CREATE DATABASE libreplandev;" + # Let's test caching maven stuff. + - name: Cache Maven repository + uses: actions/cache@v4 + with: + path: ~/.m2/repository + key: maven-${{ hashFiles('**/pom.xml') }} + restore-keys: maven- -# - name: Create libreplandevtest database -# uses: akanieski/setup-postgres-cli@v0.1.2 -# with: -# commands: PGPASSWORD=libreplan psql -U libreplan -h postgres -p 5432 -c "CREATE DATABASE libreplandevtest;" - - # ▶️ Voorbeeld 1: extra database expliciet aanmaken + # Create extra database - name: Create libreplandevtest database env: - PGPASSWORD: ${{ secrets.PG_PASSWORD }} + PGPASSWORD: ${{ secrets.POSTGRES_PASSWORD }} run: | - psql -h postgres -U libreplan -d postgres -v ON_ERROR_STOP=1 -c "CREATE DATABASE libreplandevtest;" + PGPASSWORD='libreplan' psql -h postgres -U libreplan -d postgres -v ON_ERROR_STOP=1 -c "CREATE DATABASE libreplandevtest;" -# # ▶️ Voorbeeld 2: schema/rollen in je default DB aanmaken -# - name: Create schema and role -# env: -# PGPASSWORD: ${{ secrets.PG_PASSWORD }} -# run: | -# psql -h postgres -U libreplan -d libreplandev -v ON_ERROR_STOP=1 <<'SQL' -# DO $$ -# BEGIN -# IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = 'appuser') THEN -# CREATE ROLE appuser LOGIN PASSWORD 'appuserpass'; -# END IF; -# END $$; -# CREATE SCHEMA IF NOT EXISTS app AUTHORIZATION ci; -# GRANT ALL ON SCHEMA app TO appuser; -# SQL - -# # ▶️ Voorbeeld 3: init-SQL uit je repo draaien -# - name: Run init SQL from repo -# if: ${{ hashFiles('db/init.sql') != '' }} -# env: -# PGPASSWORD: ${{ secrets.PG_PASSWORD }} -# run: | -# psql -h postgres -U libreplan -d libreplandev -v ON_ERROR_STOP=1 -f db/init.sql - -# - name: Set up JDK 8 -# uses: actions/setup-java@v3 -# with: -# java-version: '8' -# distribution: 'temurin' -# cache: maven -# - name: Set up Java 8 - uses: actions/setup-java@v4 - with: - distribution: temurin # of adopt, zulu, corretto, liberica … - java-version: 8 + uses: actions/setup-java@v4 + with: + distribution: temurin # of adopt, zulu, corretto, liberica … + java-version: 8 - name: Verify Java version run: java -version + # Determine maven version in container + - name: Show maven version number + run: mvn -v + + - name: Wait for PostgreSQL to be ready + shell: bash + env: + PGPASSWORD: libreplan + run: | + for i in {1..30}; do + psql -h postgres -U libreplan -d libreplandev -c 'select 1' && break + sleep 2 + done + - name: Build with Maven - run: mvn -Ddefault.passwordsControl=false -Ddefault.exampleUsersDisabled=false clean install + run: mvn clean install --no-transfer-progress -Ddefault.passwordsControl=false -Ddefault.exampleUsersDisabled=false -DdataSource.url=jdbc:postgresql://postgres:5432/libreplandev -DdataSource.user=libreplan -DdataSource.password=libreplan -DjdbcDriver.className=org.postgresql.Driver + # Are we brave enough to upload the result? + - uses: actions/upload-artifact@v3 + with: + name: libreplan.war + path: libreplan-webapp/target/libreplan-webapp.war + retention-days: 3 -# - name: Build with Maven -# run: mvn -B clean package - + - name: Output artifact ID + run: echo 'Artifact ID is ${{ steps.artifact-upload-step.outputs.artifact-id }}'