Skip to content

Commit

Permalink
fix: Optimize Firebase CI workflows with caching for firebase.json (#82)
Browse files Browse the repository at this point in the history
- **Workflows Updated**:
  - **`delete-firebase-hosting-channel.yml`**:
    - Added caching for `firebase.json` using `actions/cache` to persist configuration across workflow runs.
    - Updated `actions/checkout` and `w9jds/firebase-action` to pinned versions for enhanced stability.
    - Conditional execution of Firebase actions based on cache availability.

  - **`firebase-hosting-pull-request.yml`**:
    - Implemented `actions/cache/save` to store `firebase.json` after build and test steps.
    - Updated workflow to ensure `firebase.json` is available for subsequent Firebase deployments.

- **Impact**:
  - Speeds up Firebase workflow executions by reducing redundant `firebase.json` generation.
  - Enhances workflow reliability with pinned dependencies and optimized caching.
  • Loading branch information
warnyul authored Dec 9, 2024
1 parent 2007e2a commit 18d14c9
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
11 changes: 10 additions & 1 deletion .github/workflows/delete-firebase-hosting-channel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,17 @@ jobs:
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Restore firebase.json
id: cache-restore-firebase-json
uses: actions/cache/restore@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0
env:
cache-name: firebase
with:
path: firebase.json
key: ${{ github.head_ref }}
- uses: w9jds/firebase-action@12e7dd1a31239567f9b4d398e6c1dc9f1c6fc70a # v13.28.0
if: steps.cache-restore-firebase-json.outputs.cache-hit == 'true'
with:
# Extracts the full channel name from the PR number and feeds it to the delete command
args: hosting:channel:list | grep 'pr${{ github.event.pull_request.number }}' | cut --delimiter ' ' --fields 2 | xargs -I {} firebase hosting:channel:delete --force {}
Expand Down
7 changes: 7 additions & 0 deletions .github/workflows/firebase-hosting-pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,13 @@ jobs:
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
- name: Build and Test
run: ./scripts/build.sh
- name: Save firebase.json
uses: actions/cache/save@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0
env:
cache-name: firebase
with:
path: firebase.json
key: ${{ github.head_ref }}
- uses: FirebaseExtended/action-hosting-deploy@0cbcac4740c2bfb00d632f0b863b57713124eb5a # v0.9.0
with:
repoToken: '${{ secrets.GITHUB_TOKEN }}'
Expand Down

0 comments on commit 18d14c9

Please sign in to comment.