Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/palakis/obs-tools


https://github.com/palakis/obs-tools

Last synced: about 7 hours ago
JSON representation

Awesome Lists containing this project

README

        

# OBS Plugin Template

## Introduction

This plugin is meant to make it easy to quickstart development of new OBS plugins. It includes:

- The CMake project file
- Boilerplate plugin source code
- A continuous-integration configuration for automated builds (a.k.a Build Bot)

## Configuring

Open `CMakeLists.txt` and edit the following lines at the beginning:

```cmake
# Change `obs-plugintemplate` to your plugin's name in a machine-readable format
# (e.g.: obs-myawesomeplugin) and set the value next to `VERSION` as your plugin's current version
project(obs-plugintemplate VERSION 1.0.0)

# Replace `Your Name Here` with the name (yours or your organization's) you want
# to see as the author of the plugin (in the plugin's metadata itself and in the installers)
set(PLUGIN_AUTHOR "Your Name Here")

# Replace `com.example.obs-plugin-template` with a unique Bundle ID for macOS releases
# (used both in the installer and when submitting the installer for notarization)
set(MACOS_BUNDLEID "com.example.obs-plugintemplate")

# Replace `[email protected]` with the maintainer email address you want to put in Linux packages
set(LINUX_MAINTAINER_EMAIL "[email protected]")
```

## CI / Build Bot

The CI scripts are made for Azure Pipelines. The sections below detail some of the common tasks possible with that CI configuration.

### Retrieving build artifacts

Each build produces installers and packages that you can use for testing and releases. These artifacts can be found a Build's page on Azure Pipelines.

#### Building a Release

Simply create and push a tag, and Azure Pipelines will run the pipeline in Release Mode. This mode uses the tag as its version number instead of the git ref in normal mode.

### Signing and Notarizing on macOS

On macOS, Release Mode builds will be signed and sent to Apple for notarization if `macosSignAndNotarize` is set to `True` at the top of the `azure-pipelines.yml` file. **You'll need a paid Apple Developer Account for this.**

In addition to enabling `macosSignAndNotarize`, you'll need to setup a few more things for Signing and Notarizing to work:

- On your Apple Developer dashboard, go to "Certificates, IDs & Profiles" and create two signing certificates:
- One of the "Developer ID Application" type. It will be used to sign the plugin's binaries
- One of the "Developer ID Installer" type. It will be used to sign the plugin's installer
- Using the Keychain app on macOS, export these two certificates and keys into a .p12 file **protected with a strong password**
- Add that `Certificates.P12` file as a [Secure File in Azure Pipelines](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/secure-files?view=azure-devops) and make sure it is named `Certificates.p12`
- Add the following secrets in your pipeline settings:
- `secrets.macOS.certificatesImportPassword`: Password of the .p12 file generated earlier
- `secrets.macOS.codeSigningIdentity`: Name of the "Developer ID Application" signing certificate generated earlier
- `secrets.macOS.installerSigningIdentity`: Name of "Developer ID Installer" signing certificate generated earlier
- `secrets.macOS.notarization.username`: Your Apple Developer Account's username
- `secrets.macOS.notarization.password`: Your Apple Developer Account's password
- `secrets.macOS.notarization.providerShortName`: Identifier (`Provider Short Name`, as Apple calls it) of the Developer Team to which the signing certificates belong.