Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
2abeb94
Add IDL 2.0 and minimal automation (#6582)
EngHabu Aug 22, 2025
25fd8d6
python version fix and use OIDC to authenticate crates (#6584)
EngHabu Aug 22, 2025
82a41b6
Add Abort APIs (#6590)
EngHabu Aug 25, 2025
4534029
Rename idl packages to flyteidl2 (#6586)
EngHabu Aug 26, 2025
2ffc5eb
Rename idl2 -> flyteidl2 and many fixes in generation (go, python) (#…
EngHabu Sep 22, 2025
84d3182
Enghabu/trigger ap is (#6642)
EngHabu Sep 30, 2025
d58bab0
Fix cargo build and add CI check (#6645)
EngHabu Sep 30, 2025
1993238
Vendor in python buf dependencies (#6651)
wild-endeavor Oct 3, 2025
145765c
Accelerator device class (#6654)
jeevb Oct 3, 2025
7bb0db0
wip
EngHabu Oct 3, 2025
075f324
queue service implementation
EngHabu Oct 3, 2025
987d536
Support sqllite
EngHabu Oct 3, 2025
aa24751
Runs service
EngHabu Oct 4, 2025
3ef9544
Connect RunService to QueueService
EngHabu Oct 4, 2025
83acecf
Triggers API adjustments (#6655)
iaroslav-ciupin Oct 7, 2025
cda285a
RunService.CreateRun from_automation flags (#6653)
iaroslav-ciupin Oct 8, 2025
a480286
Cleanup triggers api (#6666)
iaroslav-ciupin Oct 9, 2025
b0b4fa9
Accidental merge
EngHabu Oct 10, 2025
7b49083
Merge remote-tracking branch 'origin/v2' into v2
EngHabu Oct 10, 2025
cb20874
Fix buf lint that comes up in buf 1.58 (#6670)
hamersaw Oct 10, 2025
e6eb0b6
Add a debuggable flag in TaskTemplate (#6658)
pingsutw Oct 10, 2025
543b26e
Add PoetryProject to Layer proto file (#6665)
popojk Oct 10, 2025
c8d59c4
make state service unary apis (#6649)
hamersaw Oct 10, 2025
e4028b7
Add RawDataStorage and SecurityContext to RunSpec proto file (#6663)
popojk Oct 10, 2025
33435bb
Add dask plugin proto (#6667)
pingsutw Oct 10, 2025
3fe3c1e
Add Spark proto (#6660)
pingsutw Oct 10, 2025
97bd388
Add ray plugin idl (#6675)
pingsutw Oct 14, 2025
edc657e
Move debuggable field to TaskMetadata (#6679)
pingsutw Oct 15, 2025
09887fa
Add triggers api validation annotations (#6680)
iaroslav-ciupin Oct 15, 2025
2378cd5
Use Docker images locally and in CI (#6671)
EngHabu Oct 16, 2025
2c48982
Don't publish SHA image when merging to v2 or main (#6684)
EngHabu Oct 18, 2025
13a2bd7
Fix trigger automation type enum (#6691)
iaroslav-ciupin Oct 22, 2025
2fb5ccc
Pytorch proto v2 migration (#6689)
WangWang0226 Oct 23, 2025
8d3e134
Add metadata to list task response proto (#6683)
machichima Oct 24, 2025
fd008dc
Extend task triggers summary (#6696)
iaroslav-ciupin Oct 24, 2025
4f1e4d4
[FEAT] add List versions request and response (#6687)
machichima Oct 25, 2025
e2c9e9c
Add apps protos (#6693)
EngHabu Oct 29, 2025
74bc4ae
Add Connector proto (#6659)
pingsutw Oct 29, 2025
ecf7aeb
fix npm publish
EngHabu Oct 30, 2025
8620427
Fix rust cargo publish
EngHabu Oct 30, 2025
33e5997
Generate missing imports in typescript (#6713)
EngHabu Nov 1, 2025
0344daf
Trigger cron expression timezone (#6716)
iaroslav-ciupin Nov 4, 2025
4d0c21a
Fix trigger cron expression timezone (#6720)
iaroslav-ciupin Nov 6, 2025
91ba87d
v2 backend - stubs (#6697)
EngHabu Nov 6, 2025
a4cbb59
Add CacheConfig to RunSpec (#6723)
EngHabu Nov 7, 2025
afef7ea
Nary/watch groups (#6712)
machichima Nov 12, 2025
b8f6d98
Mild cleanup and compilation fix (#6732)
Sovietaced Nov 12, 2025
d503335
[Fix] Downgrade otel to 1.37 (#6729)
machichima Nov 12, 2025
c148158
Generate mocks for app package (#6734)
iaroslav-ciupin Nov 12, 2025
f9bdf96
Add list runs proto fields (#6709)
popojk Nov 13, 2025
9390f8e
[Proto] add created_by to task group (#6736)
machichima Nov 13, 2025
2d3bd7d
[Proto] Change created by to repeat EnrichedIdentity (#6739)
machichima Nov 14, 2025
a108211
fix(runs/docker): enable CGO for go-sqlite3 and include gen/go in bui…
WangWang0226 Nov 20, 2025
79c9daf
Add description field in task and trigger protos (#6722)
popojk Nov 24, 2025
2c27c83
[Proto] Watch group add known sort fields (#6760)
machichima Nov 27, 2025
58533e4
[Proto] Move action phase from workflow to common proto (#6765)
machichima Dec 2, 2025
864b0e3
[Proto] Add latest run to list task response (#6761)
machichima Dec 3, 2025
c83923b
fix proto (#6685)
popojk Dec 4, 2025
4acab94
Copy v2 plugins (#6718)
pvditt Dec 4, 2025
6d726ae
[Proto] add short name to watch group task group response (#6781)
machichima Dec 5, 2025
cbb9552
build: downgrade otel (#6787)
machichima Dec 5, 2025
a1551a4
flyteidl crate remove extension module (#6789)
wild-endeavor Dec 8, 2025
8d49876
add CODEOWNERS (#6794)
EngHabu Dec 9, 2025
dda24f4
Add queue dockerfile (#6767)
WangWang0226 Dec 10, 2025
d3e834f
Store run source in ActionMetadata (#6793)
iaroslav-ciupin Dec 10, 2025
913f425
Move the connector proto to the connector folder (#6797)
pingsutw Dec 11, 2025
4e97c91
Add created_at field to TriggerRevision (#6803)
iaroslav-ciupin Dec 13, 2025
ab2f36b
Add tasklog in the TaskMetadata
pingsutw Dec 16, 2025
8f5cb42
Revert "Add tasklog in the TaskMetadata"
pingsutw Dec 16, 2025
a5a39df
Add tasklog in the TaskMetadata (#6807)
pingsutw Dec 22, 2025
775ce03
[Run Service] Refactor runservice (#6810)
machichima Dec 23, 2025
0b88b4f
feat: add error counts for task group proto (#6808)
machichima Dec 23, 2025
50f310e
Mirgate Copilot (#6804)
BarryWu0812 Dec 23, 2025
0e4af6b
Add task service (#6813)
machichima Dec 25, 2025
ba49efe
[Test] Add Task service api test structure and for DeployTask (#6823)
machichima Dec 29, 2025
e97d279
Fix: Add timestamps to task creation (#6825)
yuhuan130 Dec 30, 2025
d06c130
[Executor] Update taskaction cr (#6826)
machichima Jan 5, 2026
db0ba2f
Support executor (#6792)
pvditt Jan 5, 2026
5bbd2b5
Add test for TaskService.ListVersions and test script (#6833)
kevinliao852 Jan 6, 2026
ae10f2b
[Test] Task service api test fix review (#6830)
machichima Jan 6, 2026
62fd162
[v2] Refactor: Define all mockery in .mockery.yaml (#6829)
majiayu000 Jan 12, 2026
20365f6
test: add API test for ListTasks endpoint (#6842)
lowc1012 Jan 12, 2026
fcef078
[Fix] Ignore cargo lock (#6844)
machichima Jan 13, 2026
0cb3309
[Feat][v2] Add data proxy (#6851)
machichima Jan 13, 2026
ef0c2ed
apply mockery in queue_service_test (#6859)
WangWang0226 Jan 16, 2026
548b2eb
[V2] Dataproxy add gateway (#6866)
machichima Jan 21, 2026
bb47e48
Add test script for GetTaskDetails (#6841)
aniket2405 Jan 23, 2026
4c8cc6f
feat: add phase counts (#6862)
machichima Jan 26, 2026
54f428b
build: pin openapiv2 version to prevent panic (#6870)
machichima Jan 26, 2026
98c0dac
feat: include run name in recent statuses (#6871)
machichima Jan 27, 2026
494cca8
Add auth and identity proto (#6850)
pingsutw Jan 29, 2026
d22313a
Add connector plugin (#6861)
pingsutw Jan 30, 2026
efa4f95
Always set enableServiceLinks to false (#6884)
pingsutw Jan 30, 2026
50644f7
JsonValuesToLiterals (#6878)
ursucarina Jan 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
37 changes: 37 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Git
.git
.gitignore
.gitattributes

# CI/CD
.github

# Generated files
gen/
!gen/go/**

# Dependencies
node_modules/
target/
**/Cargo.lock
*.pyc
__pycache__/

# IDE
.vscode/
.idea/
*.swp
*.swo
*~

# OS
.DS_Store
Thumbs.db

# Logs
*.log

# Test coverage
coverage/
*.coverage
.pytest_cache/
47 changes: 47 additions & 0 deletions .github/actions/setup-python-env/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: "Setup Python Environment"
description: "Set up Python environment for the given Python version"

inputs:
python-version:
description: "Python version to use"
required: true
default: "3.12"
uv-version:
description: "uv version to use"
required: true
default: "0.8.4"
working-directory:
description: "Default working directory for all steps"
required: false
default: ""

runs:
using: "composite"
steps:
- uses: actions/setup-python@v5
with:
python-version: ${{ inputs.python-version }}

- name: Install uv
uses: astral-sh/setup-uv@v6
id: setup-uv
with:
version: ${{ inputs.uv-version }}
enable-cache: 'true'
cache-suffix: ${{ inputs.python-version }}
cache-dependency-glob: |
pyproject.toml
uv.lock
working-directory: ${{ inputs.working-directory }}

- name: Install Python dependencies
if: steps.setup-uv.outputs.cache-hit == 'false'
working-directory: ${{ inputs.working-directory }}
run: uv sync --all-groups --frozen
shell: bash

- name: List Python dependencies
if: steps.setup-uv.outputs.cache-hit == 'true'
working-directory: ${{ inputs.working-directory }}
run: uv pip list
shell: bash
158 changes: 158 additions & 0 deletions .github/workflows/build-ci-image.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
name: Build and Publish CI Docker Image

on:
push:
branches:
- main
- v2
paths:
- 'gen.Dockerfile'
- '.github/workflows/build-ci-image.yml'
pull_request:
paths:
- 'gen.Dockerfile'
- '.github/workflows/build-ci-image.yml'
workflow_dispatch:
inputs:
force_rebuild:
description: 'Force rebuild of the image'
required: false
default: 'false'

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}/ci

jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
pull-requests: write

outputs:
image-tag: ${{ steps.set-tag.outputs.tag }}

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata (tags, labels)
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
# Use branch name for branch pushes
type=ref,event=branch
# Use PR number for pull requests
type=ref,event=pr
# Use 'latest' tag for main branch
type=raw,value=latest,enable=${{ github.ref == 'refs/heads/main' }}
# Use 'v2' tag for v2 branch
type=raw,value=v2,enable=${{ github.ref == 'refs/heads/v2' }}
# Add git sha as tag
type=sha,prefix=${{ github.head_ref }}-,enable=${{ github.ref != 'refs/heads/v2' && github.ref != 'refs/heads/main' }}

- name: Set image tag output
id: set-tag
run: |
if [ "${{ github.event_name }}" == "pull_request" ]; then
echo "tag=pr-${{ github.event.pull_request.number }}" >> $GITHUB_OUTPUT
elif [ "${{ github.ref }}" == "refs/heads/v2" ]; then
echo "tag=v2" >> $GITHUB_OUTPUT
elif [ "${{ github.ref }}" == "refs/heads/main" ]; then
echo "tag=latest" >> $GITHUB_OUTPUT
else
echo "tag=$(echo ${{ github.ref }} | sed 's/refs\/heads\///')" >> $GITHUB_OUTPUT
fi

- name: Build and push Docker image
uses: docker/build-push-action@v6
with:
context: .
file: ./gen.Dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
platforms: linux/amd64,linux/arm64
# Multi-layer caching strategy for speed
cache-from: |
type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache
type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.set-tag.outputs.tag }}
type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:v2
type=gha
cache-to: |
type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache,mode=max
type=gha,mode=max
# Enable BuildKit features for better caching
build-args: |
BUILDKIT_INLINE_CACHE=1

- name: Image digest
run: echo "Image built with digest ${{ steps.meta.outputs.digest }}"

- name: Comment on PR with image tag
if: github.event_name == 'pull_request'
uses: actions/github-script@v7
with:
script: |
const tag = '${{ steps.set-tag.outputs.tag }}';
const registry = '${{ env.REGISTRY }}';
const imageName = '${{ env.IMAGE_NAME }}';
const fullImage = `${registry}/${imageName}:${tag}`;

const comment = `## 🐳 Docker CI Image Built

The CI Docker image has been built and pushed for this PR!

**Image:** \`${fullImage}\`

This image will be automatically used by CI workflows in this PR.

To test locally:
\`\`\`bash
make gen DOCKER_CI_IMAGE=${fullImage}
\`\`\`
`;

// Find existing comment
const { data: comments } = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
});

const botComment = comments.find(comment =>
comment.user.type === 'Bot' &&
comment.body.includes('🐳 Docker CI Image Built')
);

if (botComment) {
// Update existing comment
await github.rest.issues.updateComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: botComment.id,
body: comment
});
} else {
// Create new comment
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: comment
});
}
114 changes: 114 additions & 0 deletions .github/workflows/check-generate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
name: Check Generated Files

on:
pull_request:
types: [opened, synchronize, reopened]

jobs:
check-generate:
runs-on: ubuntu-latest
permissions:
contents: read
actions: read
packages: read
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Determine Docker image
id: docker-image
run: |
# Check if gen.Dockerfile or build workflow was modified
git fetch origin ${{ github.base_ref }}
if git diff --name-only origin/${{ github.base_ref }}...HEAD | grep -E '^(gen\.Dockerfile|Dockerfile\.ci|\.github/workflows/build-ci-image\.yml)$'; then
echo "modified=true" >> $GITHUB_OUTPUT
echo "image=ghcr.io/flyteorg/flyte/ci:pr-${{ github.event.pull_request.number }}" >> $GITHUB_OUTPUT
echo "📦 gen.Dockerfile modified - will use PR-specific image"
else
echo "modified=false" >> $GITHUB_OUTPUT
echo "image=ghcr.io/flyteorg/flyte/ci:v2" >> $GITHUB_OUTPUT
echo "📦 Using default v2 image"
fi

- name: Wait for Docker image build workflow
if: steps.docker-image.outputs.modified == 'true'
uses: actions/github-script@v7
with:
script: |
const maxAttempts = 60; // 20 minutes max
const delaySeconds = 20;

console.log('⏳ Waiting for Docker image build workflow to complete...');

for (let attempt = 0; attempt < maxAttempts; attempt++) {
// Get workflow runs for this PR
const { data: runs } = await github.rest.actions.listWorkflowRuns({
owner: context.repo.owner,
repo: context.repo.repo,
workflow_id: 'build-ci-image.yml',
event: 'pull_request',
per_page: 10
});

// Find the run for this PR
const prRun = runs.workflow_runs.find(run =>
run.head_sha === context.payload.pull_request.head.sha
);

if (prRun) {
console.log(`Found workflow run: ${prRun.html_url}`);
console.log(`Status: ${prRun.status}, Conclusion: ${prRun.conclusion}`);

if (prRun.status === 'completed') {
if (prRun.conclusion === 'success') {
console.log('✅ Docker image build completed successfully!');
return;
} else {
core.setFailed(`❌ Docker image build failed with conclusion: ${prRun.conclusion}`);
return;
}
}

console.log(`Attempt ${attempt + 1}/${maxAttempts}: Build still running, waiting ${delaySeconds} seconds...`);
} else {
console.log(`Attempt ${attempt + 1}/${maxAttempts}: Build not started yet, waiting ${delaySeconds} seconds...`);
}

await new Promise(resolve => setTimeout(resolve, delaySeconds * 1000));
}

core.setFailed('❌ Timeout waiting for Docker image build to complete');

- name: Login to GHCR
if: steps.docker-image.outputs.modified == 'true'
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin

- name: Pull Docker image
if: steps.docker-image.outputs.modified == 'true'
run: |
IMAGE="${{ steps.docker-image.outputs.image }}"
echo "📦 Pulling image: $IMAGE"
docker pull "$IMAGE"

- name: Run checks in container
run: |
IMAGE="${{ steps.docker-image.outputs.image }}"
echo "Using image: $IMAGE"

docker run --rm \
-v ${{ github.workspace }}:/workspace \
-w /workspace \
-e SETUPTOOLS_SCM_PRETEND_VERSION=0.0.0 \
-e UV_PROJECT_ENVIRONMENT=/tmp/flyte-venv \
"$IMAGE" \
bash -c "
git config --global --add safe.directory /workspace &&
cd gen/python && uv sync --all-groups --frozen && cd ../.. &&
make gen-local &&
git diff --exit-code || (echo 'Generated files are out of date. Run \`make gen\` and commit changes.' && exit 1) &&
make build-crate
"


Loading
Loading