Skip to content

Commit

Permalink
update docs
Browse files Browse the repository at this point in the history
  • Loading branch information
jferdi24 committed Mar 7, 2024
1 parent 0b8a924 commit 6a278f9
Show file tree
Hide file tree
Showing 4 changed files with 100 additions and 89 deletions.
4 changes: 4 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Changelog

## 2.8.0 (2024-03-07)
- Add auth Basic to view version
4 changes: 2 additions & 2 deletions config/app-version.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@
'version' => \PlacetoPay\AppVersion\VersionFile::read(),

/**
* Credentials by get /version.
* the credentials to be able to see the deployed version.
*/
'username' => env('APP_VERSION_USERNAME', 'admin'),
'password' => env('APP_VERSION_PASSWORD', 'password'),
'password' => env('APP_VERSION_PASSWORD', 'Testing123!'),
];
4 changes: 0 additions & 4 deletions phpunit.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,4 @@
<logging>
<log type="coverage-html" target="./tests/coverage"/>
</logging>
<php>
<env name="APP_VERSION_USERNAME" value="admin"/>
<env name="APP_VERSION_PASSWORD" value="password"/>
</php>
</phpunit>
177 changes: 94 additions & 83 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
The `placetopay/app-version` package provides a way to know which version of your app is currently deployed.

