Entry

Using directus-to-data in GitHub Actions

Solution

# .github/workflows/directus.yml
name: Update data from Directus webhook

on:
  workflow_dispatch:

concurrency:
  group: directus
  cancel-in-progress: true

jobs:
  update-data:
    runs-on: ubuntu-latest
    permissions:
      contents: write
    
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
      
      - name: Install dependencies
        run: yarn install --immutable 

      # to generate files in src/
      - name: Fetch data
        run: yarn directus-to-data --collection-output src/_data/{{collectionName}}.json -c CollectionNameOne -c CollectionNameTwo
        env:
          CMS_URL: ${{ secrets.CMS_URL }}
          STATIC_TOKEN: ${{ secrets.STATIC_TOKEN }}
      
      - uses: EndBug/add-and-commit@v9
        with:
          add: 'src/*'
          default_author: github_actions
          message: 'CMS update (${{ github.event.repository.updated_at}})'

  deploy:
    uses: ./.github/workflows/deploy.yml
    needs: update-data
    permissions:
      contents: read
      pages: write
      id-token: write
    secrets: inherit