diff --git a/.github/workflows/module.yml b/.github/workflows/module.yml index d7270b6..74ed9aa 100644 --- a/.github/workflows/module.yml +++ b/.github/workflows/module.yml @@ -20,33 +20,33 @@ jobs: go-lint: name: go lint runs-on: ubuntu-latest - timeout-minutes: ${{ inputs.timeout_minutes }} + timeout-minutes: ${{ inputs.timeout-minutes }} steps: - uses: actions/checkout@v4 - name: Configure - run: cmake -S . -B build -D USE_DOCKER=ON -D FIX_IS_ERROR=ON + run: cmake -S . -B build -D USE_DOCKER=ON -D UID=$(id -u) -D GID=$(id -g) -D FIX_IS_ERROR=ON - name: Lint run: cmake --build build --target go_lint_${{ env.target }} go-build: name: go build runs-on: ubuntu-latest - timeout-minutes: ${{ inputs.timeout_minutes }} + timeout-minutes: ${{ inputs.timeout-minutes }} steps: - uses: actions/checkout@v4 - name: Configure - run: cmake -S . -B build -D USE_DOCKER=ON -D FIX_IS_ERROR=ON + run: cmake -S . -B build -D USE_DOCKER=ON -D UID=$(id -u) -D GID=$(id -g) -D FIX_IS_ERROR=ON - name: Build run: cmake --build build --target go_build_${{ env.target }} go-test: name: go test runs-on: ubuntu-latest - timeout-minutes: ${{ inputs.timeout_minutes }} + timeout-minutes: ${{ inputs.timeout-minutes }} steps: - uses: actions/checkout@v4 with: fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis - name: Configure - run: cmake -S . -B build -D USE_DOCKER=ON -D FIX_IS_ERROR=ON + run: cmake -S . -B build -D USE_DOCKER=ON -D UID=$(id -u) -D GID=$(id -g) -D FIX_IS_ERROR=ON - name: Install builders run: cmake --build build --target install_builders - name: Test @@ -63,20 +63,20 @@ jobs: buf-format: name: buf format runs-on: ubuntu-latest - timeout-minutes: ${{ inputs.timeout_minutes }} + timeout-minutes: ${{ inputs.timeout-minutes }} steps: - uses: actions/checkout@v4 - name: Configure - run: cmake -S . -B build -D USE_DOCKER=ON -D FIX_IS_ERROR=ON + run: cmake -S . -B build -D USE_DOCKER=ON -D UID=$(id -u) -D GID=$(id -g) -D FIX_IS_ERROR=ON - name: Lint run: cmake --build build --target buf_format_${{ env.target }} buf-lint: name: buf lint runs-on: ubuntu-latest - timeout-minutes: ${{ inputs.timeout_minutes }} + timeout-minutes: ${{ inputs.timeout-minutes }} steps: - uses: actions/checkout@v4 - name: Configure - run: cmake -S . -B build -D USE_DOCKER=ON -D FIX_IS_ERROR=ON + run: cmake -S . -B build -D USE_DOCKER=ON -D UID=$(id -u) -D GID=$(id -g) -D FIX_IS_ERROR=ON - name: Lint run: cmake --build build --target buf_lint_${{ env.target }} diff --git a/.github/workflows/modules.yml b/.github/workflows/modules.yml index e58fdcd..b116773 100644 --- a/.github/workflows/modules.yml +++ b/.github/workflows/modules.yml @@ -6,7 +6,7 @@ on: pull_request: jobs: check-modules: - name: check modules + name: x/${{ matrix.name }} strategy: matrix: include: diff --git a/builders/docker/install/CMakeLists.txt b/builders/docker/install/CMakeLists.txt index 132edf7..f388c09 100644 --- a/builders/docker/install/CMakeLists.txt +++ b/builders/docker/install/CMakeLists.txt @@ -1,7 +1,10 @@ -configure_file(Dockerfile.in Dockerfile - @ONLY +configure_file(Dockerfile Dockerfile + COPYONLY ) +set(UID 1000 CACHE STRING "uid of the user") +set(GID 1000 CACHE STRING "gid of the user") + function(_get_builder_binary_dir _output) file(RELATIVE_PATH _rel_builder_source_dir ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_FUNCTION_LIST_DIR}) file(REAL_PATH ${_rel_builder_source_dir} ${_output} BASE_DIRECTORY ${CMAKE_BINARY_DIR}) @@ -9,7 +12,7 @@ function(_get_builder_binary_dir _output) endfunction() add_custom_target(install_builders - COMMAND cmake -D IDFILE=id.txt -P ${CMAKE_CURRENT_SOURCE_DIR}/docker-build.cmake + COMMAND cmake -D IDFILE=id.txt -D UID=${UID} -D GID=${GID} -P ${CMAKE_CURRENT_SOURCE_DIR}/docker-build.cmake ) file(COPY ${CMAKE_SOURCE_DIR}/go.work ${CMAKE_SOURCE_DIR}/go.work.sum diff --git a/builders/docker/install/Dockerfile.in b/builders/docker/install/Dockerfile similarity index 61% rename from builders/docker/install/Dockerfile.in rename to builders/docker/install/Dockerfile index 0b6d7c6..d051a3f 100644 --- a/builders/docker/install/Dockerfile.in +++ b/builders/docker/install/Dockerfile @@ -10,20 +10,20 @@ RUN cmake -S . -B build -Wno-dev && cmake --build build --target install_builder FROM platform AS final -ARG uid=1000 -ARG gid=1000 +ARG UID +ARG GID -RUN addgroup --system --gid ${gid} builder -RUN adduser --system --uid ${uid} --gid ${gid} builder --home /home/builder +RUN addgroup --system --gid ${GID} builder +RUN adduser --system --uid ${UID} --gid ${GID} builder --home /home/builder COPY --from=builders /usr/local /usr/local/ -COPY --from=builders --chown=${uid}:${gid} /root/go /home/builder/go/ +COPY --from=builders --chown=${UID}:${GID} /root/go /home/builder/go/ ENV PATH /home/builder/go/bin:/usr/local/bin:/usr/bin WORKDIR /tmp/mods -RUN chown ${uid}:${gid} . -COPY --chown=${uid}:${gid} mods . +RUN chown ${UID}:${GID} . +COPY --chown=${UID}:${GID} mods . -USER ${uid}:${gid} +USER ${UID}:${GID} RUN go mod download diff --git a/builders/docker/install/docker-build.cmake b/builders/docker/install/docker-build.cmake index ad5178d..5d929ca 100644 --- a/builders/docker/install/docker-build.cmake +++ b/builders/docker/install/docker-build.cmake @@ -1,5 +1,5 @@ execute_process( - COMMAND docker build -q . + COMMAND docker build --build-arg UID=${UID} --build-arg GID=${GID} -q . OUTPUT_VARIABLE id ) string(STRIP ${id} id)