* It can be used with [Envoyer](https://envoyer.io/) deployment hooks
* It can be integrated with [Sentry](https://sentry.io) to help you keep track of Releases and Deploys in the Sentry Dashboard
* It can be integrated with [Sentry](https://sentry.io) to help you keep track of Releases and Deploys in the Sentry
Dashboard
* Also you can integrate with [NewRelic](https://newrelic.com) to track each deployment in your APM

## Installation
Expand All @@ -22,123 +23,133 @@ If you are using Sentry please follow this steps to configure the deployments an

1. Publish the configuration file

```bash
php artisan vendor:publish --provider="PlacetoPay\AppVersion\VersionServiceProvider"
```
```bash
php artisan vendor:publish --provider="PlacetoPay\AppVersion\VersionServiceProvider"
```

2. Set up your environment variables at `config/app-version.php`

```php
return [
'sentry' => [
/*
* The sentry auth token used to authenticate with Sentry Api
* Create tokens here at account level https://sentry.io/settings/account/api/auth-tokens/
* Or here at organization level https://sentry.io/settings/your-organization/developer-settings/
*/
'auth_token' => env('APP_VERSION_SENTRY_AUTH'),
/*
* The organization name this project belongs to, you can find out the
* organization at https://sentry.io/settings/
*/
'organization' => env('APP_VERSION_SENTRY_ORGANIZATION', 'placetopay'),
/*
* The repository name of this project. Repositories are added in sentry as integrations.
* You must add your (Github|Bitbucket) integration at https://sentry.io/settings/your-organization/integrations/
* and then add the repositories you want to track commits
*/
'repository' => env('APP_VERSION_SENTRY_REPOSITORY'),
/*
* The name of this project in Sentry Dashboard
* You can find out the project name at https://sentry.io/settings/your-organization/projects/
*/
'project' => env('APP_VERSION_SENTRY_PROJECT'),
],
'newrelic' => [
/*
* The NewRelic Rest API Key, you can found it on the following URL when you are logged in
* https://rpm.newrelic.com/api/explore/application_deployments/create
*/
'api_key' => env('APP_VERSION_NEWRELIC_API_KEY'),
/*
* The NewRelic application id, you can get it from the URL in the APM
*/
'application_id' => env('APP_VERSION_NEWRELIC_APPLICATION_ID'),
],
```php
return [
'sentry' => [
/*
* The sentry auth token used to authenticate with Sentry Api
* Create tokens here at account level https://sentry.io/settings/account/api/auth-tokens/
* Or here at organization level https://sentry.io/settings/your-organization/developer-settings/
*/
'auth_token' => env('APP_VERSION_SENTRY_AUTH'),

/*
* The organization name this project belongs to, you can find out the
* organization at https://sentry.io/settings/
*/
'organization' => env('APP_VERSION_SENTRY_ORGANIZATION', 'placetopay'),

/*
* The repository name of this project. Repositories are added in sentry as integrations.
* You must add your (Github|Bitbucket) integration at https://sentry.io/settings/your-organization/integrations/
* and then add the repositories you want to track commits
*/
'repository' => env('APP_VERSION_SENTRY_REPOSITORY'),

/*
* The current deployed version, will be read from version file
* generated by `php artisan app-version:create ...` command
*/
'version' => \PlacetoPay\AppVersion\VersionFile::readSha(),
];
```
* The name of this project in Sentry Dashboard
* You can find out the project name at https://sentry.io/settings/your-organization/projects/
*/
'project' => env('APP_VERSION_SENTRY_PROJECT'),
],
'newrelic' => [
/*
* The NewRelic Rest API Key, you can found it on the following URL when you are logged in
* https://rpm.newrelic.com/api/explore/application_deployments/create
*/
'api_key' => env('APP_VERSION_NEWRELIC_API_KEY'),

/*
* The NewRelic application id, you can get it from the URL in the APM
*/
'application_id' => env('APP_VERSION_NEWRELIC_APPLICATION_ID'),
],

/*
* The current deployed version, will be read from version file
* generated by `php artisan app-version:create ...` command
*/
'version' => \PlacetoPay\AppVersion\VersionFile::readSha(),

/**
* the credentials to be able to see the deployed version.
*/
'username' => env('APP_VERSION_USERNAME', 'admin'),
'password' => env('APP_VERSION_PASSWORD', 'Testing123!'),
];
```

3. Set up the `config/sentry.php` file with the following settings
```php
return [
```php
return [
'dsn' => env('SENTRY_LARAVEL_DSN', env('SENTRY_DSN')),

'dsn' => env('SENTRY_LARAVEL_DSN', env('SENTRY_DSN')),
// capture release as git sha
'release' => \PlacetoPay\AppVersion\VersionFile::readSha(),

// capture release as git sha
'release' => \PlacetoPay\AppVersion\VersionFile::readSha(),
'breadcrumbs' => [
// Capture Laravel logs in breadcrumbs
'logs' => true,

'breadcrumbs' => [
// Capture Laravel logs in breadcrumbs
'logs' => true,
// Capture SQL queries in breadcrumbs
'sql_queries' => true,

// Capture SQL queries in breadcrumbs
'sql_queries' => true,
// Capture bindings on SQL queries logged in breadcrumbs
'sql_bindings' => true,

// Capture bindings on SQL queries logged in breadcrumbs
'sql_bindings' => true,
// Capture queue job information in breadcrumbs
'queue_info' => true,
],

// Capture queue job information in breadcrumbs
'queue_info' => true,
],
];
```
];
```

## Usage

You can visit `https://yourapp.com/version`

### Envoyer Hooks

Using tools to deploy like [Envoyer](https://envoyer.io) there is no git source available once deployed so using the sha, project and branch available information we create a file containing this information
Using tools to deploy like [Envoyer](https://envoyer.io) there is no git source available once deployed so using the
sha, project and branch available information we create a file containing this information

1. Create a deployment hook in the action "Activate New Release", it is vital that this hook runs **BEFORE running config:cache or optimize commands**
1. Create a deployment hook in the action "Activate New Release", it is vital that this hook runs **BEFORE running
config:cache or optimize commands**

```shell
cd {{ release }}
php artisan app-version:create --sha={{ sha }} --time={{ time }} --project={{ project }} --branch={{ branch }}
```
```shell
cd {{ release }}
php artisan app-version:create --sha={{ sha }} --time={{ time }} --project={{ project }} --branch={{ branch }}
```

This will generate your version file at `storage/app/app-version.json`
This will generate your version file at `storage/app/app-version.json`

2. If you are integrating with Sentry or NewRelic Releases/Deployments/Issues, Add these hooks so Sentry and NewRelic can track your deployments. It should be run AFTER running the optimization or configuration cache.
2. If you are integrating with Sentry or NewRelic Releases/Deployments/Issues, Add these hooks so Sentry and NewRelic
can track your deployments. It should be run AFTER running the optimization or configuration cache.

```shell
cd {{ release }}
php artisan app-version:create-release
php artisan app-version:create-deploy
```
```shell
cd {{ release }}
php artisan app-version:create-release
php artisan app-version:create-deploy
```

### Know your version from CLI

If you're using tinker you can get the version information with the following commands

To access the version information generated with the step 1 of the usage

```php
config('app-version.version.sha');
```

To access the sha

```php
PlacetoPay\AppVersion\VersionFile::readSha()
```

0 comments on commit 6a278f9

Please sign in to comment.