diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml new file mode 100644 index 0000000..0ecb4aa --- /dev/null +++ b/.github/workflows/package.yml @@ -0,0 +1,33 @@ +name: Package + +on: + workflow_dispatch: + push: + tags: + - '*' + +jobs: + package: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Prepare build + run: | + mkdir build + + - uses: php-actions/composer@v6 + with: + php_version: 7.2 + + - name: Build + run: | + vendor/bin/phing + + - name: Release + uses: softprops/action-gh-release@v1 + with: + draft: true + fail_on_unmatched_files: true + files: build/upload/*.zip diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1d54e55..ce96aff 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -87,336 +87,336 @@ jobs: working-directory: ./phpBB3 # END Basic Checks Job - # START MySQL and MariaDB Job - mysql-tests: - runs-on: ubuntu-20.04 - strategy: - matrix: - include: - - php: '7.2' - db: "mariadb:10.1" - - php: '7.2' - db: "mariadb:10.2" - - php: '7.2' - db: "mariadb:10.3" - - php: '7.2' - db: "mariadb:10.4" - - php: '7.2' - db: "mariadb:10.5" - - php: '7.2' - db: "mysql:5.6" - db_alias: "MySQL Slow Tests" - SLOWTESTS: 1 - - php: '7.2' - db: "mysql:5.6" - db_alias: "MyISAM Tests" - MYISAM: 1 - - php: '7.2' - db: "mysql:5.6" - - php: '7.2' - db: "mysql:5.7" - - php: '7.3' - db: "mysql:5.7" - - php: '7.4' - db: "mysql:5.7" - - php: '7.4' - db: "mysql:8.0" - - php: '8.0' - db: "mysql:5.7" - - php: '8.1' - db: "mysql:5.7" - - php: '8.2' - db: "mysql:5.7" - - name: PHP ${{ matrix.php }} - ${{ matrix.db_alias != '' && matrix.db_alias || matrix.db }} - - services: - mysql: - image: ${{ matrix.db }} - env: - MYSQL_ALLOW_EMPTY_PASSWORD: yes - MYSQL_DATABASE: phpbb_tests - ports: - - 3306:3306 - options: >- - --health-cmd="mysqladmin ping" - --health-interval=10s - --health-timeout=5s - --health-retries=3 - - redis: - image: redis - options: >- - --health-cmd "redis-cli ping" - --health-interval 10s - --health-timeout 5s - --health-retries 5 - ports: - - 6379:6379 - - steps: - - name: Checkout phpBB - uses: actions/checkout@v2 - with: - repository: phpbb/phpbb - ref: ${{ env.PHPBB_BRANCH }} - path: phpBB3 - - - name: Checkout extension - uses: actions/checkout@v2 - with: - path: phpBB3/phpBB/ext/${{ env.EXTNAME }} - - - id: database-type - env: - MATRIX_DB: ${{ matrix.db }} - run: | - db=$(echo "${MATRIX_DB%%:*}") - echo "::set-output name=db::$db" - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php }} - extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, mysqli, sqlite, pdo_sqlite, intl, gd, exif, iconv, sqlsrv, pdo_sqlsrv, ldap - coverage: none - - - name: Setup environment for phpBB - env: - DB: ${{steps.database-type.outputs.db}} - PHP_VERSION: ${{ matrix.php }} - NOTESTS: '0' - run: .github/setup-phpbb.sh $DB $PHP_VERSION ${NOTESTS:-0} - working-directory: ./phpBB3 - - - name: Setup database - env: - DB: ${{steps.database-type.outputs.db}} - MYISAM: ${{ matrix.MYISAM != 1 && '0' || '1' }} - run: .github/setup-database.sh $DB $MYISAM - working-directory: ./phpBB3 - - - name: Setup PHPUnit files - run: mkdir -p phpBB/ext/$EXTNAME/.github && cp .github/phpunit* $_ - working-directory: ./phpBB3 - - - name: Run unit tests - env: - DB: ${{steps.database-type.outputs.db}} - run: phpBB/vendor/bin/phpunit --configuration phpBB/ext/$EXTNAME/.github/phpunit-$DB-github.xml --bootstrap ./tests/bootstrap.php - working-directory: ./phpBB3 - # END MySQL and MariaDB Job - - # START PostgreSQL Job - postgres-tests: - runs-on: ubuntu-20.04 - strategy: - matrix: - include: - - php: '7.2' - db: "postgres:9.3" - - php: '7.2' - db: "postgres:9.5" - - php: '7.2' - db: "postgres:9.6" - - php: '7.2' - db: "postgres:10" - - php: '7.2' - db: "postgres:11" - - php: '7.2' - db: "postgres:12" - - php: '7.2' - db: "postgres:13" - - php: '7.3' - db: "postgres:13" - - php: '7.4' - db: "postgres:13" - - php: '8.0' - db: "postgres:12" - - php: '8.0' - db: "postgres:13" - - php: '8.1' - db: "postgres:14" - - php: '8.2' - db: "postgres:14" - - name: PHP ${{ matrix.php }} - ${{ matrix.db }} - - services: - postgres: - image: ${{ matrix.db != 'postgres:9.5' && matrix.db != 'postgres:9.6' && matrix.db != 'postgres:10' && matrix.db != 'postgres:11' && matrix.db != 'postgres:12' && matrix.db != 'postgres:13' && 'postgres:10' || matrix.db }} - env: - POSTGRES_HOST: localhost - POSTGRES_USER: postgres - POSTGRES_PASSWORD: postgres - ports: - - 5432:5432 - options: >- - -v /var/run/postgresql:/var/run/postgresql - --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 5 - - redis: - image: redis - options: >- - --health-cmd "redis-cli ping" - --health-interval 10s - --health-timeout 5s - --health-retries 5 - ports: - - 6379:6379 - - steps: - - name: Checkout phpBB - uses: actions/checkout@v2 - with: - repository: phpbb/phpbb - ref: ${{ env.PHPBB_BRANCH }} - path: phpBB3 - - - name: Checkout extension - uses: actions/checkout@v2 - with: - path: phpBB3/phpBB/ext/${{ env.EXTNAME }} - - - id: database-type - env: - MATRIX_DB: ${{ matrix.db }} - run: | - db=$(echo "${MATRIX_DB%%:*}") - echo "::set-output name=db::$db" - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php }} - extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, mysqli, sqlite, pdo_sqlite, intl, gd, exif, iconv, sqlsrv, pdo_sqlsrv, ldap - coverage: none - - - name: Setup environment for phpBB - env: - DB: ${{steps.database-type.outputs.db}} - PHP_VERSION: ${{ matrix.php }} - NOTESTS: '0' - run: .github/setup-phpbb.sh $DB $PHP_VERSION ${NOTESTS:-0} - working-directory: ./phpBB3 - - - name: Setup database - env: - DB: ${{steps.database-type.outputs.db}} - MYISAM: '0' - run: .github/setup-database.sh $DB $MYISAM - working-directory: ./phpBB3 - - - name: Setup PHPUnit files - run: mkdir -p phpBB/ext/$EXTNAME/.github && cp .github/phpunit* $_ - working-directory: ./phpBB3 - - - name: Run unit tests - env: - DB: ${{steps.database-type.outputs.db}} - run: phpBB/vendor/bin/phpunit --configuration phpBB/ext/$EXTNAME/.github/phpunit-$DB-github.xml --bootstrap ./tests/bootstrap.php - working-directory: ./phpBB3 - # END PostgreSQL Job - - # START Other Tests Job (SQLite 3 and mssql) - other-tests: - runs-on: ubuntu-20.04 - strategy: - matrix: - include: - - php: '7.2' - db: "sqlite3" - - php: '7.2' - db: "mcr.microsoft.com/mssql/server:2017-latest" - db_alias: 'MSSQL 2017' - - php: '7.2' - db: "mcr.microsoft.com/mssql/server:2019-latest" - db_alias: 'MSSQL 2019' - - name: PHP ${{ matrix.php }} - ${{ matrix.db_alias != '' && matrix.db_alias || matrix.db }} - - services: - mssql: - image: ${{ matrix.db != 'mcr.microsoft.com/mssql/server:2017-latest' && matrix.db != 'mcr.microsoft.com/mssql/server:2019-latest' && 'mcr.microsoft.com/mssql/server:2017-latest' || matrix.db }} - env: - SA_PASSWORD: "Pssw0rd_12" - ACCEPT_EULA: "y" - ports: - - 1433:1433 - options: >- - --health-cmd="/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 'Pssw0rd_12' -Q \"Use [master]; CREATE DATABASE [phpbb_tests] COLLATE Latin1_General_CI_AS\" || exit 1" - --health-interval 10s - --health-timeout 5s - --health-retries 5 - --health-start-period 10s - - redis: - image: redis - options: >- - --health-cmd "redis-cli ping" - --health-interval 10s - --health-timeout 5s - --health-retries 5 - ports: - - 6379:6379 - - steps: - - name: Checkout phpBB - uses: actions/checkout@v2 - with: - repository: phpbb/phpbb - ref: ${{ env.PHPBB_BRANCH }} - path: phpBB3 - - - name: Checkout extension - uses: actions/checkout@v2 - with: - path: phpBB3/phpBB/ext/${{ env.EXTNAME }} - - - id: database-type - env: - MATRIX_DB: ${{ matrix.db }} - run: | - if [ $MATRIX_DB == 'mcr.microsoft.com/mssql/server:2017-latest' ] || [ $MATRIX_DB == 'mcr.microsoft.com/mssql/server:2019-latest' ] - then - db='mssql' - else - db=$(echo "${MATRIX_DB%%:*}") - fi - echo "::set-output name=db::$db" - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php }} - extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, mysqli, sqlite, pdo_sqlite, intl, gd, exif, iconv, sqlsrv, pdo_sqlsrv, ldap - coverage: none - - - name: Setup environment for phpBB - env: - DB: ${{steps.database-type.outputs.db}} - PHP_VERSION: ${{ matrix.php }} - NOTESTS: '0' - run: .github/setup-phpbb.sh $DB $PHP_VERSION ${NOTESTS:-0} - working-directory: ./phpBB3 - - - name: Setup database - env: - DB: ${{steps.database-type.outputs.db}} - MYISAM: '0' - run: .github/setup-database.sh $DB $MYISAM - working-directory: ./phpBB3 - - - name: Setup PHPUnit files - run: mkdir -p phpBB/ext/$EXTNAME/.github && cp .github/phpunit* $_ - working-directory: ./phpBB3 - - - name: Run unit tests - env: - DB: ${{steps.database-type.outputs.db}} - run: phpBB/vendor/bin/phpunit --configuration phpBB/ext/$EXTNAME/.github/phpunit-$DB-github.xml --bootstrap ./tests/bootstrap.php - working-directory: ./phpBB3 +# # START MySQL and MariaDB Job +# mysql-tests: +# runs-on: ubuntu-20.04 +# strategy: +# matrix: +# include: +# - php: '7.2' +# db: "mariadb:10.1" +# - php: '7.2' +# db: "mariadb:10.2" +# - php: '7.2' +# db: "mariadb:10.3" +# - php: '7.2' +# db: "mariadb:10.4" +# - php: '7.2' +# db: "mariadb:10.5" +# - php: '7.2' +# db: "mysql:5.6" +# db_alias: "MySQL Slow Tests" +# SLOWTESTS: 1 +# - php: '7.2' +# db: "mysql:5.6" +# db_alias: "MyISAM Tests" +# MYISAM: 1 +# - php: '7.2' +# db: "mysql:5.6" +# - php: '7.2' +# db: "mysql:5.7" +# - php: '7.3' +# db: "mysql:5.7" +# - php: '7.4' +# db: "mysql:5.7" +# - php: '7.4' +# db: "mysql:8.0" +# - php: '8.0' +# db: "mysql:5.7" +# - php: '8.1' +# db: "mysql:5.7" +# - php: '8.2' +# db: "mysql:5.7" +# +# name: PHP ${{ matrix.php }} - ${{ matrix.db_alias != '' && matrix.db_alias || matrix.db }} +# +# services: +# mysql: +# image: ${{ matrix.db }} +# env: +# MYSQL_ALLOW_EMPTY_PASSWORD: yes +# MYSQL_DATABASE: phpbb_tests +# ports: +# - 3306:3306 +# options: >- +# --health-cmd="mysqladmin ping" +# --health-interval=10s +# --health-timeout=5s +# --health-retries=3 +# +# redis: +# image: redis +# options: >- +# --health-cmd "redis-cli ping" +# --health-interval 10s +# --health-timeout 5s +# --health-retries 5 +# ports: +# - 6379:6379 +# +# steps: +# - name: Checkout phpBB +# uses: actions/checkout@v2 +# with: +# repository: phpbb/phpbb +# ref: ${{ env.PHPBB_BRANCH }} +# path: phpBB3 +# +# - name: Checkout extension +# uses: actions/checkout@v2 +# with: +# path: phpBB3/phpBB/ext/${{ env.EXTNAME }} +# +# - id: database-type +# env: +# MATRIX_DB: ${{ matrix.db }} +# run: | +# db=$(echo "${MATRIX_DB%%:*}") +# echo "::set-output name=db::$db" +# +# - name: Setup PHP +# uses: shivammathur/setup-php@v2 +# with: +# php-version: ${{ matrix.php }} +# extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, mysqli, sqlite, pdo_sqlite, intl, gd, exif, iconv, sqlsrv, pdo_sqlsrv, ldap +# coverage: none +# +# - name: Setup environment for phpBB +# env: +# DB: ${{steps.database-type.outputs.db}} +# PHP_VERSION: ${{ matrix.php }} +# NOTESTS: '0' +# run: .github/setup-phpbb.sh $DB $PHP_VERSION ${NOTESTS:-0} +# working-directory: ./phpBB3 +# +# - name: Setup database +# env: +# DB: ${{steps.database-type.outputs.db}} +# MYISAM: ${{ matrix.MYISAM != 1 && '0' || '1' }} +# run: .github/setup-database.sh $DB $MYISAM +# working-directory: ./phpBB3 +# +# - name: Setup PHPUnit files +# run: mkdir -p phpBB/ext/$EXTNAME/.github && cp .github/phpunit* $_ +# working-directory: ./phpBB3 +# +# - name: Run unit tests +# env: +# DB: ${{steps.database-type.outputs.db}} +# run: phpBB/vendor/bin/phpunit --configuration phpBB/ext/$EXTNAME/.github/phpunit-$DB-github.xml --bootstrap ./tests/bootstrap.php +# working-directory: ./phpBB3 +# # END MySQL and MariaDB Job +# +# # START PostgreSQL Job +# postgres-tests: +# runs-on: ubuntu-20.04 +# strategy: +# matrix: +# include: +# - php: '7.2' +# db: "postgres:9.3" +# - php: '7.2' +# db: "postgres:9.5" +# - php: '7.2' +# db: "postgres:9.6" +# - php: '7.2' +# db: "postgres:10" +# - php: '7.2' +# db: "postgres:11" +# - php: '7.2' +# db: "postgres:12" +# - php: '7.2' +# db: "postgres:13" +# - php: '7.3' +# db: "postgres:13" +# - php: '7.4' +# db: "postgres:13" +# - php: '8.0' +# db: "postgres:12" +# - php: '8.0' +# db: "postgres:13" +# - php: '8.1' +# db: "postgres:14" +# - php: '8.2' +# db: "postgres:14" +# +# name: PHP ${{ matrix.php }} - ${{ matrix.db }} +# +# services: +# postgres: +# image: ${{ matrix.db != 'postgres:9.5' && matrix.db != 'postgres:9.6' && matrix.db != 'postgres:10' && matrix.db != 'postgres:11' && matrix.db != 'postgres:12' && matrix.db != 'postgres:13' && 'postgres:10' || matrix.db }} +# env: +# POSTGRES_HOST: localhost +# POSTGRES_USER: postgres +# POSTGRES_PASSWORD: postgres +# ports: +# - 5432:5432 +# options: >- +# -v /var/run/postgresql:/var/run/postgresql +# --health-cmd pg_isready +# --health-interval 10s +# --health-timeout 5s +# --health-retries 5 +# +# redis: +# image: redis +# options: >- +# --health-cmd "redis-cli ping" +# --health-interval 10s +# --health-timeout 5s +# --health-retries 5 +# ports: +# - 6379:6379 +# +# steps: +# - name: Checkout phpBB +# uses: actions/checkout@v2 +# with: +# repository: phpbb/phpbb +# ref: ${{ env.PHPBB_BRANCH }} +# path: phpBB3 +# +# - name: Checkout extension +# uses: actions/checkout@v2 +# with: +# path: phpBB3/phpBB/ext/${{ env.EXTNAME }} +# +# - id: database-type +# env: +# MATRIX_DB: ${{ matrix.db }} +# run: | +# db=$(echo "${MATRIX_DB%%:*}") +# echo "::set-output name=db::$db" +# +# - name: Setup PHP +# uses: shivammathur/setup-php@v2 +# with: +# php-version: ${{ matrix.php }} +# extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, mysqli, sqlite, pdo_sqlite, intl, gd, exif, iconv, sqlsrv, pdo_sqlsrv, ldap +# coverage: none +# +# - name: Setup environment for phpBB +# env: +# DB: ${{steps.database-type.outputs.db}} +# PHP_VERSION: ${{ matrix.php }} +# NOTESTS: '0' +# run: .github/setup-phpbb.sh $DB $PHP_VERSION ${NOTESTS:-0} +# working-directory: ./phpBB3 +# +# - name: Setup database +# env: +# DB: ${{steps.database-type.outputs.db}} +# MYISAM: '0' +# run: .github/setup-database.sh $DB $MYISAM +# working-directory: ./phpBB3 +# +# - name: Setup PHPUnit files +# run: mkdir -p phpBB/ext/$EXTNAME/.github && cp .github/phpunit* $_ +# working-directory: ./phpBB3 +# +# - name: Run unit tests +# env: +# DB: ${{steps.database-type.outputs.db}} +# run: phpBB/vendor/bin/phpunit --configuration phpBB/ext/$EXTNAME/.github/phpunit-$DB-github.xml --bootstrap ./tests/bootstrap.php +# working-directory: ./phpBB3 +# # END PostgreSQL Job +# +# # START Other Tests Job (SQLite 3 and mssql) +# other-tests: +# runs-on: ubuntu-20.04 +# strategy: +# matrix: +# include: +# - php: '7.2' +# db: "sqlite3" +# - php: '7.2' +# db: "mcr.microsoft.com/mssql/server:2017-latest" +# db_alias: 'MSSQL 2017' +# - php: '7.2' +# db: "mcr.microsoft.com/mssql/server:2019-latest" +# db_alias: 'MSSQL 2019' +# +# name: PHP ${{ matrix.php }} - ${{ matrix.db_alias != '' && matrix.db_alias || matrix.db }} +# +# services: +# mssql: +# image: ${{ matrix.db != 'mcr.microsoft.com/mssql/server:2017-latest' && matrix.db != 'mcr.microsoft.com/mssql/server:2019-latest' && 'mcr.microsoft.com/mssql/server:2017-latest' || matrix.db }} +# env: +# SA_PASSWORD: "Pssw0rd_12" +# ACCEPT_EULA: "y" +# ports: +# - 1433:1433 +# options: >- +# --health-cmd="/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 'Pssw0rd_12' -Q \"Use [master]; CREATE DATABASE [phpbb_tests] COLLATE Latin1_General_CI_AS\" || exit 1" +# --health-interval 10s +# --health-timeout 5s +# --health-retries 5 +# --health-start-period 10s +# +# redis: +# image: redis +# options: >- +# --health-cmd "redis-cli ping" +# --health-interval 10s +# --health-timeout 5s +# --health-retries 5 +# ports: +# - 6379:6379 +# +# steps: +# - name: Checkout phpBB +# uses: actions/checkout@v2 +# with: +# repository: phpbb/phpbb +# ref: ${{ env.PHPBB_BRANCH }} +# path: phpBB3 +# +# - name: Checkout extension +# uses: actions/checkout@v2 +# with: +# path: phpBB3/phpBB/ext/${{ env.EXTNAME }} +# +# - id: database-type +# env: +# MATRIX_DB: ${{ matrix.db }} +# run: | +# if [ $MATRIX_DB == 'mcr.microsoft.com/mssql/server:2017-latest' ] || [ $MATRIX_DB == 'mcr.microsoft.com/mssql/server:2019-latest' ] +# then +# db='mssql' +# else +# db=$(echo "${MATRIX_DB%%:*}") +# fi +# echo "::set-output name=db::$db" +# +# - name: Setup PHP +# uses: shivammathur/setup-php@v2 +# with: +# php-version: ${{ matrix.php }} +# extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, mysqli, sqlite, pdo_sqlite, intl, gd, exif, iconv, sqlsrv, pdo_sqlsrv, ldap +# coverage: none +# +# - name: Setup environment for phpBB +# env: +# DB: ${{steps.database-type.outputs.db}} +# PHP_VERSION: ${{ matrix.php }} +# NOTESTS: '0' +# run: .github/setup-phpbb.sh $DB $PHP_VERSION ${NOTESTS:-0} +# working-directory: ./phpBB3 +# +# - name: Setup database +# env: +# DB: ${{steps.database-type.outputs.db}} +# MYISAM: '0' +# run: .github/setup-database.sh $DB $MYISAM +# working-directory: ./phpBB3 +# +# - name: Setup PHPUnit files +# run: mkdir -p phpBB/ext/$EXTNAME/.github && cp .github/phpunit* $_ +# working-directory: ./phpBB3 +# +# - name: Run unit tests +# env: +# DB: ${{steps.database-type.outputs.db}} +# run: phpBB/vendor/bin/phpunit --configuration phpBB/ext/$EXTNAME/.github/phpunit-$DB-github.xml --bootstrap ./tests/bootstrap.php +# working-directory: ./phpBB3 # END Other Tests Job