Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/TryGhost/action-deploy-theme
:octocat: Deploy your Ghost theme with Github Actions
https://github.com/TryGhost/action-deploy-theme
ghost ghost-theme github-action github-actions
Last synced: 4 months ago
JSON representation
:octocat: Deploy your Ghost theme with Github Actions
- Host: GitHub
- URL: https://github.com/TryGhost/action-deploy-theme
- Owner: TryGhost
- License: mit
- Created: 2019-10-11T14:16:41.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-10-28T03:17:03.000Z (4 months ago)
- Last Synced: 2024-10-30T00:54:49.914Z (4 months ago)
- Topics: ghost, ghost-theme, github-action, github-actions
- Language: JavaScript
- Homepage:
- Size: 971 KB
- Stars: 355
- Watchers: 14
- Forks: 47
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-actions - Build and deploy a theme to Ghost CMS
- fucking-awesome-actions - Build and deploy a theme to Ghost CMS
- awesome-workflows - Build and deploy a theme to Ghost CMS
README
Deploy your Ghost Theme from GitHub
This GitHub action allows you to automatically build and deploy your Ghost Theme
from GitHub to any Ghost install, via the Ghost Admin API!
![]()
![]()
---
## Getting Started
💡 This action expects that you already have a working Ghost install running at least v2.25.5.
1. Generate a set of Ghost Admin API credentials, by configuring a new Custom Integration in Ghost Admin → Integrations.
2. On GitHub, navigate to your theme repository → Settings → Secrets and variables → Actions. Create a secret called `GHOST_ADMIN_API_URL` containing the API URL and another one called `GHOST_ADMIN_API_KEY` containing the Admin API Key. Both must be copied exactly from Ghost Admin → Integrations.
3. Once your secrets are in place, copy this example config into `.github/workflows/deploy-theme.yml`. Then commit and push your changes:
```yml
name: Deploy Theme
on:
push:
branches:
- master
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Deploy Ghost Theme
uses: TryGhost/action-deploy-theme@v1
with:
api-url: ${{ secrets.GHOST_ADMIN_API_URL }}
api-key: ${{ secrets.GHOST_ADMIN_API_KEY }}
```This will trigger a deployment for every commit to master. If you'd like to change the "on" event, see the [GitHub action documentation](https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#on), which shows how to build on Pull Requests, Releases, Tags and more.
## Configuration
The `with` portion of the workflow **must** be configured before the action will work. Any `secrets` must be referenced using the bracket syntax and stored in the GitHub repositories `Settings/Secrets` menu. You can learn more about setting environment variables with GitHub actions [here](https://help.github.com/en/articles/workflow-syntax-for-github-actions#jobsjob_idstepsenv).
| Key | Value Information | Type | Required |
| ------------- | ------------- | ------------- | ------------- |
| `api-url` | The base URL of your Ghost Admin API, found by configuring a new Custom Integration in Ghost Admin → Integrations | `secrets` | **Yes** |
| `api-key` | The authentication key for your Ghost Admin API, found by configuring a new Custom Integration in Ghost Admin → Integrations | `secrets` | **Yes** |
| `exclude` | A list of files & folders to exclude from the generated zip file in addition to the [defaults](https://github.com/TryGhost/action-deploy-theme/tree/main/index.js#L28), e.g. `"gulpfile.js *dist/*"` | `string` | No |
| `theme-name` | A custom theme name that overrides the default name in package.json. Useful if you use a fork of Casper, e.g. `"my-theme"` | `string` | No |
| `file` | Path to a built zip file. If this is included, the `exclude` and `theme-name` options are ignored | `string` | No |
| `working-directory` | A custom directory to zip when a theme is in a subdirectory, e.g. `packages/my-theme` | `string` | No |
:bulb: Use `exclude` to reduce the size of the zip file & keep deployment times minimal.
---
Don't forget to 🌟 Star 🌟 the repo if you like this GitHub Action!
# Copyright & License
Copyright (c) 2013-2023 Ghost Foundation - Released under the [MIT license](LICENSE).