Skip to content

Commit 846adcf

Browse files
authored
Merge branch 'main' into OpenEnv-Forge
2 parents 3bf68c2 + 53fa6a9 commit 846adcf

23 files changed

+2057
-472
lines changed

.env.example

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Copy this file to .env and customize as needed
2+
3+
# Gitea Service Configuration
4+
GITEA_URL=http://host.docker.internal:3000
5+
GITEA_USERNAME=gitea
6+
GITEA_PASSWORD=gitea123

.github/workflows/deploy-hf-env.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ jobs:
167167
# Cleanup
168168
cd ..
169169
rm -rf hf-space
170-
rm -rf hf-staging_$ENV_NAME_$ENV_NAME
170+
rm -rf hf-staging_$ENV_NAME
171171
172172
# Job to deploy single environment
173173
deploy-single:

.github/workflows/docker-build.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@ jobs:
7777
dockerfile: src/envs/sumo_rl_env/server/Dockerfile
7878
- name: atari-env
7979
dockerfile: src/envs/atari_env/server/Dockerfile
80+
- name: git-env
81+
dockerfile: src/envs/git_env/server/Dockerfile
8082

8183
steps:
8284
- name: Checkout code
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
name: Build OpenSpiel Base Image
2+
3+
on:
4+
workflow_dispatch: # Manual trigger only
5+
inputs:
6+
force_rebuild:
7+
description: 'Force rebuild even if base image exists'
8+
required: false
9+
default: 'false'
10+
type: boolean
11+
12+
env:
13+
REGISTRY: ghcr.io
14+
IMAGE_PREFIX: ${{ github.repository_owner }}/openenv
15+
16+
jobs:
17+
# Job 1: Build base image first
18+
build-base:
19+
runs-on: ubuntu-latest
20+
permissions:
21+
contents: read
22+
packages: write
23+
24+
steps:
25+
- name: Checkout code
26+
uses: actions/checkout@v4
27+
28+
- name: Set up Docker Buildx
29+
uses: docker/setup-buildx-action@v3
30+
31+
- name: Log in to GHCR
32+
uses: docker/login-action@v3
33+
with:
34+
registry: ${{ env.REGISTRY }}
35+
username: ${{ github.actor }}
36+
password: ${{ secrets.GITHUB_TOKEN }}
37+
38+
- name: Extract metadata for base image
39+
id: meta
40+
uses: docker/metadata-action@v5
41+
with:
42+
images: ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}-base
43+
tags: |
44+
type=raw,value=latest,enable={{is_default_branch}}
45+
type=sha
46+
47+
- name: Build and push base image
48+
uses: docker/build-push-action@v5
49+
with:
50+
context: .
51+
file: src/core/containers/images/Dockerfile
52+
push: true
53+
platforms: linux/amd64,linux/arm64
54+
tags: ${{ steps.meta.outputs.tags }}
55+
labels: ${{ steps.meta.outputs.labels }}
56+
cache-from: type=gha,scope=base
57+
cache-to: type=gha,mode=max,scope=base
58+
59+
# Job 2: Build OpenSpiel base image (depends on base)
60+
build-openspiel-base:
61+
runs-on: 8-core-ubuntu
62+
needs: build-base # Wait for base image to be built
63+
permissions:
64+
contents: read
65+
packages: write
66+
67+
steps:
68+
- name: Checkout code
69+
uses: actions/checkout@v4
70+
71+
- name: Set up Docker Buildx
72+
uses: docker/setup-buildx-action@v3
73+
74+
- name: Log in to GHCR
75+
uses: docker/login-action@v3
76+
with:
77+
registry: ${{ env.REGISTRY }}
78+
username: ${{ github.actor }}
79+
password: ${{ secrets.GITHUB_TOKEN }}
80+
81+
- name: Extract metadata for OpenSpiel base image
82+
id: meta-openspiel-base
83+
uses: docker/metadata-action@v5
84+
with:
85+
images: ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}-openspiel-base
86+
tags: |
87+
type=raw,value=latest,enable={{is_default_branch}}
88+
type=sha
89+
90+
- name: Build and push OpenSpiel base image
91+
uses: docker/build-push-action@v5
92+
with:
93+
context: .
94+
file: src/envs/openspiel_env/server/Dockerfile.openspiel-base
95+
push: true
96+
platforms: linux/amd64,linux/arm64
97+
tags: ${{ steps.meta-openspiel-base.outputs.tags }}
98+
labels: ${{ steps.meta-openspiel-base.outputs.labels }}
99+
cache-from: type=gha,scope=openspiel-base
100+
cache-to: type=gha,mode=max,scope=openspiel-base
101+
102+
- name: Build summary
103+
run: |
104+
echo "✅ OpenSpiel base image built and pushed successfully!"
105+
echo "📦 Image: ${{ steps.meta-openspiel-base.outputs.tags }}"
106+
echo "🚀 Next regular build will use this new base image"

README.md

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,15 @@
33
An e2e framework for creating, deploying and using isolated execution environments for agentic RL training, built using Gymnasium style simple APIs.
44

55
[![PyPI](https://img.shields.io/pypi/v/openenv-core?color=blue)](https://pypi.org/project/openenv-core/)
6+
[![Discord](https://img.shields.io/badge/Discord-OpenEnv-7289da?style=flat&logo=discord&logoColor=white)](https://discord.gg/YsTYBh6PD9)
67
[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/meta-pytorch/OpenEnv/blob/main/examples/OpenEnv_Tutorial.ipynb) **← Try the Interactive Tutorial!**
78

8-
---
9-
10-
**🚀 Featured:** Train LLMs to play BlackJack using [torchforge](https://github.com/meta-pytorch/torchforge) (PyTorch's agentic RL framework): [`examples/grpo_blackjack/`](examples/grpo_blackjack/)
11-
12-
---
13-
149
## OpenEnv on partner platforms:
1510

1611
- [Lightning AI Studio](https://lightning.ai/environments?section=featured)
1712
- TRL Example (Coming Soon)!
1813
- Unsloth Google Colab (Coming soon)!
1914

20-
2115
## Overview
2216

2317
OpenEnv provides a standard for interacting with agentic execution environments via simple Gymnasium style APIs - step(), reset(), state(). Users of agentic execution environments can interact with the environment during RL training loops using these simple APIs.
@@ -220,7 +214,7 @@ See: [`src/envs/coding_env/README.md`](src/envs/coding_env/README.md)
220214
## Community support & Acknowledgments
221215
This is an open and community centric project. If you would like to add your name here, please put up a pull request and tag @jspisak for review. Ty!!
222216

223-
Supporters include: Meta-PyTorch, Hugging Face, [Surge AI](https://surgehq.ai), Unsloth AI, Reflection AI, vLLM, SkyRL (UC-Berkeley), LightningAI, Axolotl AI, ..
217+
Supporters include: Meta-PyTorch, Hugging Face, [Patronus AI](https://patronus.ai), [Surge AI](https://surgehq.ai), [LastMile AI](https://www.lastmileai.dev), Unsloth AI, Reflection AI, vLLM, SkyRL (UC-Berkeley), LightningAI, Axolotl AI, Stanford Scaling Intelligence Lab, Mithril, ..
224218

225219
And we'd also like to acknowledge the team at Farama Foundation as the OpenEnv API was heavily inspired by the work you all have done on Gymnasium. Cheers!
226220

0 commit comments

Comments
 (0)