name: Build and publish a new appcast file

on:
  workflow_dispatch:
  release:

jobs:
  jekyll:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout 🛎
      uses: actions/checkout@v3
      with:
        # If you're using actions/checkout@v3 you must set persist-credentials to false in most cases for the deployment to work correctly.
        persist-credentials: false

    - name: Cache 📦
      uses: actions/cache@v3.0.8
      with:
        path: AppCast/vendor/bundle
        key: ${{ runner.os }}-gems-v1.0-${{ hashFiles('AppCast/Gemfile') }}
        restore-keys: |
          ${{ runner.os }}-gems-
          
    - name: Ruby ♦️
      uses: actions/setup-ruby@v1.1.3
      with:
        ruby-version: '2.7'

    - name: Bundler 💎
      working-directory: AppCast
      env:
        BUNDLE_PATH: vendor/bundle
      run: |
        gem install bundler
        bundle install

    - name: Build 🛠
      working-directory: AppCast
      env:
        BUNDLE_PATH: vendor/bundle
        JEKYLL_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      run: bundle exec jekyll build
      
    - name: Publish 🚀
      uses: JamesIves/github-pages-deploy-action@releases/v3
      with:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        BRANCH: gh-pages
        FOLDER: AppCast/_site
