# Experience API ## Publish Place Publish a place to a Roblox experience. This takes an `*.rbxl` file and publishes it to a specific Place ID. ``` USAGE: rbxcloud experience publish --filename --place-id --universe-id --version-type --api-key OPTIONS: -a, --api-key Roblox Open Cloud API Key [env: RBXCLOUD_API_KEY=] -f, --filename Filename (full or relative) of the RBXL file -h, --help Print help information -p, --place-id Place ID of the experience -u, --universe-id Universe ID of the experience -t, --version-type Version type [possible values: saved, published] ``` ### Example ``` $ rbxcloud experience publish -f myplace.rbxl -t published -p 12345 -u 98765 -a MY_KEY ``` ### GitHub Action A common practice is to create a CD pipeline to deploy a place automatically. This can be done with GitHub actions. Below is an example GitHub Action workflow. The example assumes that Aftman is being used and that `rbxcloud` is listed within the `aftman.toml` file. ```yaml # Deploy any time code is pushed to the 'main' branch name: Deploy on: push: branches: - main jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install Aftman uses: ok-nick/setup-aftman@v0 - name: Publish shell: bash env: UID: 123456789 # Universe ID PID: 123456789 # Place ID API_KEY: ${{ secrets.key }} # API Key (keep this in your GitHub Repository Secrets) FILE: my_place.rbxl # Roblox place file (e.g. might have a step before this to build the file with Rojo) run: rbxcloud experience publish -a "$API_KEY" -u "$UID" -p "$PID" -t published -f "$FILE" ```