From a4bf046b42745d7927997f019198784caab22586 Mon Sep 17 00:00:00 2001 From: Vaishnavi Subhedar - Xilinx <141360387+SubhedarV@users.noreply.github.com> Date: Thu, 19 Sep 2024 16:48:11 -0700 Subject: [PATCH] pushing rpm package to harbor --- .github/workflows/tarrr_file.yml | 342 +++++++++++++++---------------- 1 file changed, 167 insertions(+), 175 deletions(-) diff --git a/.github/workflows/tarrr_file.yml b/.github/workflows/tarrr_file.yml index 2ccd1f23d05..7aa822ee091 100644 --- a/.github/workflows/tarrr_file.yml +++ b/.github/workflows/tarrr_file.yml @@ -1,186 +1,178 @@ -name: Test 1 build -env: - RELEASE: '2021.1' - PIPELINE: 'xrt' - ENV: 'test' - -on: - workflow_dispatch: - -jobs: - build: - strategy: - matrix: - include: - # - os: centos78 - # packageType: rpm - # os_ver: centos_7.8 - - os: centos8 - packageType: rpm - os_ver: centos_8.1 - # - os: rhel9 - # packageType: rpm - # os_ver: rhel_9.1 - # - os: ubuntu2004 - # packageType: deb - # os_ver: ubuntu_20.04 - # - os: ubuntu2204 - # packageType: deb - # os_ver: ubuntu_22.04 - # - os: amazonlinux-20202011111 - # packageType: rpm - # os_ver: amazonlinux20202011111 - # - os: ubuntu1804 - # packageType: deb - # os_ver: ubuntu_18.04 +name: Test 1 build +env: + RELEASE: '2021.1' + PIPELINE: 'xrt' + ENV: 'test' + +on: + workflow_dispatch: + +jobs: + build: + strategy: + matrix: + include: + - os: centos8 + packageType: rpm + os_ver: centos_8.1 + + runs-on: [self-hosted, Ubuntu-22.04] + steps: + - name: Set env variables + run: | + echo "Setting environment variables..." + echo "XRT_VERSION_PATCH=$(($GITHUB_RUN_NUMBER+717))" >> $GITHUB_ENV + echo "PATH=/usr/bin:$PATH" >> $GITHUB_ENV - runs-on: [self-hosted, Ubuntu-22.04] - steps: - - name: Set env variables - run: | - echo "Setting environment variables..." - # echo "XRT_VERSION_PATCH=${GITHUB_RUN_NUMBER}" >> $GITHUB_ENV - echo "XRT_VERSION_PATCH=$(($GITHUB_RUN_NUMBER+717))" >> $GITHUB_ENV - echo "PATH=/usr/bin:$PATH" >> $GITHUB_ENV + - name: Checkout PR + uses: actions/checkout@v3 + with: + fetch-depth: 0 + path: ${{ github.workspace }}/${{ env.XRT_VERSION_PATCH }} + submodules: recursive + + - name: Checkout private repository + uses: actions/checkout@v3 + with: + repository: actions-int/composite-workflows + github-server-url: ${{ secrets.SERVER_URL }} + token: ${{ secrets.ACCESS_TOKEN }} + path: composite-workflows + ref: image - - name: Checkout PR - uses: actions/checkout@v3 - with: - # repository: "${{ github.event.pull_request.head.repo.full_name }}" - # ref: "${{ github.event.pull_request.head.ref }}" - fetch-depth: 0 - path: ${{ github.workspace }}/${{ env.XRT_VERSION_PATCH }} - submodules: recursive - + - name: XRT build + uses: ./composite-workflows/build + with: + pipeline: ${{ env.PIPELINE }} + osVersion: ${{ matrix.os }} + packageType: ${{ matrix.packageType }} + os_ver: ${{ matrix.os_ver }} + workspace: ${{ github.workspace }} + buildNumber: ${{ env.XRT_VERSION_PATCH }} + accessToken: ${{ secrets.ACCESS_TOKEN }} + github-server-url: ${{ secrets.SERVER_URL }} + appConfig: ${{ secrets.APP_CONFIG }} + appConfig1: ${{ secrets.APP_CONFIG1 }} + appConfig2: ${{ secrets.APP_CONFIG2 }} + appConfig3: ${{ secrets.APP_CONFIG3 }} + + + package-download: + needs: [build] + runs-on: [self-hosted, Ubuntu-22.04] + steps: + - name: Set env variables + run: | + echo "Setting environment variables..." + echo "XRT_VERSION_PATCH=$(($GITHUB_RUN_NUMBER+717))" >> $GITHUB_ENV + echo "PATH=/usr/bin:$PATH" >> $GITHUB_ENV - name: Checkout private repository uses: actions/checkout@v3 with: - repository: actions-int/composite-workflows + repository: actions-int/composite-workflows + token: ${{ secrets.ACCESS_TOKEN }} github-server-url: ${{ secrets.SERVER_URL }} - token: ${{ secrets.ACCESS_TOKEN }} - path: composite-workflows - ref: image - - - name: List Root Directory Contents - run: | - echo "Listing contents of the root directory:" - ls -al ${{ github.workspace }}/${{ env.XRT_VERSION_PATCH }} - - - - name: Check Dockerfile Directory - run: | - echo "Checking for Dockerfile directory..." - ls -al ${{ github.workspace }}/${{ env.XRT_VERSION_PATCH }}/Dockerfile - - - name: XRT build - uses: ./composite-workflows/build - with: - pipeline: ${{ env.PIPELINE }} - osVersion: ${{ matrix.os }} - packageType: ${{ matrix.packageType }} - os_ver: ${{ matrix.os_ver }} - workspace: ${{ github.workspace }} - buildNumber: ${{ env.XRT_VERSION_PATCH }} - accessToken: ${{ secrets.ACCESS_TOKEN }} - github-server-url: ${{ secrets.SERVER_URL }} - appConfig: ${{ secrets.APP_CONFIG }} - appConfig1: ${{ secrets.APP_CONFIG1 }} - appConfig2: ${{ secrets.APP_CONFIG2 }} - appConfig3: ${{ secrets.APP_CONFIG3 }} - - - package-download: - needs: [build] - runs-on: [self-hosted, Ubuntu-22.04] - steps: - - name: Set env variables + path: composite-workflows + ref: '2021.1' + + - name: Use composite action package download + uses: ./composite-workflows/package-download + with: + runNumber: ${{ env.XRT_VERSION_PATCH }} + pipeline: ${{ env.PIPELINE }} + env: ${{ env.ENV }} + release: ${{ env.RELEASE }} + sshKey: ${{ secrets.CI_PRIVATE_SSH_KEY }} + accessToken: ${{ secrets.ACCESS_TOKEN }} + NPATH: ${{ secrets.NPATH }} + USER: ${{ secrets.USER }} + github-server-url: ${{ secrets.SERVER_URL }} + + - name: List contents of artifact directory run: | - echo "Setting environment variables..." - # echo "XRT_VERSION_PATCH=${GITHUB_RUN_NUMBER}" >> $GITHUB_ENV - echo "XRT_VERSION_PATCH=$(($GITHUB_RUN_NUMBER+717))" >> $GITHUB_ENV - echo "PATH=/usr/bin:$PATH" >> $GITHUB_ENV - - name: Checkout private repository - uses: actions/checkout@v3 - with: - repository: actions-int/composite-workflows - token: ${{ secrets.ACCESS_TOKEN }} - github-server-url: ${{ secrets.SERVER_URL }} - path: composite-workflows - ref: '2021.1' - + cd ${{ env.PATH_DIR }}/artifact + ls -al + shell: bash - - name: Use composite action package download - uses: ./composite-workflows/package-download - with: - runNumber: ${{ env.XRT_VERSION_PATCH }} - pipeline: ${{ env.PIPELINE }} - env: ${{ env.ENV }} - release: ${{ env.RELEASE }} - sshKey: ${{ secrets.CI_PRIVATE_SSH_KEY }} - accessToken: ${{ secrets.ACCESS_TOKEN }} - NPATH: ${{ secrets.NPATH }} - USER: ${{ secrets.USER }} - github-server-url: ${{ secrets.SERVER_URL }} - - - name: List contents of artifact directory - run: | - cd ${{ env.PATH_DIR }}/artifact - ls -al - shell: bash + - name: Authenticate with Harbor + run: | + echo "${{ secrets.HARBOR_PASSWORD }}" | docker login registry.amd.com -u '${{ secrets.HARBOR_USERNAME }}' --password-stdin + shell: bash + + - name: Push RPM Packages to Harbor + run: | + cd ${{ env.PATH_DIR }}/artifact + for package_file in *-xrt.rpm; do + echo "Pushing package: $package_file" + versioned_name="${{ env.XRT_VERSION_PATCH }}-$(basename $package_file)" + docker build -t registry.amd.com/buildops/$versioned_name . + docker push registry.amd.com/buildops/$versioned_name + done + shell: bash + + docker-build: + needs: [package-download] + runs-on: [self-hosted, Ubuntu-22.04] + steps: + - name: Set env variables + run: | + echo "Setting environment variables..." + echo "XRT_VERSION_PATCH=$(($GITHUB_RUN_NUMBER+717))" >> $GITHUB_ENV + echo "PATH=/usr/bin:$PATH" >> $GITHUB_ENV - - name: Find and copy packages - run: | - cd ${{ env.PATH_DIR }}/artifact - echo "Listing all files in artifact directory:" - ls -al - for package_file in *-xrt.rpm; do - echo "Found package: $package_file" - cp $package_file ${{ github.workspace }}/${{ env.XRT_VERSION_PATCH }}/Dockerfile/ - done - shell: bash - - - docker-build: - needs: [package-download] - runs-on: [self-hosted, Ubuntu-22.04] - steps: - - name: Set env variables - run: | - echo "Setting environment variables..." - echo "XRT_VERSION_PATCH=$(($GITHUB_RUN_NUMBER+717))" >> $GITHUB_ENV - echo "PATH=/usr/bin:$PATH" >> $GITHUB_ENV + - name: Checkout PR + uses: actions/checkout@v3 + with: + fetch-depth: 0 + path: ${{ github.workspace }}/${{ env.XRT_VERSION_PATCH }} + submodules: recursive + + - name: Authenticate with Harbor + run: | + echo "${{ secrets.HARBOR_PASSWORD }}" | docker login registry.amd.com -u '${{ secrets.HARBOR_USERNAME }}' --password-stdin + shell: bash - - name: List contents of Dockerfile directory - run: | - echo "Contents of Dockerfile directory:" - ls -al ${{ github.workspace }}/${{ env.XRT_VERSION_PATCH }}/Dockerfile - shell: bash - - - name: Build Docker images - run: | - for package_file in ${{ github.workspace }}/${{ env.XRT_VERSION_PATCH }}/Dockerfile/*-xrt.rpm; do - echo "Building image for $package_file" - image_tag=$(basename $package_file | sed 's/\.[^.]*$//') - if [[ $package_file == *centos_8.1* ]]; then - base_image="centos:8" - else - base_image="ubuntu:22.04" - fi - docker build --build-arg PACKAGE_FILE=$(basename $package_file) --build-arg BASE_IMAGE=$base_image -t xrt_image:$image_tag -f ${{ github.workspace }}/${{ env.XRT_VERSION_PATCH }}/Dockerfile/Dockerfile ${{ github.workspace }}/${{ env.XRT_VERSION_PATCH }}/Dockerfile - done - shell: bash - - - name: Authenticate with Harbor - run: | - echo "${{ secrets.HARBOR_PASSWORD }}" | docker login registry.amd.com -u '${{ secrets.HARBOR_USERNAME }}' --password-stdin - shell: bash - - - name: Push Docker images to AMD Harbor + - name: Pull RPM Packages from Harbor + run: | + cd ${{ github.workspace }}/Dockerfile + for package_file in $(docker search registry.amd.com/buildops --format "{{.Name}}" | grep "${{ env.XRT_VERSION_PATCH }}-xrt_.*-xrt.rpm"); do + echo "Pulling package: $package_file" + docker pull $package_file + docker save $package_file -o $(basename $package_file) + done + shell: bash + + - name: List contents of Dockerfile directory run: | - for package_file in ${{ github.workspace }}/${{ env.XRT_VERSION_PATCH }}/Dockerfile/*-xrt.rpm; do - image_tag=$(basename $package_file | sed 's/\.[^.]*$//') - echo "Pushing image xrt_image:$image_tag" - docker tag xrt_image:$image_tag registry.amd.com/buildops/xrt_image:$image_tag - docker push registry.amd.com/buildops/xrt_image:$image_tag - done - shell: bash + echo "Contents of Dockerfile directory:" + ls -al ${{ github.workspace }}/Dockerfile + shell: bash + + - name: Build Docker images + run: | + for package_file in ${{ github.workspace }}/Dockerfile/*-xrt.rpm; do + echo "Building image for $package_file" + image_tag=$(basename $package_file | sed 's/\.[^.]*$//') + if [[ $package_file == *centos_8.1* ]]; then + base_image="centos:8" + else + base_image="ubuntu:22.04" + fi + docker build --build-arg PACKAGE_FILE=$(basename $package_file) --build-arg BASE_IMAGE=$base_image -t xrt_image:$image_tag -f ${{ github.workspace }}/Dockerfile/Dockerfile ${{ github.workspace }}/Dockerfile + done + shell: bash + + - name: Authenticate with Harbor + run: | + echo "${{ secrets.HARBOR_PASSWORD }}" | docker login registry.amd.com -u '${{ secrets.HARBOR_USERNAME }}' --password-stdin + shell: bash + + - name: Push Docker images to AMD Harbor + run: | + for package_file in ${{ github.workspace }}/Dockerfile/*-xrt.rpm; do + image_tag=$(basename $package_file | sed 's/\.[^.]*$//') + echo "Pushing image xrt_image:$image_tag" + docker tag xrt_image:$image_tag registry.amd.com/buildops/xrt_image:$image_tag + docker push registry.amd.com/buildops/xrt_image:$image_tag + done + shell: bash