Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: fully version schema #163

Merged
merged 1 commit into from
May 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 19 additions & 8 deletions .github/workflows/pr-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
pull_request:

permissions:
contents: read
contents: write

env:
GO_VERSION: 1.22
Expand Down Expand Up @@ -44,18 +44,20 @@ jobs:
with:
github_token: ${{ github.token }}
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
# Run breaking change detection against the last commit
- uses: bufbuild/buf-breaking-action@v1
with:
input: protobuf
against: 'https://github.com/open-feature/schemas.git#branch=main,ref=HEAD~1,subdir=protobuf'


validate-schema:
validate-and-sync-schema:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}

# Use ajv to validate schema
- name: Setup node
Expand All @@ -72,9 +74,18 @@ jobs:
- name: Validate Schema
run: make test

# Ensure there is no diff when make gen-schema-json is run
- run: make gen-schema-json
- name: Check no diff
# Sync JSON schemas from YAML versions
- name: Sync JSON from YAML
run: |
if [ ! -z "$(git status --porcelain)" ]; then echo "JSON schema generation produced diff. Run 'make gen-schema-json' and commit results."; exit 1; fi
make gen-schema-json
if [ ! -z "$(git status --porcelain)" ]; then
echo "JSON schema generation produced diff, regenerating and committing result...";
git config --global user.name "validate-and-sync-schema-job"
git config --global user.email "bot@openfeature.dev"
git add json/*.json
git commit -m 'chore: sync json schema from yaml' -s
git push
else
echo "No delta between YAML and JSON schemas, finishing..."
fi
Comment on lines +80 to +90
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If there is a diff, this regenerates the JSON from the YAML, and commits is back - this way when release please updates the YAML files based on the x-release-please comment, it regenerates the JSON files to match. I tested it out here.


3 changes: 2 additions & 1 deletion .github/workflows/release-please.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,9 @@ jobs:
id: release
with:
command: manifest
token: ${{secrets.GITHUB_TOKEN}}
token: ${{secrets.RELEASE_PLEASE_ACTION_TOKEN}}
default-branch: main
signoff: "OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>"
outputs:
releases_created: ${{ steps.release.outputs.releases_created }}
# these are generated by release-please b/c this is in a manifest repo.
Expand Down
2 changes: 1 addition & 1 deletion json/flags.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$id": "https://flagd.dev/schema/v0/flags.json",
"$id": "https://flagd.dev/schema/v0.2.5/flags.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "flagd Flag Configuration",
"description": "Defines flags for use in flagd, including typed variants and rules",
Expand Down
2 changes: 1 addition & 1 deletion json/flags.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
$id: "https://flagd.dev/schema/v0/flags.json"
$id: "https://flagd.dev/schema/v0.2.5/flags.json" # x-release-please-version
$schema: http://json-schema.org/draft-07/schema#
title: flagd Flag Configuration
description: Defines flags for use in flagd, including typed variants and rules
Expand Down
2 changes: 1 addition & 1 deletion json/targeting.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$id": "https://flagd.dev/schema/v0/targeting.json",
"$id": "https://flagd.dev/schema/v0.2.5/targeting.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "flagd Targeting",
"description": "Defines targeting logic for flagd; a extension of JSONLogic, including purpose-built feature-flagging operations.",
Expand Down
2 changes: 1 addition & 1 deletion json/targeting.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
$id: "https://flagd.dev/schema/v0/targeting.json"
$id: "https://flagd.dev/schema/v0.2.5/targeting.json" # x-release-please-version
$schema: http://json-schema.org/draft-07/schema#
title: flagd Targeting
description: Defines targeting logic for flagd; a extension of JSONLogic, including
Expand Down
1 change: 1 addition & 0 deletions json/version.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0.2.5
6 changes: 5 additions & 1 deletion release-please-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,11 @@
"release-type": "simple",
"prerelease": false,
"bump-minor-pre-major": true,
"bump-patch-for-minor-pre-major": true
"bump-patch-for-minor-pre-major": true,
"extra-files": [
"flags.yaml",
"targeting.yaml"
]
}
},
"changelog-sections": [
Expand Down
Loading