Skip to content

Build Jekyll and Deploy to Firebase #1647

Build Jekyll and Deploy to Firebase

Build Jekyll and Deploy to Firebase #1647

Workflow file for this run

name: Build Jekyll and Deploy to Firebase
on:
push:
branches-ignore:
- "dependabot/**"
pull_request:
schedule:
- cron: "0 2 * * *"
env:
JEKYLL_ENV: production
YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY }}
MEETUP_CLIENT_ID: ${{ secrets.MEETUP_CLIENT_ID }}
MEETUP_PRIVATE_KEY: ${{ secrets.MEETUP_PRIVATE_KEY }}
MEETUP_SIGNING_KEY_ID: ${{ secrets.MEETUP_SIGNING_KEY_ID }}
MEETUP_MEMBER_ID: ${{ secrets.MEETUP_MEMBER_ID }}
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Clone repository
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install node-canvas dependencies
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
version: 1.0
- name: Cache Bundler 💾
uses: actions/cache@v3
with:
path: ~/.firebase, ~/.jekyll-cache, ~/vendor/bundle
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
restore-keys: |
${{ runner.os }}-gems-
- name: Cache NPM packages 💾
uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.OS }}-node-
${{ runner.OS }}-
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: "23"
cache: "npm"
- name: Use Ruby
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: Install dependencies 🔧
run: |
npm ci
bundle config set path vendor/bundle
bundle install --jobs 4 --retry 3
- name: Build 🏗
run: bundle exec jekyll build --trace
- name: Deploy to Firebase
if: github.ref == 'refs/heads/master'
uses: FirebaseExtended/action-hosting-deploy@v0
with:
repoToken: "${{ secrets.GITHUB_TOKEN }}"
firebaseServiceAccount: "${{ secrets.FIREBASE_SERVICE_ACCOUNT_REACTJS_DE }}"
channelId: live
projectId: reactjs-de
- name: Deploy Preview to Firebase
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository
uses: FirebaseExtended/action-hosting-deploy@v0
with:
repoToken: "${{ secrets.GITHUB_TOKEN }}"
firebaseServiceAccount: "${{ secrets.FIREBASE_SERVICE_ACCOUNT_REACTJS_DE }}"
projectId: reactjs-de