diff --git a/.gitattributes b/.gitattributes index aa15baa..fb6bdaf 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,2 @@ /.* export-ignore +/*.md export-ignore diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..17aef88 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,2 @@ +github: mlocati +custom: https://paypal.me/mlocati diff --git a/.github/workflows/create-release-attachment.yml b/.github/workflows/create-release-attachment.yml index 5ead2ef..2a1e9cf 100644 --- a/.github/workflows/create-release-attachment.yml +++ b/.github/workflows/create-release-attachment.yml @@ -9,20 +9,24 @@ jobs: attach-zip: name: Attach ZIP to release runs-on: ubuntu-latest + permissions: + contents: write steps: - - name: Setup PHP + - + name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: '5.5' - tools: composer:v1 + php-version: '8.4' + tools: composer:v2.2 coverage: none - - name: Checkout - uses: actions/checkout@v3 - - name: Create and attach ZIP + - + name: Checkout + uses: actions/checkout@v4 + - + name: Create and attach ZIP uses: concrete5-community/gh-package-release-attach@main env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: remove-files: | composer.json - composer.lock diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..72deb53 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,98 @@ +name: Tests + +on: + push: + branches: + - main + tags-ignore: + - '**' + pull_request: + branches: + - main + +jobs: + + check-php-syntax: + name: PHP ${{ matrix.php-version }} Syntax + runs-on: ubuntu-latest + strategy: + matrix: + php-version: + - "5.5" + - "8.4" + steps: + - + name: Checkout + uses: actions/checkout@v4 + - + name: Install PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-version }} + extensions: opcache + coverage: none + tools: none + - + name: Check syntax + uses: mlocati/check-php-syntax@v1 + with: + fail-on-warnings: true + + check-development-leftovers: + name: Check Development Leftovers + runs-on: ubuntu-latest + steps: + - + name: Checkout + uses: actions/checkout@v4 + - + name: Search for debugger or xdebug_break + run: | + echo "Scanning for 'debugger' or 'xdebug_break'..." + matches=$(grep -Enr --include=\*.{js,php} '(^|[^a-zA-Z0-9_])(debugger|xdebug_break)\b' . || true) + if [[ -n "$matches" ]]; then + echo "Found the following matches:" + echo "$matches" + echo "::error::Development leftovers found in the codebase." + exit 1 + else + echo "No development leftovers found." + fi + + check-install: + name: Install on Concrete ${{ matrix.ccm-version }} + runs-on: ubuntu-latest + container: ghcr.io/concrete5-community/docker5:${{ matrix.ccm-version }} + needs: + - check-php-syntax + - check-development-leftovers + strategy: + matrix: + ccm-version: + - 8.5.12 + - "8.5" + - "9.0" + - "9.1" + - "9.2" + - "9.3" + - "9.4" + - latest + steps: + - + name: Checkout + uses: actions/checkout@v4 + - + name: Check composer.json + run: sudo -u www-data composer --ansi --no-interaction validate --strict -- "$GITHUB_WORKSPACE/composer.json" + - + name: Prepare package + run: ln -s "$GITHUB_WORKSPACE" /app/packages/maxmind_geolocator + - + name: Start services + run: ccm-service start db + - + name: Core info + run: sudo -u www-data /app/concrete/bin/concrete5 --ansi --no-interaction c5:info + - + name: Install package + run: sudo -u www-data /app/concrete/bin/concrete5 --ansi --no-interaction c5:package:install maxmind_geolocator diff --git a/README.md b/README.md new file mode 100644 index 0000000..c049aaa --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +[![Tests](https://github.com/concrete5-community/maxmind_geolocator/actions/workflows/tests.yml/badge.svg)](https://github.com/concrete5-community/maxmind_geolocator/actions/workflows/tests.yml)