Skip to content
Open
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
53 changes: 53 additions & 0 deletions .github/ISSUE_TEMPLATE/release-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: "Release Request"
description: "Request a deployment by specifying the evaluation function, changes, target commit/branch, and test confirmation."
title: "Release Request"
labels:
- release
- deployment
assignees: []
body:
- type: textarea
id: description_of_changes
attributes:
label: Description of changes
description: "Summarize what is changing and why. Include links to PRs, issues, or changelogs."
placeholder: |
- What changed:
- Why:
- Related PRs/Issues: #123, #456
render: markdown
validations:
required: true

- type: input
id: branch_to_deploy
attributes:
label: Branch to deploy
description: |
Specify Branch name to deploy.
placeholder: "e.g., release/2025-09-29"
validations:
required: true

- type: dropdown
id: version-bump
attributes:
label: "🚀 What kind of update is this?"
description: "Tell us how significant this change is. This helps us set the correct new version number."
options:
- "Patch: A small fix for a bug. It won't break anything for existing users. (e.g., 1.2.3 ➔ 1.2.4)"
- "Minor: Adds a new feature, but doesn't change how existing ones work. A safe update. (e.g., 1.2.3 ➔ 1.3.0)"
- "Major: A big change that alters existing features. Users may need to update their work to adapt. (e.g., 1.2.3 ➔ 2.0.0)"
default: 0
validations:
required: true

- type: markdown
attributes:
value: |
---
### ⚡ Click the Link Below to Run the Workflow

Clicking the link will take you to the Actions page. You will need to click the **"Run workflow"** button there to start the process.

## [➡️ Go to Workflow Run Page](../actions/workflows/production-deploy.yml)
16 changes: 0 additions & 16 deletions .github/workflows/build.yml

This file was deleted.

49 changes: 49 additions & 0 deletions .github/workflows/pre_production_tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Run Pre-Production Validation Tests

on:
workflow_dispatch:
inputs:
eval_function:
type: string
description: "The name of the evaluation function to test"
required: true
sql_limit:
type: number
description: "The maximum number of SQL test cases to run"
required: false
default: 500
seed:
type: string
description: "Random seed for reproducible sampling (float in [-1.0, 1.0]). Leave blank to auto-generate."
required: false
default: ''
request_delay:
type: string
description: "Delay (seconds) between dispatching requests"
required: false
default: '0'
max_concurrency:
type: string
description: "Max concurrent requests (lower for GPT-backed functions)"
required: false
default: '5'

jobs:
run-pre-production-tests:
name: 🧪 Run Staging Validation Tests
uses: lambda-feedback/Database-Testing/.github/workflows/test_evaluation_function.yml@main
with:
eval_function: ${{ inputs.eval_function }}
sql_limit: ${{ inputs.sql_limit }}
seed: ${{ inputs.seed }}
request_delay: ${{ inputs.request_delay }}
max_concurrency: ${{ inputs.max_concurrency }}
secrets:
TEST_API_ENDPOINT: ${{ secrets.TEST_API_ENDPOINT }}
DB_USER: ${{ secrets.DB_USER }}
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
DB_HOST: ${{ secrets.DB_HOST }}
DB_PORT: ${{ secrets.DB_PORT }}
DB_NAME: ${{ secrets.DB_NAME }}
GCP_SERVICE_ACCOUNT_KEY: ${{ secrets.GCP_DB_CREDS }}
GCP_PROJECT_ID: ${{ secrets.GCP_DB_PROJECT_ID }}
64 changes: 64 additions & 0 deletions .github/workflows/production-deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Deploy to Production

on:
workflow_dispatch:
inputs:
version-bump:
description: 'Version bump type'
required: true
type: choice
options:
- patch
- minor
- major
default: patch
branch:
description: 'Branch to release from'
required: true
type: string
default: 'main'
seed:
description: 'Random seed for reproducible sampling (float in [-1.0, 1.0]). Leave blank to auto-generate.'
required: false
type: string
default: ''
request_delay:
description: 'Delay (seconds) between dispatching requests'
required: false
type: string
default: '0'
max_concurrency:
description: 'Max concurrent requests (lower for GPT-backed functions)'
required: false
type: string
default: '5'
jobs:
deploy:
permissions:
contents: write
packages: write
id-token: write
uses: lambda-feedback/evaluation-function-workflows/.github/workflows/deploy.yml@main
with:
template-repository-name: 'lambda-feedback/evaluation-function-boilerplate-python'
environment: "production"
version-bump: ${{ inputs.version-bump }}
branch: ${{ inputs.branch }}
run-database-tests: false
seed: ${{ inputs.seed }}
request_delay: ${{ inputs.request_delay }}
max_concurrency: ${{ inputs.max_concurrency }}

secrets:
aws-key-id: ${{ secrets.LAMBDA_CONTAINER_PIPELINE_AWS_ID }}
aws-secret-key: ${{ secrets.LAMBDA_CONTAINER_PIPELINE_AWS_SECRET}}
function-admin-api-key: ${{ secrets.FUNCTION_ADMIN_API_KEY}}
gcp_credentials: ${{ secrets.GCP_DEPLOY }}
TEST_API_ENDPOINT: ${{ secrets.TEST_API_ENDPOINT }}
DB_USER: ${{ secrets.DB_USER }}
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
DB_HOST: ${{ secrets.DB_HOST }}
DB_PORT: ${{ secrets.DB_PORT }}
DB_NAME: ${{ secrets.DB_NAME }}
GCP_DB_CREDS: ${{ secrets.GCP_DB_CREDS }}
GCP_PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }}
Original file line number Diff line number Diff line change
@@ -1,18 +1,23 @@
name: Deploy to Lambda Feedback
name: Deploy to Staging

on:
push:
branches:
- main
- master
workflow_dispatch:

jobs:
deploy:
permissions:
contents: write
packages: write
id-token: write
uses: lambda-feedback/evaluation-function-workflows/.github/workflows/deploy.yml@main
with:
template-repository-name: 'lambda-feedback/evaluation-function-boilerplate-wolfram'
build-platforms: 'gcp'
template-repository-name: "lambda-feedback/evaluation-function-boilerplate-python"
build-platforms: "aws"
environment: "staging"
lfs: false
secrets:
aws-key-id: ${{ secrets.LAMBDA_CONTAINER_PIPELINE_AWS_ID }}
aws-secret-key: ${{ secrets.LAMBDA_CONTAINER_PIPELINE_AWS_SECRET}}
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# Wolfram Language Evaluation Function

This repository contains an implementation of a Wolfram evaluation function that checks if the structure, numeric value or any other value are equal.

## Deployment
[![Create Release Request](https://img.shields.io/badge/Create%20Release%20Request-blue?style=for-the-badge)](https://github.com/lambda-feedback/wolframEvaluationFunction/issues/new?template=release-request.yml)

## Development

Expand Down