diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml new file mode 100644 index 000000000..916ac3c1a --- /dev/null +++ b/.github/workflows/docker-image.yml @@ -0,0 +1,33 @@ +name: Build and Push Docker Image to ACR + +on: + release: + types: [published] + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to Azure Container Registry + run: | + echo ${{ secrets.ACR_PASSWORD }} | docker login ${{ secrets.ACR_LOGIN_SERVER }} -u ${{ secrets.ACR_USERNAME }} --password-stdin + + - name: Build and Push Docker Image + run: | + docker build -t ${{ secrets.ACR_LOGIN_SERVER }}/${{ secrets.ACR_REPOSITORY }}:${{ github.event.release.tag_name }} + docker tag ${{ secrets.ACR_LOGIN_SERVER }}/${{ secrets.ACR_REPOSITORY }}:${{ github.event.release.tag_name }} ${{ secrets.ACR_LOGIN_SERVER }}/${{ secrets.ACR_REPOSITORY }}:latest + docker push ${{ secrets.ACR_LOGIN_SERVER }}/${{ secrets.ACR_REPOSITORY }}:${{ github.event.release.tag_name }} + docker push ${{ secrets.ACR_LOGIN_SERVER }}/${{ secrets.ACR_REPOSITORY }}:latest + + - name: Log out from ACR + run: | + docker logout ${{ secrets.ACR_LOGIN_SERVER }} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..d607541ed --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +FROM mcr.microsoft.com/cbl-mariner/base/core:2.0 + +# Set the working directory +WORKDIR /app + +# Install necessary system dependencies +RUN tdnf update -y +RUN tdnf install -y git gcc gobject-introspection-devel cairo-gobject cairo-devel pkg-config libvirt-devel python3-devel python3-pip python3-virtualenv build-essential cairo-gobject-devel curl ca-certificates + +# Clone the latest release of LISA from the GitHub repository +RUN git clone --branch $(curl --silent "https://api.github.com/repos/microsoft/lisa/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/') https://github.com/microsoft/lisa.git /app/lisa + +# Install Python dependencies for LISA +RUN python3 -m pip install --upgrade pip +WORKDIR /app/lisa +RUN python3 -m pip install --editable .[azure,libvirt,baremetal] --config-settings editable_mode=compat +RUN ln -fs /app/.local/bin/lisa /bin/lisa