diff --git a/.github/workflows/container.yml b/.github/workflows/container.yml new file mode 100644 index 0000000000..f95061eeb4 --- /dev/null +++ b/.github/workflows/container.yml @@ -0,0 +1,47 @@ +name: Docker Compose Build on Tag + +# The workflow is triggered when a tag is pushed +on: + push: + tags: + - "*" + +jobs: + build: + runs-on: ubuntu-latest + + steps: + # Check out the repository + - name: Checkout + uses: actions/checkout@v2 + + # Set up Docker + - name: Set up Docker + uses: docker/setup-buildx-action@v1 + + # 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 }} + + # Run docker-compose build + - name: Build Docker images + run: | + cp .env.example .env + docker-compose build + + # Get Tag Name + - name: Get Tag Name + id: tag_name + run: echo "TAG_NAME=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV + + # Tag it properly before push to github + - name: tag image and push + run: | + docker tag librechat:latest ghcr.io/${{ github.repository_owner }}/librechat:${{ env.TAG_NAME }} + docker push ghcr.io/${{ github.repository_owner }}/librechat:${{ env.TAG_NAME }} + docker tag librechat:latest ghcr.io/${{ github.repository_owner }}/librechat:latest + docker push ghcr.io/${{ github.repository_owner }}/librechat:latest