diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
deleted file mode 100644
index 7a33d55..0000000
--- a/.github/workflows/ci.yml
+++ /dev/null
@@ -1,158 +0,0 @@
-name: CI
-
-on:
- push:
- branches:
- - 'master'
- release:
- types: [created]
- workflow_dispatch:
-
-jobs:
- build:
- runs-on: ubuntu-latest
- container:
- image: php:8.3
-
- steps:
- - name: Checkout repository
- uses: actions/checkout@v4
-
- - name: Install dependencies
- run: |
- apt update -yqq
- apt install git libpq-dev libzip-dev zip make wget gnupg -yqq
-
- - name: Install phive
- run: |
- wget -O phive.phar https://phar.io/releases/phive.phar
- wget -O phive.phar.asc https://phar.io/releases/phive.phar.asc
- gpg --keyserver hkps://keys.openpgp.org --recv-keys 0x9D8A98B29B2D5D79
- gpg --verify phive.phar.asc phive.phar
- chmod +x phive.phar
- mv phive.phar /usr/local/bin/phive
-
- - name: Install phab
- run: |
- phive install phpab --global --trust-gpg-keys 0x2A8299CE842DD38C
-
- - name: Install latest version of NCC
- run: |
- git clone https://git.n64.cc/nosial/ncc.git
- cd ncc
- make redist
- NCC_DIR=$(find build/ -type d -name "ncc_*" | head -n 1)
- if [ -z "$NCC_DIR" ]; then
- echo "NCC build directory not found"
- exit 1
- fi
- php "$NCC_DIR/INSTALL" --auto
- cd .. && rm -rf ncc
-
- - name: Build project
- run: |
- ncc build --config release --log-level debug
-
- - name: Upload build artifacts
- uses: actions/upload-artifact@v4
- with:
- name: ncc-build
- path: build/release/net.nosial.configlib.ncc
-
- test:
- needs: build
- runs-on: ubuntu-latest
- container:
- image: php:8.3
-
- steps:
- - name: Checkout repository
- uses: actions/checkout@v4
-
- - name: Check for phpunit.xml
- id: file_check
- run: |
- if [ -f phpunit.xml ]; then
- echo "::set-output name=exists::true"
- else
- echo "::set-output name=exists::false"
- fi
-
- - name: Skip if no phpunit.xml
- if: steps.file_check.outputs.exists == 'false'
- run: exit 78
-
- - name: Download build artifacts
- uses: actions/download-artifact@v4
- with:
- name: ncc-build
- path: ncc-build # Adjust this to download the artifact directly under 'ncc-build'
-
- - name: Install dependencies
- run: |
- apt update -yqq
- apt install git libpq-dev libzip-dev zip make wget gnupg -yqq
- curl -sSLf -o /usr/local/bin/install-php-extensions https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions
- chmod +x /usr/local/bin/install-php-extensions
- install-php-extensions zip
-
- - name: Install phive
- run: |
- wget -O phive.phar https://phar.io/releases/phive.phar
- wget -O phive.phar.asc https://phar.io/releases/phive.phar.asc
- gpg --keyserver hkps://keys.openpgp.org --recv-keys 0x9D8A98B29B2D5D79
- gpg --verify phive.phar.asc phive.phar
- chmod +x phive.phar
- mv phive.phar /usr/local/bin/phive
-
- - name: Install phab
- run: |
- phive install phpab --global --trust-gpg-keys 0x2A8299CE842DD38C
-
- - name: Install latest version of NCC
- run: |
- git clone https://git.n64.cc/nosial/ncc.git
- cd ncc
- make redist
- NCC_DIR=$(find build/ -type d -name "ncc_*" | head -n 1)
- if [ -z "$NCC_DIR" ]; then
- echo "NCC build directory not found"
- exit 1
- fi
- php "$NCC_DIR/INSTALL" --auto
- cd .. && rm -rf ncc
-
- - name: Install NCC packages
- run: |
- ncc package install --package="ncc-build/net.nosial.configlib.ncc" --build-source --reinstall -y --log-level debug
-
- - name: Run PHPUnit tests
- run: |
- wget https://phar.phpunit.de/phpunit-11.3.phar
- php phpunit-11.3.phar --configuration phpunit.xml
-
- release:
- needs: [build, test]
- permissions: write-all
- runs-on: ubuntu-latest
- container:
- image: php:8.3
- if: github.event_name == 'release'
-
- steps:
- - name: Checkout repository
- uses: actions/checkout@v4
-
- - name: Download build artifacts
- uses: actions/download-artifact@v4
- with:
- name: ncc-build
- path: ncc-build
-
- - name: Upload to GitHub Release
- uses: softprops/action-gh-release@v1
- with:
- files: |
- ncc-build/net.nosial.configlib.ncc
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/ncc_workflow.yml b/.github/workflows/ncc_workflow.yml
new file mode 100644
index 0000000..5f5ff8b
--- /dev/null
+++ b/.github/workflows/ncc_workflow.yml
@@ -0,0 +1,674 @@
+name: CI
+
+on:
+ push:
+ branches:
+ - '**'
+ release:
+ types: [created]
+ workflow_dispatch:
+
+jobs:
+ release:
+ runs-on: ubuntu-latest
+ container:
+ image: php:8.3
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Install dependencies
+ run: |
+ apt update -yqq
+ apt install git libpq-dev libzip-dev zip make wget gnupg -yqq
+
+ - name: Install phive
+ run: |
+ wget -O phive.phar https://phar.io/releases/phive.phar
+ wget -O phive.phar.asc https://phar.io/releases/phive.phar.asc
+ gpg --keyserver hkps://keys.openpgp.org --recv-keys 0x9D8A98B29B2D5D79
+ gpg --verify phive.phar.asc phive.phar
+ chmod +x phive.phar
+ mv phive.phar /usr/local/bin/phive
+
+ - name: Install phab
+ run: |
+ phive install phpab --global --trust-gpg-keys 0x2A8299CE842DD38C
+
+ - name: Install latest version of NCC
+ run: |
+ git clone https://git.n64.cc/nosial/ncc.git
+ cd ncc
+ make redist
+ NCC_DIR=$(find build/ -type d -name "ncc_*" | head -n 1)
+ if [ -z "$NCC_DIR" ]; then
+ echo "NCC build directory not found"
+ exit 1
+ fi
+ php "$NCC_DIR/INSTALL" --auto
+ cd .. && rm -rf ncc
+
+ - name: Build project
+ run: |
+ ncc build --config release --log-level debug
+
+ - name: Upload build artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: release
+ path: build/release/net.nosial.configlib.ncc
+ debug:
+ runs-on: ubuntu-latest
+ container:
+ image: php:8.3
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Install dependencies
+ run: |
+ apt update -yqq
+ apt install git libpq-dev libzip-dev zip make wget gnupg -yqq
+
+ - name: Install phive
+ run: |
+ wget -O phive.phar https://phar.io/releases/phive.phar
+ wget -O phive.phar.asc https://phar.io/releases/phive.phar.asc
+ gpg --keyserver hkps://keys.openpgp.org --recv-keys 0x9D8A98B29B2D5D79
+ gpg --verify phive.phar.asc phive.phar
+ chmod +x phive.phar
+ mv phive.phar /usr/local/bin/phive
+
+ - name: Install phab
+ run: |
+ phive install phpab --global --trust-gpg-keys 0x2A8299CE842DD38C
+
+ - name: Install latest version of NCC
+ run: |
+ git clone https://git.n64.cc/nosial/ncc.git
+ cd ncc
+ make redist
+ NCC_DIR=$(find build/ -type d -name "ncc_*" | head -n 1)
+ if [ -z "$NCC_DIR" ]; then
+ echo "NCC build directory not found"
+ exit 1
+ fi
+ php "$NCC_DIR/INSTALL" --auto
+ cd .. && rm -rf ncc
+
+ - name: Build project
+ run: |
+ ncc build --config debug --log-level debug
+
+ - name: Upload build artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: debug
+ path: build/debug/net.nosial.configlib.ncc
+ release-compressed:
+ runs-on: ubuntu-latest
+ container:
+ image: php:8.3
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Install dependencies
+ run: |
+ apt update -yqq
+ apt install git libpq-dev libzip-dev zip make wget gnupg -yqq
+
+ - name: Install phive
+ run: |
+ wget -O phive.phar https://phar.io/releases/phive.phar
+ wget -O phive.phar.asc https://phar.io/releases/phive.phar.asc
+ gpg --keyserver hkps://keys.openpgp.org --recv-keys 0x9D8A98B29B2D5D79
+ gpg --verify phive.phar.asc phive.phar
+ chmod +x phive.phar
+ mv phive.phar /usr/local/bin/phive
+
+ - name: Install phab
+ run: |
+ phive install phpab --global --trust-gpg-keys 0x2A8299CE842DD38C
+
+ - name: Install latest version of NCC
+ run: |
+ git clone https://git.n64.cc/nosial/ncc.git
+ cd ncc
+ make redist
+ NCC_DIR=$(find build/ -type d -name "ncc_*" | head -n 1)
+ if [ -z "$NCC_DIR" ]; then
+ echo "NCC build directory not found"
+ exit 1
+ fi
+ php "$NCC_DIR/INSTALL" --auto
+ cd .. && rm -rf ncc
+
+ - name: Build project
+ run: |
+ ncc build --config release-compressed --log-level debug
+
+ - name: Upload build artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: release-compressed
+ path: build/release/net.nosial.configlib.gz.ncc
+ debug-compressed:
+ runs-on: ubuntu-latest
+ container:
+ image: php:8.3
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Install dependencies
+ run: |
+ apt update -yqq
+ apt install git libpq-dev libzip-dev zip make wget gnupg -yqq
+
+ - name: Install phive
+ run: |
+ wget -O phive.phar https://phar.io/releases/phive.phar
+ wget -O phive.phar.asc https://phar.io/releases/phive.phar.asc
+ gpg --keyserver hkps://keys.openpgp.org --recv-keys 0x9D8A98B29B2D5D79
+ gpg --verify phive.phar.asc phive.phar
+ chmod +x phive.phar
+ mv phive.phar /usr/local/bin/phive
+
+ - name: Install phab
+ run: |
+ phive install phpab --global --trust-gpg-keys 0x2A8299CE842DD38C
+
+ - name: Install latest version of NCC
+ run: |
+ git clone https://git.n64.cc/nosial/ncc.git
+ cd ncc
+ make redist
+ NCC_DIR=$(find build/ -type d -name "ncc_*" | head -n 1)
+ if [ -z "$NCC_DIR" ]; then
+ echo "NCC build directory not found"
+ exit 1
+ fi
+ php "$NCC_DIR/INSTALL" --auto
+ cd .. && rm -rf ncc
+
+ - name: Build project
+ run: |
+ ncc build --config debug-compressed --log-level debug
+
+ - name: Upload build artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: debug-compressed
+ path: build/debug/net.nosial.configlib.gz.ncc
+ release-executable:
+ runs-on: ubuntu-latest
+ container:
+ image: php:8.3
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Install dependencies
+ run: |
+ apt update -yqq
+ apt install git libpq-dev libzip-dev zip make wget gnupg -yqq
+
+ - name: Install phive
+ run: |
+ wget -O phive.phar https://phar.io/releases/phive.phar
+ wget -O phive.phar.asc https://phar.io/releases/phive.phar.asc
+ gpg --keyserver hkps://keys.openpgp.org --recv-keys 0x9D8A98B29B2D5D79
+ gpg --verify phive.phar.asc phive.phar
+ chmod +x phive.phar
+ mv phive.phar /usr/local/bin/phive
+
+ - name: Install phab
+ run: |
+ phive install phpab --global --trust-gpg-keys 0x2A8299CE842DD38C
+
+ - name: Install latest version of NCC
+ run: |
+ git clone https://git.n64.cc/nosial/ncc.git
+ cd ncc
+ make redist
+ NCC_DIR=$(find build/ -type d -name "ncc_*" | head -n 1)
+ if [ -z "$NCC_DIR" ]; then
+ echo "NCC build directory not found"
+ exit 1
+ fi
+ php "$NCC_DIR/INSTALL" --auto
+ cd .. && rm -rf ncc
+
+ - name: Build project
+ run: |
+ ncc build --config release-executable --log-level debug
+
+ - name: Upload build artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: release-executable
+ path: build/release/release_executable_gz
+ debug-executable:
+ runs-on: ubuntu-latest
+ container:
+ image: php:8.3
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Install dependencies
+ run: |
+ apt update -yqq
+ apt install git libpq-dev libzip-dev zip make wget gnupg -yqq
+
+ - name: Install phive
+ run: |
+ wget -O phive.phar https://phar.io/releases/phive.phar
+ wget -O phive.phar.asc https://phar.io/releases/phive.phar.asc
+ gpg --keyserver hkps://keys.openpgp.org --recv-keys 0x9D8A98B29B2D5D79
+ gpg --verify phive.phar.asc phive.phar
+ chmod +x phive.phar
+ mv phive.phar /usr/local/bin/phive
+
+ - name: Install phab
+ run: |
+ phive install phpab --global --trust-gpg-keys 0x2A8299CE842DD38C
+
+ - name: Install latest version of NCC
+ run: |
+ git clone https://git.n64.cc/nosial/ncc.git
+ cd ncc
+ make redist
+ NCC_DIR=$(find build/ -type d -name "ncc_*" | head -n 1)
+ if [ -z "$NCC_DIR" ]; then
+ echo "NCC build directory not found"
+ exit 1
+ fi
+ php "$NCC_DIR/INSTALL" --auto
+ cd .. && rm -rf ncc
+
+ - name: Build project
+ run: |
+ ncc build --config debug-executable --log-level debug
+
+ - name: Upload build artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: debug-executable
+ path: build/debug/debug_executable_gz
+ release-compressed-executable:
+ runs-on: ubuntu-latest
+ container:
+ image: php:8.3
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Install dependencies
+ run: |
+ apt update -yqq
+ apt install git libpq-dev libzip-dev zip make wget gnupg -yqq
+
+ - name: Install phive
+ run: |
+ wget -O phive.phar https://phar.io/releases/phive.phar
+ wget -O phive.phar.asc https://phar.io/releases/phive.phar.asc
+ gpg --keyserver hkps://keys.openpgp.org --recv-keys 0x9D8A98B29B2D5D79
+ gpg --verify phive.phar.asc phive.phar
+ chmod +x phive.phar
+ mv phive.phar /usr/local/bin/phive
+
+ - name: Install phab
+ run: |
+ phive install phpab --global --trust-gpg-keys 0x2A8299CE842DD38C
+
+ - name: Install latest version of NCC
+ run: |
+ git clone https://git.n64.cc/nosial/ncc.git
+ cd ncc
+ make redist
+ NCC_DIR=$(find build/ -type d -name "ncc_*" | head -n 1)
+ if [ -z "$NCC_DIR" ]; then
+ echo "NCC build directory not found"
+ exit 1
+ fi
+ php "$NCC_DIR/INSTALL" --auto
+ cd .. && rm -rf ncc
+
+ - name: Build project
+ run: |
+ ncc build --config release-compressed-executable --log-level debug
+
+ - name: Upload build artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: release-compressed-executable
+ path: build/release/release_compressed_executable
+ debug-compressed-executable:
+ runs-on: ubuntu-latest
+ container:
+ image: php:8.3
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Install dependencies
+ run: |
+ apt update -yqq
+ apt install git libpq-dev libzip-dev zip make wget gnupg -yqq
+
+ - name: Install phive
+ run: |
+ wget -O phive.phar https://phar.io/releases/phive.phar
+ wget -O phive.phar.asc https://phar.io/releases/phive.phar.asc
+ gpg --keyserver hkps://keys.openpgp.org --recv-keys 0x9D8A98B29B2D5D79
+ gpg --verify phive.phar.asc phive.phar
+ chmod +x phive.phar
+ mv phive.phar /usr/local/bin/phive
+
+ - name: Install phab
+ run: |
+ phive install phpab --global --trust-gpg-keys 0x2A8299CE842DD38C
+
+ - name: Install latest version of NCC
+ run: |
+ git clone https://git.n64.cc/nosial/ncc.git
+ cd ncc
+ make redist
+ NCC_DIR=$(find build/ -type d -name "ncc_*" | head -n 1)
+ if [ -z "$NCC_DIR" ]; then
+ echo "NCC build directory not found"
+ exit 1
+ fi
+ php "$NCC_DIR/INSTALL" --auto
+ cd .. && rm -rf ncc
+
+ - name: Build project
+ run: |
+ ncc build --config debug-compressed-executable --log-level debug
+
+ - name: Upload build artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: debug-compressed-executable
+ path: build/debug/debug_compressed_executable
+
+
+ # Checking for phpunit.xml
+ check-phpunit:
+ runs-on: ubuntu-latest
+ outputs:
+ phpunit-exists: ${{ steps.check.outputs.phpunit-exists }}
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+ - name: Check for phpunit.xml
+ id: check
+ run: |
+ if [ -f phpunit.xml ]; then
+ echo "phpunit-exists=true" >> $GITHUB_OUTPUT
+ else
+ echo "phpunit-exists=false" >> $GITHUB_OUTPUT
+ fi
+ # Checking for phpdoc.dist.xml
+ check-phpdoc:
+ runs-on: ubuntu-latest
+ outputs:
+ phpdoc-exists: ${{ steps.check.outputs.phpdoc-exists }}
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+ - name: Check for phpdoc.dist.xml
+ id: check
+ run: |
+ if [ -f phpdoc.dist.xml ]; then
+ echo "phpdoc-exists=true" >> $GITHUB_OUTPUT
+ else
+ echo "phpdoc-exists=false" >> $GITHUB_OUTPUT
+ fi
+ generate-phpdoc:
+ needs: [release, check-phpdoc]
+ runs-on: ubuntu-latest
+ container:
+ image: php:8.3
+ if: needs.check-phpdoc.outputs.phpdoc-exists == 'true'
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Install dependencies
+ run: |
+ apt update -yqq
+ apt install git libpq-dev libzip-dev zip make wget gnupg -yqq
+
+ - name: Download PHPDocumentor
+ run: |
+ wget https://phpdoc.org/phpDocumentor.phar
+ chmod +x phpDocumentor.phar
+
+ - name: Generate PHPDoc
+ run: |
+ php phpDocumentor.phar -d src -t docs
+
+ - name: Archive PHPDoc
+ run: |
+ zip -r docs.zip docs
+
+ - name: Upload PHPDoc
+ uses: actions/upload-artifact@v4
+ with:
+ name: documentation
+ path: docs.zip
+
+ test:
+ needs: [release, debug, release-compressed, debug-compressed, release-executable, debug-executable, release-compressed-executable, debug-compressed-executable, check-phpunit]
+ runs-on: ubuntu-latest
+ container:
+ image: php:8.3
+ if: needs.check-phpunit.outputs.phpunit-exists == 'true'
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Download build artifacts
+ uses: actions/download-artifact@v4
+ with:
+ name: release
+ path: release
+
+ - name: Install dependencies
+ run: |
+ apt update -yqq
+ apt install git libpq-dev libzip-dev zip make wget gnupg -yqq
+ curl -sSLf -o /usr/local/bin/install-php-extensions https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions
+ chmod +x /usr/local/bin/install-php-extensions
+ install-php-extensions zip
+
+ - name: Install phive
+ run: |
+ wget -O phive.phar https://phar.io/releases/phive.phar
+ wget -O phive.phar.asc https://phar.io/releases/phive.phar.asc
+ gpg --keyserver hkps://keys.openpgp.org --recv-keys 0x9D8A98B29B2D5D79
+ gpg --verify phive.phar.asc phive.phar
+ chmod +x phive.phar
+ mv phive.phar /usr/local/bin/phive
+
+ - name: Install phab
+ run: |
+ phive install phpab --global --trust-gpg-keys 0x2A8299CE842DD38C
+
+ - name: Install latest version of NCC
+ run: |
+ git clone https://git.n64.cc/nosial/ncc.git
+ cd ncc
+ make redist
+ NCC_DIR=$(find build/ -type d -name "ncc_*" | head -n 1)
+ if [ -z "$NCC_DIR" ]; then
+ echo "NCC build directory not found"
+ exit 1
+ fi
+ php "$NCC_DIR/INSTALL" --auto
+ cd .. && rm -rf ncc
+
+ - name: Install NCC packages
+ run: |
+ ncc package install --package="release/net.nosial.configlib.ncc" --build-source --reinstall -y --log-level debug
+
+ - name: Run PHPUnit tests
+ run: |
+ wget https://phar.phpunit.de/phpunit-11.3.phar
+ php phpunit-11.3.phar --configuration phpunit.xml --log-junit reports/junit.xml --log-teamcity reports/teamcity --testdox-html reports/testdox.html --testdox-text reports/testdox.txt
+
+ - name: Upload test reports
+ uses: actions/upload-artifact@v4
+ with:
+ name: reports
+ path: reports
+
+
+ release-documentation:
+ needs: generate-phpdoc
+ permissions: write-all
+ runs-on: ubuntu-latest
+ container:
+ image: php:8.3
+ if: github.event_name == 'release'
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Download documentation artifact
+ uses: actions/download-artifact@v4
+ with:
+ name: documentation
+ path: documentation
+
+ - name: Upload documentation artifact
+ uses: softprops/action-gh-release@v1
+ with:
+ files: |
+ documentation/*
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+
+ release-artifacts:
+ needs: [release, debug, release-compressed, debug-compressed, release-executable, debug-executable, release-compressed-executable, debug-compressed-executable]
+ permissions: write-all
+ runs-on: ubuntu-latest
+ container:
+ image: php:8.3
+ if: github.event_name == 'release'
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Download release artifact
+ uses: actions/download-artifact@v4
+ with:
+ name: release
+ path: release
+ - name: Upload release artifact to release
+ uses: softprops/action-gh-release@v1
+ with:
+ files: |
+ release/*
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ - name: Download debug artifact
+ uses: actions/download-artifact@v4
+ with:
+ name: debug
+ path: debug
+ - name: Upload debug artifact to release
+ uses: softprops/action-gh-release@v1
+ with:
+ files: |
+ debug/*
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ - name: Download release-compressed artifact
+ uses: actions/download-artifact@v4
+ with:
+ name: release-compressed
+ path: release-compressed
+ - name: Upload release-compressed artifact to release
+ uses: softprops/action-gh-release@v1
+ with:
+ files: |
+ release-compressed/*
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ - name: Download debug-compressed artifact
+ uses: actions/download-artifact@v4
+ with:
+ name: debug-compressed
+ path: debug-compressed
+ - name: Upload debug-compressed artifact to release
+ uses: softprops/action-gh-release@v1
+ with:
+ files: |
+ debug-compressed/*
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ - name: Download release-executable artifact
+ uses: actions/download-artifact@v4
+ with:
+ name: release-executable
+ path: release-executable
+ - name: Upload release-executable artifact to release
+ uses: softprops/action-gh-release@v1
+ with:
+ files: |
+ release-executable/*
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ - name: Download debug-executable artifact
+ uses: actions/download-artifact@v4
+ with:
+ name: debug-executable
+ path: debug-executable
+ - name: Upload debug-executable artifact to release
+ uses: softprops/action-gh-release@v1
+ with:
+ files: |
+ debug-executable/*
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ - name: Download release-compressed-executable artifact
+ uses: actions/download-artifact@v4
+ with:
+ name: release-compressed-executable
+ path: release-compressed-executable
+ - name: Upload release-compressed-executable artifact to release
+ uses: softprops/action-gh-release@v1
+ with:
+ files: |
+ release-compressed-executable/*
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ - name: Download debug-compressed-executable artifact
+ uses: actions/download-artifact@v4
+ with:
+ name: debug-compressed-executable
+ path: debug-compressed-executable
+ - name: Upload debug-compressed-executable artifact to release
+ uses: softprops/action-gh-release@v1
+ with:
+ files: |
+ debug-compressed-executable/*
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.gitignore b/.gitignore
index 211f710..6333a2b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
build/
/.idea/php-test-framework.xml
/.idea/gbrowser_project.xml
+/.phpunit.result.cache
+/reports
\ No newline at end of file
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c9dd90b..644b229 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -4,6 +4,9 @@ before_script:
# Install some stuff that the image doesn't come with
- apt update -yqq
- apt install git libpq-dev libzip-dev zip make wget gnupg -yqq
+ - curl -sSLf -o /usr/local/bin/install-php-extensions https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions
+ - chmod +x /usr/local/bin/install-php-extensions
+ - install-php-extensions zip
# Install phive
- wget -O phive.phar https://phar.io/releases/phive.phar
@@ -20,10 +23,17 @@ before_script:
- git clone https://git.n64.cc/nosial/ncc.git
- cd ncc
- make redist
- - php build/src/INSTALL --auto --install-composer
+ - NCC_DIR=$(find build/ -type d -name "ncc_*" | head -n 1)
+ - |
+ if [ -z "$NCC_DIR" ]; then
+ echo "NCC build directory not found"
+ exit 1
+ fi
+ - php "$NCC_DIR/INSTALL" --auto --install-composer
- cd .. && rm -rf ncc
build:
+ stage: build
script:
- ncc build --config release --log-level debug
artifacts:
@@ -31,6 +41,15 @@ build:
- build/
rules:
- if: $CI_COMMIT_BRANCH
+test:
+ stage: test
+ script:
+ - ncc package install --package="build/release/net.nosial.configlib.ncc" --reinstall -y --log-level debug
+
+ - wget https://phar.phpunit.de/phpunit-11.3.phar
+ - php phpunit-11.3.phar --configuration phpunit.xml
+ rules:
+ - if: $CI_COMMIT_BRANCH
release:
stage: deploy
diff --git a/.idea/ConfigLib.iml b/.idea/ConfigLib.iml
index 24c8dff..5527d54 100644
--- a/.idea/ConfigLib.iml
+++ b/.idea/ConfigLib.iml
@@ -5,6 +5,7 @@
+
diff --git a/phpdoc.dist.xml b/phpdoc.dist.xml
new file mode 100644
index 0000000..b33df6a
--- /dev/null
+++ b/phpdoc.dist.xml
@@ -0,0 +1,15 @@
+
+
+
+
+ build/cache
+
+
+
+
+ src/ConfigLib
+
+ ConfigLib
+
+
+
\ No newline at end of file
diff --git a/setup b/setup
new file mode 100644
index 0000000..7c6b690
--- /dev/null
+++ b/setup
@@ -0,0 +1,14 @@
+getPath());
+
+ if(file_exists($config->getPath()))
+ {
+ unlink($config->getPath());
+ }
}
public function testConstruct(): void
@@ -24,6 +28,7 @@ class ConfigurationTest extends TestCase
$this->assertTrue($config->set('key1.key2', 'value', true));
$this->assertEquals('value', $config->get('key1.key2'));
+
}
public function testSetNotExists(): void