diff --git a/.github/workflows/push-network-monitor-agent.yaml b/.github/workflows/push-network-monitor-agent.yaml new file mode 100644 index 0000000000..0161ed9251 --- /dev/null +++ b/.github/workflows/push-network-monitor-agent.yaml @@ -0,0 +1,61 @@ +name: Build and upload Network Monitor Agent container to harbor.nymte.ch + +on: + workflow_dispatch: + inputs: + release_image: + description: 'Tag image as a release (prefix with golden-)' + required: true + default: false + type: boolean + +env: + WORKING_DIRECTORY: "nym-network-monitor-v3/nym-network-monitor-agent" + CONTAINER_NAME: "network-monitor-agent" + +jobs: + build-container: + runs-on: arc-linux-latest-dind + steps: + - name: Login to Harbor + uses: docker/login-action@v3 + with: + registry: harbor.nymte.ch + username: ${{ secrets.HARBOR_ROBOT_USERNAME }} + password: ${{ secrets.HARBOR_ROBOT_SECRET }} + + - name: Checkout repo + uses: actions/checkout@v6 + + - name: Configure git identity + run: | + git config --global user.email "lawrence@nymtech.net" + git config --global user.name "Lawrence Stalder" + + - name: Get version from Cargo.toml + id: get_version + run: | + VERSION=$(yq -oy '.package.version' ${{ env.WORKING_DIRECTORY }}/Cargo.toml) + echo "result=$VERSION" >> $GITHUB_OUTPUT + + - name: Set GIT_TAG variable + run: echo "GIT_TAG=${{ env.WORKING_DIRECTORY }}-${{ steps.get_version.outputs.result }}" >> $GITHUB_ENV + + - name: Initialize RELEASE_TAG + run: echo "RELEASE_TAG=" >> $GITHUB_ENV + + - name: Set RELEASE_TAG for release + if: github.event.inputs.release_image == 'true' + run: echo "RELEASE_TAG=golden-" >> $GITHUB_ENV + + - name: Set IMAGE_NAME_AND_TAGS variable + run: echo "IMAGE_NAME_AND_TAGS=${{ env.CONTAINER_NAME }}:${{ env.RELEASE_TAG }}${{ steps.get_version.outputs.result }}" >> $GITHUB_ENV + + - name: New env vars + run: echo "RELEASE_TAG='$RELEASE_TAG' GIT_TAG='$GIT_TAG' IMAGE_NAME_AND_TAGS='$IMAGE_NAME_AND_TAGS'" + + - name: Build and push image to Harbor + run: | + docker build -f ${{ env.WORKING_DIRECTORY }}/Dockerfile . -t harbor.nymte.ch/nym/${{ env.IMAGE_NAME_AND_TAGS }} + docker push harbor.nymte.ch/nym/${{ env.CONTAINER_NAME }} --all-tags + \ No newline at end of file diff --git a/.github/workflows/push-network-monitor-orchestrator.yaml b/.github/workflows/push-network-monitor-orchestrator.yaml new file mode 100644 index 0000000000..5ac8e31c35 --- /dev/null +++ b/.github/workflows/push-network-monitor-orchestrator.yaml @@ -0,0 +1,57 @@ +name: Build and upload Network Monitor Orchestrator container to harbor.nymte.ch + +on: + workflow_dispatch: + inputs: + release_image: + description: 'Tag image as a release (prefix with golden-)' + required: true + default: false + type: boolean + +env: + WORKING_DIRECTORY: "nym-network-monitor-v3/nym-network-monitor-orchestrator" + CONTAINER_NAME: "network-monitor-orchestrator" + +jobs: + build-container: + runs-on: arc-linux-latest-dind + steps: + - name: Login to Harbor + uses: docker/login-action@v3 + with: + registry: harbor.nymte.ch + username: ${{ secrets.HARBOR_ROBOT_USERNAME }} + password: ${{ secrets.HARBOR_ROBOT_SECRET }} + + - name: Checkout repo + uses: actions/checkout@v6 + + - name: Configure git identity + run: | + git config --global user.email "lawrence@nymtech.net" + git config --global user.name "Lawrence Stalder" + + - name: Get version from Cargo.toml + id: get_version + run: | + VERSION=$(yq -oy '.package.version' ${{ env.WORKING_DIRECTORY }}/Cargo.toml) + echo "result=$VERSION" >> $GITHUB_OUTPUT + + - name: Initialize RELEASE_TAG + run: echo "RELEASE_TAG=" >> $GITHUB_ENV + + - name: Set RELEASE_TAG for release + if: github.event.inputs.release_image == 'true' + run: echo "RELEASE_TAG=golden-" >> $GITHUB_ENV + + - name: Set IMAGE_NAME_AND_TAGS variable + run: echo "IMAGE_NAME_AND_TAGS=${{ env.CONTAINER_NAME }}:${{ env.RELEASE_TAG }}${{ steps.get_version.outputs.result }}" >> $GITHUB_ENV + + - name: Log image name + run: echo "RELEASE_TAG='$RELEASE_TAG' IMAGE_NAME_AND_TAGS='$IMAGE_NAME_AND_TAGS'" + + - name: Build and push image to Harbor + run: | + docker build -f ${{ env.WORKING_DIRECTORY }}/Dockerfile . -t harbor.nymte.ch/nym/${{ env.IMAGE_NAME_AND_TAGS }} + docker push harbor.nymte.ch/nym/${{ env.CONTAINER_NAME }} --all-tags