Skip to content

Commit

Permalink
Avoid using 'WP' prefix for namespaces according to WP requirements. …
Browse files Browse the repository at this point in the history
…Add GitHub Action. Update tested version of BuddyBoss
  • Loading branch information
balexey88 committed Jan 25, 2024
1 parent 3d31039 commit 79eed98
Show file tree
Hide file tree
Showing 11 changed files with 171 additions and 18 deletions.
131 changes: 131 additions & 0 deletions .github/workflows/publish-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
name: Publish Release
run-name: Publish Release

on:
workflow_dispatch:
inputs:
release:
description: 'Release version (e.g. 1.2.3)'
required: true

permissions:
contents: write

env:
TAG: ${{ github.event.inputs.release }}
BRANCH: temp-release-${{ github.event.inputs.release }}

jobs:
build:
runs-on: ubuntu-latest
steps:
# ref and repository are required, otherwise repo could appear in detached head state
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
repository: ${{ github.repository }}

- name: Parse Changelog Entries
uses: actions/github-script@v7
id: changelog
with:
script: |
const { open } = require('fs/promises');
const version = process.env.TAG;
const delimiter = '#### ';
const file = await open('./changes.md');
let description = [];
let found = false;
for await (let line of file.readLines()) {
line = line.trim();
if ( line.startsWith(`${delimiter}${version}`) ) {
found = true;
continue;
}
if (!found) continue;
if ( line.startsWith(delimiter) ) break;
description.push(line);
}
if ( !description.length ) core.setFailed(`Release ${version} not found in the changelog!`);
core.setOutput('description', description.join('\n') );
# cleanup files that are not needed for the release
# but keep the .git folder, because we need it for the next step
- name: Cleanup files
run: |
rm -f composer.lock || true
rm -rf tests || true
rm -rf vendor/composer/installers || true
find ./ -name '.git*' -not -path './.git' -type f -delete || true
find ./ -name '.git*' -not -path './.git' -type d -exec rm -rf {} \; || true
find ./vendor -name .svn -exec rm -rf {} \; || true
# cleanup files, specific to Google API PHP library
- name: Cleanup files for Google API library
run: |
rm -f lib/Google/phpstan.neon.dist || true
rm -f lib/Google/vendor/paragonie/random_compat/build-phar.sh || true
find ./lib/Google/ -name '.repo-metadata.json' -type f -delete || true
find ./lib/Google/vendor -name .svn -exec rm -rf '{}' \; || true
# commit changes to temporary release branch and create a new tag
- name: Commit changes
uses: EndBug/add-and-commit@v9
with:
message: Cleanup files for release
new_branch: ${{ env.BRANCH }}
tag: ${{ env.TAG }}

# generate SBOM that will be attached to a release as an artifact
- name: Create SBOM
id: sbom
uses: anchore/sbom-action@v0
with:
path: .
output-file: sbom.spdx.json
format: spdx-json

# create a draft release with the version changelog as a description
- name: Create Draft Release
id: draft_release
uses: softprops/action-gh-release@v1
with:
name: "Release ${{ env.TAG }}"
body: "${{ steps.changelog.outputs.description }}"
tag_name: ${{ env.TAG }}
draft: true
prerelease: false

# attach SBOM to release
- name: Upload SBOM to release
uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.draft_release.outputs.upload_url }}
asset_path: ./sbom.spdx.json
asset_name: sbom.spdx.json
asset_content_type: application/json

# publish release using an ID from the 'draft_release' step
- name: Publish Release
uses: eregon/publish-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
release_id: ${{ steps.draft_release.outputs.id }}

# delete temporary release branch
- name: Delete temporary release branch
run: |
git push origin --delete ${{ env.BRANCH }}
25 changes: 25 additions & 0 deletions .github/workflows/security-scan.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Security Scan
run-name: Security Scan

on:
push:
pull_request:
workflow_dispatch:

jobs:
code-scanning:
name: Code Scanning (grype)
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Run Security Check
id: test
uses: anchore/scan-action@v3
with:
path: .
output-format: table


2 changes: 0 additions & 2 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@ name: Tests

on:
push:
branches: [main]
pull_request:
branches: [main]

