Skip to content

feat: adds flag validation workflow #24

feat: adds flag validation workflow

feat: adds flag validation workflow #24

Workflow file for this run

name: "PR Check"
on:
pull_request:
types:
- opened
- synchronize
- reopened
branches:
- main
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "npm"
- name: Restore cache
uses: actions/cache@v4
with:
path: .next/cache
key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }}
restore-keys: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}-
- name: Install dependencies
run: npm ci
- name: Run test
run: npm test
- name: Publish Test Report
if: always()
uses: ctrf-io/github-test-reporter@v1
with:
report-path: "./ctrf/*.json"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build with Next.js
run: npm run build
validate-flags:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0 # Required for git branch comparison
- name: Compare against base branch
uses: open-feature/action@v0.0.2
with:
manifest: "flags.json"
# Automatically compares against PR base branch (main)
- name: Check FLAGD_STUDIO_TOKEN secret
run: |
if [ -z "${{ secrets.FLAGD_STUDIO_TOKEN }}" ]; then
echo "WARNING: FLAGD_STUDIO_TOKEN is not set. Remote manifest comparison may fail."
fi
- name: Compare against remote manifest
uses: open-feature/action@v0.0.2
with:
manifest: "flags.json"
against: "https://flagd-studio.onrender.com/api"
auth-token: ${{ secrets.FLAGD_STUDIO_TOKEN }}