diff --git a/.github/workflows/push-node-status-agent.yaml b/.github/workflows/push-node-status-agent.yaml index a66d4dee41a..fb25f9dac09 100644 --- a/.github/workflows/push-node-status-agent.yaml +++ b/.github/workflows/push-node-status-agent.yaml @@ -2,6 +2,10 @@ name: Build and upload Node Status agent container to harbor.nymte.ch on: workflow_dispatch: + inputs: + gateway_probe_git_ref: + type: string + description: Which gateway probe git ref to build the image with env: WORKING_DIRECTORY: "nym-node-status-agent" @@ -32,25 +36,26 @@ jobs: with: cmd: yq -oy '.package.version' ${{ env.WORKING_DIRECTORY }}/Cargo.toml - - name: Check if tag exists + - name: cleanup-gateway-probe-ref + id: cleanup_gateway_probe_ref run: | - if git rev-parse ${{ steps.get_version.outputs.value }} >/dev/null 2>&1; then - echo "Tag ${{ steps.get_version.outputs.value }} already exists" - fi + GATEWAY_PROBE_GIT_REF=${{ github.event.inputs.gateway_probe_git_ref }} + GIT_REF_SLUG="${GATEWAY_PROBE_GIT_REF//\//-}" + echo "git_ref=${GIT_REF_SLUG}" >> $GITHUB_OUTPUT - name: Remove existing tag if exists run: | - if git rev-parse ${{ env.WORKING_DIRECTORY }}-${{ steps.get_version.outputs.result }} >/dev/null 2>&1; then - git push --delete origin ${{ env.WORKING_DIRECTORY }}-${{ steps.get_version.outputs.result }} - git tag -d ${{ env.WORKING_DIRECTORY }}-${{ steps.get_version.outputs.result }} + if git rev-parse ${{ env.WORKING_DIRECTORY }}-${{ steps.get_version.outputs.result }}-${{ steps.cleanup_gateway_probe_ref.outputs.git_ref }} >/dev/null 2>&1; then + git push --delete origin ${{ env.WORKING_DIRECTORY }}-${{ steps.get_version.outputs.result }}-${{ steps.cleanup_gateway_probe_ref.outputs.git_ref }} + git tag -d ${{ env.WORKING_DIRECTORY }}-${{ steps.get_version.outputs.result }}-${{ steps.cleanup_gateway_probe_ref.outputs.git_ref }} fi - name: Create tag run: | - git tag -a ${{ env.WORKING_DIRECTORY }}-${{ steps.get_version.outputs.result }} -m "Version ${{ steps.get_version.outputs.result }}" - git push origin ${{ env.WORKING_DIRECTORY }}-${{ steps.get_version.outputs.result }} + git tag -a ${{ env.WORKING_DIRECTORY }}-${{ steps.get_version.outputs.result }}-${{ steps.cleanup_gateway_probe_ref.outputs.git_ref }} -m "Version ${{ steps.get_version.outputs.result }}-${{ steps.cleanup_gateway_probe_ref.outputs.git_ref }}" + git push origin ${{ env.WORKING_DIRECTORY }}-${{ steps.get_version.outputs.result }}-${{ steps.cleanup_gateway_probe_ref.outputs.git_ref }} - name: BuildAndPushImageOnHarbor run: | - docker build -f ${{ env.WORKING_DIRECTORY }}/Dockerfile . -t harbor.nymte.ch/nym/${{ env.CONTAINER_NAME }}:${{ steps.get_version.outputs.result }} -t harbor.nymte.ch/nym/${{ env.CONTAINER_NAME }}:latest - docker push harbor.nymte.ch/nym/${{ env.CONTAINER_NAME }} --all-tags + docker build --build-arg GIT_REF=${{ github.event.inputs.gateway_probe_git_ref }} -f ${{ env.WORKING_DIRECTORY }}/Dockerfile . -t harbor.nymte.ch/nym/${{ env.CONTAINER_NAME }}:${{ steps.get_version.outputs.result }}-${{ steps.cleanup_gateway_probe_ref.outputs.git_ref }} + docker push harbor.nymte.ch/nym/${{ env.CONTAINER_NAME }} --all-tags \ No newline at end of file diff --git a/nym-node-status-agent/Dockerfile b/nym-node-status-agent/Dockerfile index 0280fc5687c..b50ce8be3d6 100644 --- a/nym-node-status-agent/Dockerfile +++ b/nym-node-status-agent/Dockerfile @@ -1,5 +1,7 @@ FROM rust:latest AS builder +ARG GIT_REF=main + RUN apt update && apt install -yy libdbus-1-dev pkg-config libclang-dev # Install go @@ -7,6 +9,7 @@ RUN wget https://go.dev/dl/go1.22.5.linux-amd64.tar.gz -O go.tar.gz RUN tar -xzvf go.tar.gz -C /usr/local RUN git clone https://github.com/nymtech/nym-vpn-client /usr/src/nym-vpn-client +RUN cd /usr/src/nym-vpn-client && git checkout $GIT_REF ENV PATH=/go/bin:/usr/local/go/bin:$PATH WORKDIR /usr/src/nym-vpn-client/nym-vpn-core RUN cargo build --release --package nym-gateway-probe @@ -15,6 +18,15 @@ COPY ./ /usr/src/nym WORKDIR /usr/src/nym/nym-node-status-agent RUN cargo build --release +#------------------------------------------------------------------- +# The following environment variables are required at runtime: +# +# NODE_STATUS_AGENT_SERVER_ADDRESS +# NODE_STATUS_AGENT_SERVER_PORT +# +# see https://github.com/nymtech/nym/blob/develop/nym-node-status-agent/src/cli.rs for details +#------------------------------------------------------------------- + FROM ubuntu:24.04 RUN apt-get update && apt-get install -y ca-certificates @@ -25,4 +37,4 @@ COPY --from=builder /usr/src/nym/target/release/nym-node-status-agent ./ COPY --from=builder /usr/src/nym-vpn-client/nym-vpn-core/target/release/nym-gateway-probe ./ ENV NODE_STATUS_AGENT_PROBE_PATH=/nym/nym-gateway-probe -ENTRYPOINT [ "/nym/nym-node-status-agent" ] +ENTRYPOINT [ "/nym/nym-node-status-agent", "run-probe" ] \ No newline at end of file