jobs:
build:
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Provides compatibility between the [BuddyBoss Platform](https://www.buddyboss.co

### Notes

* Tested with BuddyBoss Platform plugin version 2.4.71
* Tested with BuddyBoss Platform plugin version 2.5.30

### Support, Feedback, & Contribute

Expand Down
2 changes: 1 addition & 1 deletion SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,6 @@ Security updates are provided for the latest stable release. Please ensure that

## Contact Information

For security-related matters, please contact our security team at [[email protected]](mailto:[email protected]). For general inquiries, feature requests, and other non-security-related discussions, please use our regular [issue tracker](https://github.com/udx/wp-stateless/issues).
For security-related matters, please contact our security team at [[email protected]](mailto:[email protected]). For general inquiries, feature requests, and other non-security-related discussions, please use our regular [issue tracker](https://github.com/udx/wp-stateless-buddyboss-addon/issues).

Thank you for helping us ensure the security of WP-Stateless - BuddyBoss Platform Addon. Your contributions are greatly appreciated.
2 changes: 1 addition & 1 deletion class-buddyboss.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace WPSL\BuddyBoss;
namespace SLCA\BuddyBoss;

use wpCloud\StatelessMedia\Compatibility;
use wpCloud\StatelessMedia\Utility;
Expand Down
2 changes: 1 addition & 1 deletion readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Provides compatibility between the [BuddyBoss Platform](https://www.buddyboss.co

= Notes =

* Tested with BuddyBoss Platform: 2.4.71
* Tested with BuddyBoss Platform plugin version 2.5.30

= Support, Feedback, & Contribute =

Expand Down
3 changes: 1 addition & 2 deletions tests/ClassBuddyBossTest.php
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
<?php

namespace WPSL\BuddyBoss;
namespace SLCA\BuddyBoss;

use PHPUnit\Framework\TestCase;
use Mockery\Adapter\Phpunit\MockeryPHPUnitIntegration;
use Brain\Monkey;
use Brain\Monkey\Functions;
use WPSL\BuddyBoss\BuddyBoss;

/**
* Class ClassBuddyBossTest
Expand Down
2 changes: 1 addition & 1 deletion vendor/bin/.phpunit.result.cache
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"version":1,"defects":{"WPSL\\BuddyBoss\\ClassBuddyBossTest::testShouldInitHooks":4,"WPSL\\BuddyBoss\\ClassBuddyBossTest::testShouldSkipCacheBusting":4,"WPSL\\BuddyBoss\\ClassBuddyBossTest::testShouldNotSkipCacheBusting":4},"times":{"WPSL\\BuddyBoss\\ClassBuddyBossTest::testShouldInitModule":0.007,"WPSL\\BuddyBoss\\ClassBuddyBossTest::testShouldSkipCacheBusting":0.001,"WPSL\\BuddyBoss\\ClassBuddyBossTest::testShouldInitHooks":0.066,"WPSL\\BuddyBoss\\ClassBuddyBossTest::testShouldNotSkipCacheBusting":0}}
{"version":1,"defects":{"WPSL\\BuddyBoss\\ClassBuddyBossTest::testShouldInitHooks":4,"WPSL\\BuddyBoss\\ClassBuddyBossTest::testShouldSkipCacheBusting":4,"WPSL\\BuddyBoss\\ClassBuddyBossTest::testShouldNotSkipCacheBusting":4},"times":{"WPSL\\BuddyBoss\\ClassBuddyBossTest::testShouldInitModule":0.007,"WPSL\\BuddyBoss\\ClassBuddyBossTest::testShouldSkipCacheBusting":0.001,"WPSL\\BuddyBoss\\ClassBuddyBossTest::testShouldInitHooks":0.066,"WPSL\\BuddyBoss\\ClassBuddyBossTest::testShouldNotSkipCacheBusting":0,"SLCA\\BuddyBoss\\ClassBuddyBossTest::testShouldInitHooks":0.091,"SLCA\\BuddyBoss\\ClassBuddyBossTest::testShouldSkipCacheBusting":0.002,"SLCA\\BuddyBoss\\ClassBuddyBossTest::testShouldNotSkipCacheBusting":0}}
12 changes: 6 additions & 6 deletions vendor/composer/installed.php
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
<?php return array(
'root' => array(
'name' => 'udx/wp-stateless-buddyboss-addon',
'pretty_version' => 'dev-main',
'version' => 'dev-main',
'reference' => '1b767ed5c537e8a2d29ad84efdc4ea9b6407ebfd',
'pretty_version' => 'dev-latest',
'version' => 'dev-latest',
'reference' => '3d31039596cdf2f586673377800300880e74e451',
'type' => 'wordpress-plugin',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
'dev' => false,
),
'versions' => array(
'udx/wp-stateless-buddyboss-addon' => array(
'pretty_version' => 'dev-main',
'version' => 'dev-main',
'reference' => '1b767ed5c537e8a2d29ad84efdc4ea9b6407ebfd',
'pretty_version' => 'dev-latest',
'version' => 'dev-latest',
'reference' => '3d31039596cdf2f586673377800300880e74e451',
'type' => 'wordpress-plugin',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
Expand Down
6 changes: 3 additions & 3 deletions wp-stateless-buddyboss-addon.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@
* Description: Provides compatibility between the BuddyBoss Platform and the WP-Stateless plugin.
* Author: UDX
* Version: 0.0.1
* Text Domain: wpsbbp
* Text Domain: slcabbp
* Author URI: https://udx.io
* License: MIT
*
* Copyright 2024 UDX (email: [email protected])
*/

namespace WPSL\BuddyBoss;
namespace SLCA\BuddyBoss;

add_action('plugins_loaded', function () {
if (class_exists('wpCloud\StatelessMedia\Compatibility')) {
Expand All @@ -24,7 +24,7 @@

add_filter('plugin_row_meta', function ($plugin_meta, $plugin_file, $_, $__) {
if ($plugin_file !== join(DIRECTORY_SEPARATOR, [basename(__DIR__), basename(__FILE__)])) return $plugin_meta;
$plugin_meta[] = sprintf('<span style="color:red;">%s</span>', __('This plugin requires WP-Stateless plugin version 4.0.0 or greater to be installed and active.'));
$plugin_meta[] = sprintf('<span style="color:red;">%s</span>', __('This plugin requires WP-Stateless plugin version 3.4.0 or greater to be installed and active.'));
return $plugin_meta;
}, 10, 4);
});

0 comments on commit 79eed98

Please sign in to comment.