@mordamax/strapi-plugin-update-static-content

2.1.1 • Public • Published

Update Static Content - Strapi v4

Update your statically generated site with github actions (more coming on the way).


strapi plugin update static content logo

Plugin Previews

Plugin Settings

strapi plugin update static content configuration

Plugin Page

strapi plugin update static content plugin


Features

  • Workflow History
  • Config Page
  • Downloading Logs
  • Roles to access the plugin
  • Strapi Permissions in v1.0.7
  • Supports PAT (Personal Access Token) or Github App authentication

Installation

  yarn add strapi-plugin-update-static-content
  OR
  npm i strapi-plugin-update-static-content

Plugin Configuration

  1. Add plugin configs inside strapiProject/config/plugins.js

For using PAT (Personal Access Token)

module.exports = ({ env }) => ({
  'update-static-content': {
    enabled: true,
    config: {
      githubAuthType: 'token',
      githubToken: env('GITHUB_TOKEN'), // accessing personal github token from env file
      owner: 'everythinginjs', // owner of the repo
      repo: 'vahoora', // name of the repo
      workflowId: '40807041', // workflowId OR filename
      branch: 'main', // branch name
    },
  },
});

For using Github App authentication through Installation ID and Private Key,

module.exports = ({ env }) => ({
  'update-static-content': {
    enabled: true,
    config: {
      githubAuthType: 'app',
      githubAppId: env("GITHUB_APP_ID"),
      githubPrivateKey: Buffer.from(env("GITHUB_PRIVATE_KEY_BASE64"), "base64").toString("utf8"),
      githubInstallationId: env("GITHUB_INSTALLATION_ID"),
      owner: 'everythinginjs', // owner of the repo
      repo: 'vahoora', // name of the repo
      workflowId: 'deploy.yaml', // workflowId OR filename
      branch: 'main', // branch name
    },
  },
});

NOTE #1: add roles property (roles: ['strapi-super-admin', 'strapi-editor', 'strapi-author']) if you are using the plugin lesser than v1.0.7 since above that version it is handled by Strapi Permissions.

NOTE #2: In case you're using authentication through Github App, the GITHUB_PRIVATE_KEY_BASE64 should be base64 encoded to avoid issues with newlines and other characters. To base64 encode the private key, you can use the following command cat private-key.pem | base64

NOTE #3: The minimum required permissions for the Github App are Contents: Read and Workflows: Read & Write.

  1. Create a file in the root of your project .github/workflows/deploy.yml like below. In this example we are using fing cloud
name: Fing Deployment # a name for your workflow

on: # trigger on push event and main branch to the repo
  push:
    branches: [main]
  workflow_dispatch: # must be included in your .yml file for manually triggering event
defaults: # in case of monorepo project you can use `defauls` and choose the subfolder
  run:
    working-directory: ./gatsbyJS
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: install fing-cli and deploy
        env: # set the cloud provider token to the secrets on github and use it on run
          TOKEN: ${{ secrets.FING_TOKEN }}
        run: | # write your shell scripts for deploying or building based on your host provider
          npm install -g @fingcloud/cli
          fing --access-token "${TOKEN}" up --app vahoora-gatsby --dispatch

Roadmap

  • Cancel workflow manually.
  • Better documentation.

Special Thanks

Reza from Fing

Package Sidebar

Install

npm i @mordamax/strapi-plugin-update-static-content

Weekly Downloads

21

Version

2.1.1

License

MIT

Unpacked Size

1.1 MB

Total Files

78

Last publish

Collaborators

  • mordamax