name: Build Docker on: push: branches: [ "**" ] tags: [ "**" ] paths-ignore: - ".devcontainer/**" - ".github/**" - "!.github/workflows/build-docker.yaml" - ".vscode/**" - "docs/**" - "**.md" pull_request: branches: [ "main" ] paths-ignore: - ".devcontainer/**" - ".github/**" - "!.github/workflows/build-docker.yaml" - ".vscode/**" - "docs/**" - "**.md" workflow_dispatch: env: SERVER_IMAGE_NAME: ten_agent_server PLAYGROUND_IMAGE_NAME: ten_agent_playground NON_EDIT_PLAYGROUND_IMAGE_NAME: ten_agent_non_edit_playground DEMO_IMAGE_NAME: ten_agent_demo jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 with: fetch-tags: true fetch-depth: "0" - id: pre-step shell: bash run: echo "image-tag=$(git describe --tags --always)" >> $GITHUB_OUTPUT - name: Build & Publish Docker Image for Agents Server uses: elgohr/Publish-Docker-Github-Action@v5 with: name: ${{ github.repository_owner }}/${{ env.SERVER_IMAGE_NAME }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io tags: "${{ github.ref == 'refs/heads/main' && 'latest,' || '' }}${{ steps.pre-step.outputs.image-tag }}" no_push: ${{ github.event_name == 'pull_request' }} - name: Build & Publish Docker Image for Playground uses: elgohr/Publish-Docker-Github-Action@v5 env: EDIT_GRAPH_MODE: true with: name: ${{ github.repository_owner }}/${{ env.PLAYGROUND_IMAGE_NAME }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io workdir: playground tags: "${{ github.ref == 'refs/heads/main' && 'latest,' || '' }}${{ steps.pre-step.outputs.image-tag }}" no_push: ${{ github.event_name == 'pull_request' }} buildargs: EDIT_GRAPH_MODE - name: Build & Publish Docker Image for Non-Editable Playground uses: elgohr/Publish-Docker-Github-Action@v5 env: EDIT_GRAPH_MODE: false with: name: ${{ github.repository_owner }}/${{ env.NON_EDIT_PLAYGROUND_IMAGE_NAME }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io workdir: playground tags: "${{ github.ref == 'refs/heads/main' && 'latest,' || '' }}${{ steps.pre-step.outputs.image-tag }}" no_push: ${{ github.event_name == 'pull_request' }} buildargs: EDIT_GRAPH_MODE - name: Build & Publish Docker Image for demo uses: elgohr/Publish-Docker-Github-Action@v5 with: name: ${{ github.repository_owner }}/${{ env.DEMO_IMAGE_NAME }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io workdir: demo tags: "${{ github.ref == 'refs/heads/main' && 'latest,' || '' }}${{ steps.pre-step.outputs.image-tag }}" no_push: ${{ github.event_name == 'pull_request' }}