diff --git a/.github/workflows/release-workflow.yaml b/.github/workflows/release-workflow.yaml new file mode 100644 index 0000000..c40b688 --- /dev/null +++ b/.github/workflows/release-workflow.yaml @@ -0,0 +1,196 @@ +name: Release Workflow + +on: + push: + branches: + - master + - main + workflow_dispatch: + inputs: + version: + description: 'Version to release (leave empty to use info.xml version)' + required: false + default: '' + +jobs: + release-management: + runs-on: ubuntu-latest + steps: + + - name: Checkout Code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set app env + run: | + echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV + + - name: Get current version and increment + id: increment_version + run: | + current_version=$(grep -oP '(?<=)[^<]+' appinfo/info.xml) + IFS='.' read -ra version_parts <<< "$current_version" + ((version_parts[2]++)) + new_version="${version_parts[0]}.${version_parts[1]}.${version_parts[2]}" + echo "NEW_VERSION=$new_version" >> $GITHUB_ENV + echo "new_version=$new_version" >> $GITHUB_OUTPUT + + - name: Update version in info.xml + run: | + sed -i "s|.*|${{ env.NEW_VERSION }}|" appinfo/info.xml + + - name: Commit version update + run: | + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + git commit -am "Bump version to ${{ env.NEW_VERSION }}" + git push + + # Step 1: Prepare the signing certificate and key + - name: Prepare Signing Certificate and Key + run: | + echo "${{ secrets.NEXTCLOUD_SIGNING_CERT }}" > signing-cert.crt + echo "${{ secrets.NEXTCLOUD_SIGNING_KEY }}" > signing-key.key + + # Step 3: Install Node.js dependencies using npm + - name: Install npm dependencies + uses: actions/setup-node@v3 + with: + node-version: '18.x' # Specify Node.js version + + # Step 4: Install PHP extensions + - name: Set up PHP and install extensions + uses: shivammathur/setup-php@v2 + with: + php-version: '8.2' + extensions: zip, gd + + # Step 5: Build the node dependencies + - run: npm ci + + # Step 6: Build the node dependencies + - run: npm run build + + # Step 7: Build composer dependencies + - run: composer i --no-dev + + # Step 8: Copy the files into the package directory + - name: Copy the package files into the package + run: | + mkdir -p package/${{ github.event.repository.name }} + rsync -av --progress \ + --exclude='package' \ + --exclude='.git' \ + --exclude='.github' \ + --exclude='.vscode' \ + --exclude='docker' \ + --exclude='docs' \ + --exclude='node_modules' \ + --exclude='/src' \ + --exclude='test' \ + --exclude='package-lock.json' \ + --exclude='composer.lock' \ + --exclude='composer-setup.php' \ + --exclude='.phpunit.result.cache' \ + --exclude='phpmd.xml' \ + --exclude='signing-key.key' \ + --exclude='package.json' \ + --exclude='composer.json' \ + --exclude='coverage.txt' \ + --exclude='signing-cert.crt' \ + --exclude='docker-compose.yml' \ + --exclude='webpack.config.js' \ + --exclude='.prettierrc' \ + --exclude='psalm.xml' \ + --exclude='phpunit.xml' \ + --exclude='tsconfig.json' \ + --exclude='changelog-ci-config.json' \ + --exclude='jest.config.js' \ + --exclude='.gitattributes' \ + --exclude='.php-cs-fixer.dist.php' \ + --exclude='.gitignore' \ + --exclude='.eslintrc.js' \ + --exclude='stylelint.config.js' \ + --exclude='.babelrc' \ + --exclude='.nvmrc' \ + ./ package/${{ github.event.repository.name }}/ + + # Step 9: Create the TAR.GZ archive + - name: Create Tarball + run: | + cd package && tar -czf ../nextcloud-release.tar.gz ${{ github.event.repository.name }} + + # Step 10: Sign the TAR.GZ file with OpenSSL + - name: Sign the TAR.GZ file with OpenSSL + run: | + openssl dgst -sha512 -sign signing-key.key nextcloud-release.tar.gz | openssl base64 -out nextcloud-release.signature + + # Step 11: Generate Git version information + - name: Git Version + id: version + uses: codacy/git-version@2.7.1 + with: + release-branch: main + + # Step 12: Extract repository description + - name: Extract repository description + id: repo-description + run: | + description=$(jq -r '.description' <(curl -s https://api.github.com/repos/${{ github.repository }})) + echo "REPO_DESCRIPTION=$description" >> $GITHUB_ENV + + # Step 13: Run Changelog CI + - name: Run Changelog CI + if: github.ref == 'refs/heads/main' + uses: saadmk11/changelog-ci@v1.1.2 + with: + release_version: ${{ env.NEW_VERSION }} + config_file: changelog-ci-config.json + + # Step 14: Output the version + - name: Use the version + run: | + echo ${{ steps.version.outputs.version }} + + # Step 15: Copy the package files into the package (this step seems redundant, consider removing) + - name: Copy the package files into the package + run: | + mkdir -p package/${{ github.event.repository.name }} + rsync -av --progress --exclude='package' --exclude='.git' ./ package/${{ github.event.repository.name }}/ + + # Step 18: Create a new release on GitHub + - name: Upload Release + uses: ncipollo/release-action@v1.12.0 + with: + tag: v${{ env.NEW_VERSION }} + name: Release ${{ env.NEW_VERSION }} + draft: false + prerelease: false + + - name: Attach tarball to github release + uses: svenstaro/upload-release-action@04733e069f2d7f7f0b4aebc4fbdbce8613b03ccd # v2 + id: attach_to_release + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: nextcloud-release.tar.gz # Corrected spelling + asset_name: ${{ env.APP_NAME }}-${{ env.NEW_VERSION }}.tar.gz + tag: v${{ env.NEW_VERSION }} + overwrite: true + + - name: Upload app to Nextcloud appstore + uses: nextcloud-releases/nextcloud-appstore-push-action@a011fe619bcf6e77ddebc96f9908e1af4071b9c1 # v1 + with: + app_name: ${{ env.APP_NAME }} + appstore_token: ${{ secrets.NEXTCLOUD_APPSTORE_TOKEN }} + download_url: https://github.com/${{ github.repository }}/releases/download/v${{ env.NEW_VERSION }}/${{ env.APP_NAME }}-${{ env.NEW_VERSION }}.tar.gz + app_private_key: ${{ secrets.NEXTCLOUD_SIGNING_KEY }} + nightly: false + + - name: Verify version and contents + run: | + echo "App version: ${{ env.NEW_VERSION }}" + echo "Tarball contents:" + tar -tvf nextcloud-release.tar.gz + echo "info.xml contents:" + tar -xOf nextcloud-release.tar.gz ${{ env.APP_NAME }}/appinfo/info.xml diff --git a/.nextcloud/certificates/zaakafhandelapp.csr b/.nextcloud/certificates/zaakafhandelapp.csr new file mode 100644 index 0000000..118af1f --- /dev/null +++ b/.nextcloud/certificates/zaakafhandelapp.csr @@ -0,0 +1,26 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIIEXzCCAkcCAQAwGjEYMBYGA1UEAwwPemFha2FmaGFuZGVsYXBwMIICIjANBgkq +hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnI2P93yLIINt4aOwwLO6Jn6CvbXhbbnI +ri4UieBwnGq0xDNmb//sDB+FOZOqOCqdw8Zj38ALck+W5P+4OfkPuUAjJIbGu23L +V100u+YD3m0jfkh2FSOEtqNcyLYPebW5xPdqcGXDinaxqsjqCYGgVZIyeaSTHPpv +xHEDccrPI0H0uHi1NOQH2uDTnFfzqKweFXUNI8xI9z7PAnyLnUBCLsXEe4NABpqL +pt4cwWVe/dTchYF7mr2xq4oGvmoMub09oSoaP6vzkTbr7CErew8GQ+cgJs3UfiEk +Cjgl2GT5Lk+6Fdd1hBsbHaoTbETky69VXrN57f8qiePsMMr9r4zmG30f/ESytPip +J1UjMiFmQGPrI4h6+9Vabfak6MAyJucFUwO25WsSR4X0XQUhFVpHww+WbpOa87wl +CRSutySL7tRy7vidaMwUl0Ayhyfc99lnEHwOMxJxCAyIddcC5NIv3LgbDbZ1MW9/ +x7LUDDPmu8kE8QB0anKpmxA/oa44zJqifeRo6slT/A+8PvagLaXaC08jgKixbfWr +orz+RZjpHJJ0U88jR7IiB06iki5VCxxIXpq8APRtMinyrOvbOfGKFWGClm7wefiY +w8Wyv2Dk4BH7T8i7OO+jZv7ZuYRqQ0iTpMiJR2NPBxz2FaTPBRW/lH3gvT/BDdpP +PUfvh7DQiMECAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4ICAQB9pQt94oWp7h4R3GIY +1VRqqA441ETEf7WQF5+650fvrmgfAfi4ibtnYxe6mJVVUZbFabnaxzDFMW5D/D2w +j4pvX3FMaO/Bns2AgNKLfIS7Z4wG6FEPaat2sL/rCyZFR4TK+vhq0d/Iz7lb/zNs +WRZC3mEawsu0BEmR5fcckSvAM7U3D7zv+zOW/siYCpyWdhnQ7UBquIEwpQCCpzvI +KuFZIgCmqMOh3H3TPyvB/f+esn8i6pzSj4r8hKq+EHkuDoSUc8nRtO9E5SRs8lCL +yxJnbVkrJZE5vJDycnjoKBcVTLAi8S6YfAcSqV0nfawOs5lV2Del+m4oapvjG1og +8bwN3HEmZiyQJ1GF7SCQsos6hncJUed+5iIrdyGnfzq8K2AFkBoCsqZfCvUoSSt7 +UmJKVP1ZjQP225P178flK+3IVeVPtUD6QbMPRLlgQrh1y+rY4e7Pnk45trOrIICU +KQcbl65TWiaZOgsbll3t+kvXw8N/7fgeeyNe26IgQGvJCSJfMiLKiezNdFkIucsa +NsMiSvln4ims3+ZNicShV0qBG+rcFSsuhM+JpM0+k8tb8iyHeKAhgNWw6PodqIRv +AFak6fR0uK0O/roI+VTDy2SXYE2Dbn4yWEBKVovN8zq2he8rmEVNiyptKKFw03s2 +3StYdcaZetHMu9a8kQQ1vAwL4g== +-----END CERTIFICATE REQUEST----- diff --git a/appinfo/info.xml b/appinfo/info.xml index 822c37a..8960baf 100755 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -1,49 +1,25 @@ - - - zaakafhandelapp - Zaak Afhandel App - This is a the ZAA (Zaak Afhandel App) in english Case Handling App that is made by ConductionN - - 0.1.1 - agpl - Conduction - ZaakAfhandelApp - organisation - https://github.com/ConductionNL/zaakafhandelapp - https://github.com/ConductionNL/zaakafhandelapp/issues - https://github.com/ConductionNL/zaakafhandelapp.git - - - pgsql - sqlite - mysql - - - - - - - zaakafhandelapp - Zaak Afhandel App - zaakafhandelapp.dashboard.page - - - + + + zaakafhandelapp + ZaakAfhandelapp + ZAA + This is a the ZAA (Zaak Afhandel App) in English Case Handling App that is made by ConductionNL for the Nextcloud eco + 0.0.6 + agpl + organization + Conduction + ZaakAfhandelapp + https://github.com/ConductionNL/zaakafhandelapp/issues + + + + + + zaakafhandelapp + ZaakAfhandelapp + zaakafhandelapp.dashboard.page + app.svg + + + diff --git a/composer.json b/composer.json index 0a79cb2..59eadee 100755 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { - "name": "nextcloud/zaakafhandelapp", - "description": "This nextcloud app provid a basic zaak afhandel component for dutch governemental institutions", - "license": "AGPL-3.0-or-later", + "name": "conductionnl/zaakafhandelapp", + "description": "Manage your live roleplaying setting", + "license": "AGPL-3.0-or-later", "authors": [ { "name": "Conduction b.v.", @@ -39,8 +39,13 @@ "openapi": "generate-spec" }, "require": { + "php": "^8.1", + "adbario/php-dot-notation": "^3.3.0", "bamarni/composer-bin-plugin": "^1.8", - "php": "^8.1" + "elasticsearch/elasticsearch": "^v8.14.0", + "adbario/php-dot-notation": "^3.3.0", + "guzzlehttp/guzzle": "^7.0", + "symfony/uid": "^6.4" }, "require-dev": { "nextcloud/ocp": "dev-stable29", @@ -48,7 +53,8 @@ }, "config": { "allow-plugins": { - "bamarni/composer-bin-plugin": true + "bamarni/composer-bin-plugin": true, + "php-http/discovery": true }, "optimize-autoloader": true, "sort-packages": true,