name: Build and Deploy Components+Style Guide on: push: branches: - develop paths: ['web/stories/**', 'web/components/**', 'web/.storybook/**'] # Trigger the action only when files change in the folders defined here jobs: build-and-deploy: runs-on: ubuntu-latest if: github.repository == 'owncast/owncast' steps: - name: Check out pull request code uses: actions/checkout@v4 if: github.event_name == 'pull_request' with: repository: ${{ github.event.pull_request.head.repo.full_name }} - name: Check out repository code uses: actions/checkout@v4 if: github.event_name == 'push' - name: Cache node modules uses: actions/cache@v4 env: cache-name: cache-node-modules-bundle-web-app with: path: ~/.npm key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('web/package-lock.json') }} restore-keys: | ${{ runner.os }}-build-${{ env.cache-name }}- ${{ runner.os }}-build- ${{ runner.os }}- - name: Install and Build run: | # Install npm packages and build the Storybook files cd web npm install --include-dev --force cd .storybook/tools ./generate-stories.sh cd - npm run build-storybook -- -o ../docs/components - name: Commit changes uses: EndBug/add-and-commit@v9 with: author_name: Owncast author_email: owncast@owncast.online message: 'Commit updated Storybook stories' add: '*.stories.*' pull: '--rebase --autostash' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Dispatch event to web site uses: peter-evans/repository-dispatch@v3 with: token: ${{ secrets.BUNDLE_STORYBOOK_OWNCAST_ONLINE }} repository: owncast/owncast.github.io event-type: bundle-components-library