name: Docker Dev Images Build on: workflow_dispatch: push: branches: - main paths: - 'api/**' - 'client/**' - 'packages/**' jobs: build: runs-on: ubuntu-latest steps: # Check out the repository - name: Checkout uses: actions/checkout@v4 # Set up Docker - name: Set up Docker uses: docker/setup-buildx-action@v3 # Log in to GitHub Container Registry - name: Log in to GitHub Container Registry uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} # Login to Docker Hub - name: Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} # Build Docker images - name: Build Docker images run: | cp .env.example .env docker build -f Dockerfile.multi --target api-build -t librechat-dev-api . docker build -f Dockerfile -t librechat-dev . # Tag and push the images to GitHub Container Registry - name: Tag and push images to GHCR run: | docker tag librechat-dev-api:latest ghcr.io/${{ github.repository_owner }}/librechat-dev-api:${{ github.sha }} docker push ghcr.io/${{ github.repository_owner }}/librechat-dev-api:${{ github.sha }} docker tag librechat-dev-api:latest ghcr.io/${{ github.repository_owner }}/librechat-dev-api:latest docker push ghcr.io/${{ github.repository_owner }}/librechat-dev-api:latest docker tag librechat-dev:latest ghcr.io/${{ github.repository_owner }}/librechat-dev:${{ github.sha }} docker push ghcr.io/${{ github.repository_owner }}/librechat-dev:${{ github.sha }} docker tag librechat-dev:latest ghcr.io/${{ github.repository_owner }}/librechat-dev:latest docker push ghcr.io/${{ github.repository_owner }}/librechat-dev:latest # Tag and push the images to Docker Hub - name: Tag and push images to Docker Hub run: | docker tag librechat-dev-api:latest ${{ secrets.DOCKERHUB_USERNAME }}/librechat-dev-api:${{ github.sha }} docker push ${{ secrets.DOCKERHUB_USERNAME }}/librechat-dev-api:${{ github.sha }} docker tag librechat-dev-api:latest ${{ secrets.DOCKERHUB_USERNAME }}/librechat-dev-api:latest docker push ${{ secrets.DOCKERHUB_USERNAME }}/librechat-dev-api:latest docker tag librechat-dev:latest ${{ secrets.DOCKERHUB_USERNAME }}/librechat-dev:${{ github.sha }} docker push ${{ secrets.DOCKERHUB_USERNAME }}/librechat-dev:${{ github.sha }} docker tag librechat-dev:latest ${{ secrets.DOCKERHUB_USERNAME }}/librechat-dev:latest docker push ${{ secrets.DOCKERHUB_USERNAME }}/librechat-dev:latest