diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 00000000..90956549 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,44 @@ +name: Build and public docker image + +on: + push: + branches: "master" + +jobs: + build-and-push-image: + runs-on: ubuntu-latest + # run only when code is compiling and tests are passing + if: "!contains(github.event.head_commit.message, '[skip ci]') && !contains(github.event.head_commit.message, '[ci skip]')" + # steps to perform in job + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + submodules: 'recursive' + + # setup Docker buld action + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v2 + + - name: Login to Github Packages + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build image and push to GitHub Container Registry + uses: docker/build-push-action@v2 + with: + # relative path to the place where source code with Dockerfile is located + context: ./ + file: Dockerfile + platforms: linux/amd64 + # Note: tags has to be all lower-case + tags: | + ghcr.io/${{ github.repository_owner }}/bpftime:latest + push: true + + - name: Image digest + run: echo ${{ steps.docker_build.outputs.digest }} diff --git a/Dockerfile b/Dockerfile index eccfca76..05b3453b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,11 +2,11 @@ FROM ubuntu:23.04 WORKDIR /bpftime RUN apt-get update && apt install -y --no-install-recommends \ libelf1 libelf-dev zlib1g-dev make cmake git libboost1.74-all-dev \ - binutils-dev libyaml-cpp-dev gcc-12 g++-12 ca-certificates clang llvm + binutils-dev libyaml-cpp-dev gcc g++ ca-certificates clang llvm RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh COPY . . RUN git submodule update --init --recursive -ENV CXX=g++-12 -ENV CC=gcc-12 +ENV CXX=g++ +ENV CC=gcc RUN make release