Skip to content

feat(DeleteItem): Add deletion of goals, microgoals, and tasks #28

feat(DeleteItem): Add deletion of goals, microgoals, and tasks

feat(DeleteItem): Add deletion of goals, microgoals, and tasks #28

name: Firebase Preview Deploy
on:
pull_request:
branches:
- main
jobs:
deploy-preview:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
issues: write
steps:
- name: ๐Ÿ“ฅ Checkout code
uses: actions/checkout@v4
- name: ๐Ÿ“ฆ Setup Node
uses: actions/setup-node@v4
with:
node-version: 'lts/*'
cache: 'npm'
- name: ๐Ÿ“‚ Install dependencies
run: npm ci
- name: ๐Ÿ”จ Build the app
run: npm run build
- name: ๐Ÿงช Test the app with Vitest
run: npm run test:ci | tee test-results.txt
# ๐Ÿšฎ Clean up test results for comment
- name: ๐Ÿšฎ Clean up test results
run: sed -i 's/\x1b\[[0-9;]*m//g' test-results.txt # Removes ANSI color codes
# ๐Ÿ“„ Format test results for better readability
- name: ๐Ÿ“„ Format test results
run: |
{
echo "### ๐Ÿงช Test Results"
echo ""
if grep -q "failed" test-results.txt; then
# Extract failed test details if any
echo "โŒ **Some tests failed**:"
echo '```'
grep -E "Test Files|Tests|Duration|failed" test-results.txt
echo '```'
echo ""
echo "๐Ÿ’ฅ Please review the failed tests above."
else
# Format output for passing tests
grep -E "(Test Files|Tests|Duration)" test-results.txt | while read -r line; do
if [[ $line == *"Test Files"* ]]; then
echo "๐Ÿ—‚ **Test Summary**: $line"
elif [[ $line == *"Tests"* ]]; then
echo "โœ… **Tests Passed**: $line"
elif [[ $line == *"Duration"* ]]; then
echo "โฑ๏ธ **Total Duration**: $line"
fi
done
echo ""
echo "๐ŸŽ‰ All tests passed successfully!"
fi
} > formatted-results.txt
- name: ๐Ÿš€ Install Firebase CLI
run: npm install -g firebase-tools
- name: ๐ŸŒ Deploy to Firebase Preview Channel
id: firebase_deploy
env:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
run: |
firebase hosting:channel:deploy pr-${{ github.event.number }} --expires 2d | tee deploy-output.txt
- name: ๐Ÿ”— Extract Preview URL
id: extract_url
run: |
URL=$(grep -oP 'https:\/\/[^\s]+pr-${{ github.event.number }}[^\s]+' deploy-output.txt)
echo "PREVIEW_URL=${URL}" >> $GITHUB_ENV
- name: ๐Ÿ’ฌ Post test results and preview link to PR
uses: actions/github-script@v7
with:
script: |
const previewUrl = process.env.PREVIEW_URL;
const fs = require('fs');
const testResults = fs.readFileSync('formatted-results.txt', 'utf8');
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: `๐Ÿš€ Preview for this PR is available at: ${previewUrl} \n\n ${testResults}`
});