From be2043f6aaa9edfd46206992dac97b6b571e1511 Mon Sep 17 00:00:00 2001 From: Saikrishna Bairamoni <84093461+SaikrishnaBairamoni@users.noreply.github.com> Date: Fri, 12 Jul 2024 11:39:00 -0400 Subject: [PATCH 1/5] update dockerhub workflow to use reusable actions docker org, tag and metadata. --- .github/workflows/dockerhub.yml | 263 +++++++++++++++++++++++--------- 1 file changed, 188 insertions(+), 75 deletions(-) diff --git a/.github/workflows/dockerhub.yml b/.github/workflows/dockerhub.yml index 957e310f..0bf3f10e 100644 --- a/.github/workflows/dockerhub.yml +++ b/.github/workflows/dockerhub.yml @@ -1,228 +1,341 @@ name: Docker Hub build + on: push: branches: - - "develop" - - "master" + - develop + - master - "release/*" + tags: + - "carma-system-*" jobs: + determine_docker_org_and_tag: + runs-on: ubuntu-latest + outputs: + docker_organization: ${{ steps.docker-org-and-tag.outputs.docker_organization }} + docker_image_tag: ${{ steps.docker-org-and-tag.outputs.docker_image_tag }} + steps: + - id: docker-org-and-tag + uses: usdot-fhwa-stol/actions/docker-org-and-tag@main + dockerhub-telematic-cloud-messaging: + needs: determine_docker_org_and_tag runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 + - name: Get Docker Image Metadata + shell: bash + id: docker-image-metadata + run: | + echo build_date=$(date -u +”%Y-%m-%dT%H:%M:%SZ”) >> $GITHUB_OUTPUT + echo vcs_ref=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build - uses: docker/build-push-action@v3 + - name: Build and Push Docker Image + uses: docker/build-push-action@v5 with: context: ./telematic_system/telematic_cloud_messaging/ - file: ./telematic_system/telematic_cloud_messaging/Dockerfile push: true tags: usdotfhwastoldev/telematic_cloud_messaging:${{ github.ref_name }} + build-args: | + BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} + VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} dockerhub-carma-streets-bridge: + needs: determine_docker_org_and_tag runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 + - name: Get Docker Image Metadata + shell: bash + id: docker-image-metadata + run: | + echo build_date=$(date -u +”%Y-%m-%dT%H:%M:%SZ”) >> $GITHUB_OUTPUT + echo vcs_ref=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build - uses: docker/build-push-action@v3 + - name: Build and Push Docker Image + uses: docker/build-push-action@v5 with: context: ./telematic_system/telematic_units/carma_street_bridge/ - file: ./telematic_system/telematic_units/carma_street_bridge/Dockerfile push: true tags: usdotfhwastoldev/carma_street_nats_bridge:${{ github.ref_name }} + build-args: | + BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} + VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} dockerhub-carma-vehicle-bridge: + needs: determine_docker_org_and_tag runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 + - name: Get Docker Image Metadata + shell: bash + id: docker-image-metadata + run: | + echo build_date=$(date -u +”%Y-%m-%dT%H:%M:%SZ”) >> $GITHUB_OUTPUT + echo vcs_ref=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build - uses: docker/build-push-action@v3 + - name: Build and Push Docker Image + uses: docker/build-push-action@v5 with: context: ./telematic_system/telematic_units/carma_vehicle_bridge/ - file: ./telematic_system/telematic_units/carma_vehicle_bridge/Dockerfile push: true tags: usdotfhwastoldev/carma_vehicle_nats_bridge:${{ github.ref_name }} + build-args: | + BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} + VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} dockerhub-carma-cloud-bridge: + needs: determine_docker_org_and_tag runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 + - name: Get Docker Image Metadata + shell: bash + id: docker-image-metadata + run: | + echo build_date=$(date -u +”%Y-%m-%dT%H:%M:%SZ”) >> $GITHUB_OUTPUT + echo vcs_ref=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build - uses: docker/build-push-action@v3 + - name: Build and Push Docker Image + uses: docker/build-push-action@v5 with: context: ./telematic_system/telematic_units/carma_cloud_bridge/ - file: ./telematic_system/telematic_units/carma_cloud_bridge/Dockerfile push: true tags: usdotfhwastoldev/carma_cloud_nats_bridge:${{ github.ref_name }} + build-args: | + BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} + VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} dockerhub-telematic-historical-data-processing: + needs: determine_docker_org_and_tag runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 + - name: Get Docker Image Metadata + shell: bash + id: docker-image-metadata + run: | + echo build_date=$(date -u +”%Y-%m-%dT%H:%M:%SZ”) >> $GITHUB_OUTPUT + echo vcs_ref=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build - uses: docker/build-push-action@v3 + - name: Build and Push Docker Image + uses: docker/build-push-action@v5 with: context: ./telematic_system/telematic_historical_data_processing/ - file: ./telematic_system/telematic_historical_data_processing/Dockerfile push: true tags: usdotfhwastoldev/telematic_historical_data_processing:${{ github.ref_name }} - + build-args: | + BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} + VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} + dockerhub-telematic-web-server: + needs: determine_docker_org_and_tag runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 + - name: Get Docker Image Metadata + shell: bash + id: docker-image-metadata + run: | + echo build_date=$(date -u +”%Y-%m-%dT%H:%M:%SZ”) >> $GITHUB_OUTPUT + echo vcs_ref=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build - uses: docker/build-push-action@v3 + - name: Build and Push Docker Image + uses: docker/build-push-action@v5 with: context: ./telematic_system/telematic_apps/web_app/server - file: ./telematic_system/telematic_apps/web_app/server/Dockerfile push: true tags: usdotfhwastoldev/telematic_web_server:${{ github.ref_name }} - + build-args: | + BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} + VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} + dockerhub-telematic-web-client: + needs: determine_docker_org_and_tag runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 + - name: Get Docker Image Metadata + shell: bash + id: docker-image-metadata + run: | + echo build_date=$(date -u +”%Y-%m-%dT%H:%M:%SZ”) >> $GITHUB_OUTPUT + echo vcs_ref=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build - uses: docker/build-push-action@v3 + - name: Build and Push Docker Image + uses: docker/build-push-action@v5 with: context: ./telematic_system/telematic_apps/web_app/client - file: ./telematic_system/telematic_apps/web_app/client/Dockerfile push: true tags: usdotfhwastoldev/telematic_web_client:${{ github.ref_name }} - + build-args: | + BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} + VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} + dockerhub-telematic-apache2: + needs: determine_docker_org_and_tag runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 + - name: Get Docker Image Metadata + shell: bash + id: docker-image-metadata + run: | + echo build_date=$(date -u +”%Y-%m-%dT%H:%M:%SZ”) >> $GITHUB_OUTPUT + echo vcs_ref=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build - uses: docker/build-push-action@v3 + - name: Build and Push Docker Image + uses: docker/build-push-action@v5 with: context: ./telematic_system/telematic_apps/apache2 - file: ./telematic_system/telematic_apps/apache2/Dockerfile push: true - tags: usdotfhwastoldev/telematic_apache2:${{ github.ref_name }} - + tags: usdotfhwastoldev/telematic_apache2:${{ github.ref_name }} + build-args: | + BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} + VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} + dockerhub-telematic-grafana: + needs: determine_docker_org_and_tag runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 + - name: Get Docker Image Metadata + shell: bash + id: docker-image-metadata + run: | + echo build_date=$(date -u +”%Y-%m-%dT%H:%M:%SZ”) >> $GITHUB_OUTPUT + echo vcs_ref=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build - uses: docker/build-push-action@v3 + - name: Build and Push Docker Image + uses: docker/build-push-action@v5 with: context: ./telematic_system/telematic_apps/grafana - file: ./telematic_system/telematic_apps/grafana/Dockerfile push: true - tags: usdotfhwastoldev/telematic_grafana:${{ github.ref_name }} + tags: usdotfhwastoldev/telematic_grafana:${{ github.ref_name }} + build-args: | + BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} + VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} dockerhub-telematic-local-apache2: + needs: determine_docker_org_and_tag runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 + - name: Get Docker Image Metadata + shell: bash + id: docker-image-metadata + run: | + echo build_date=$(date -u +”%Y-%m-%dT%H:%M:%SZ”) >> $GITHUB_OUTPUT + echo vcs_ref=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build - uses: docker/build-push-action@v3 + - name: Build and Push Docker Image + uses: docker/build-push-action@v5 with: context: ./telematic_system/telematic_apps/apache2 file: ./telematic_system/telematic_apps/apache2/local.Dockerfile push: true - tags: usdotfhwastoldev/telematic_local_apache2:${{ github.ref_name }} - + tags: usdotfhwastoldev/telematic_local_apache2:${{ github.ref_name }} + build-args: | + BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} + VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} + dockerhub-telematic-local-messaging: + needs: determine_docker_org_and_tag runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 + - name: Get Docker Image Metadata + shell: bash + id: docker-image-metadata + run: | + echo build_date=$(date -u +”%Y-%m-%dT%H:%M:%SZ”) >> $GITHUB_OUTPUT + echo vcs_ref=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build - uses: docker/build-push-action@v3 + - name: Build and Push Docker Image + uses: docker/build-push-action@v5 with: context: ./telematic_system/telematic_cloud_messaging/ file: ./telematic_system/telematic_cloud_messaging/local.Dockerfile push: true - tags: usdotfhwastoldev/telematic_local_messaging:${{ github.ref_name }} \ No newline at end of file + tags: usdotfhwastoldev/telematic_local_messaging:${{ github.ref_name }} + build-args: | + BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} + VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} From be67a1f667e93530c1c717c8d7314665da51d3dd Mon Sep 17 00:00:00 2001 From: Saikrishna Bairamoni <84093461+SaikrishnaBairamoni@users.noreply.github.com> Date: Fri, 12 Jul 2024 14:40:13 -0400 Subject: [PATCH 2/5] remove telematic local messaging job --- .github/workflows/dockerhub.yml | 30 ------------------------------ 1 file changed, 30 deletions(-) diff --git a/.github/workflows/dockerhub.yml b/.github/workflows/dockerhub.yml index 0bf3f10e..222c3cb2 100644 --- a/.github/workflows/dockerhub.yml +++ b/.github/workflows/dockerhub.yml @@ -309,33 +309,3 @@ jobs: build-args: | BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} - - dockerhub-telematic-local-messaging: - needs: determine_docker_org_and_tag - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Get Docker Image Metadata - shell: bash - id: docker-image-metadata - run: | - echo build_date=$(date -u +”%Y-%m-%dT%H:%M:%SZ”) >> $GITHUB_OUTPUT - echo vcs_ref=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Login to DockerHub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build and Push Docker Image - uses: docker/build-push-action@v5 - with: - context: ./telematic_system/telematic_cloud_messaging/ - file: ./telematic_system/telematic_cloud_messaging/local.Dockerfile - push: true - tags: usdotfhwastoldev/telematic_local_messaging:${{ github.ref_name }} - build-args: | - BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} - VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} From 06f59ef48b839d478260cf884bb60d6d7690e136 Mon Sep 17 00:00:00 2001 From: Saikrishna Bairamoni <84093461+SaikrishnaBairamoni@users.noreply.github.com> Date: Fri, 12 Jul 2024 15:08:34 -0400 Subject: [PATCH 3/5] update docker org to point candidate --- .github/workflows/dockerhub.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/dockerhub.yml b/.github/workflows/dockerhub.yml index 222c3cb2..9688e9b9 100644 --- a/.github/workflows/dockerhub.yml +++ b/.github/workflows/dockerhub.yml @@ -43,7 +43,7 @@ jobs: with: context: ./telematic_system/telematic_cloud_messaging/ push: true - tags: usdotfhwastoldev/telematic_cloud_messaging:${{ github.ref_name }} + tags: usdotfhwastolcandidate/telematic_cloud_messaging:${{ github.ref_name }} build-args: | BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} @@ -72,7 +72,7 @@ jobs: with: context: ./telematic_system/telematic_units/carma_street_bridge/ push: true - tags: usdotfhwastoldev/carma_street_nats_bridge:${{ github.ref_name }} + tags: usdotfhwastolcandidate/carma_street_nats_bridge:${{ github.ref_name }} build-args: | BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} @@ -101,7 +101,7 @@ jobs: with: context: ./telematic_system/telematic_units/carma_vehicle_bridge/ push: true - tags: usdotfhwastoldev/carma_vehicle_nats_bridge:${{ github.ref_name }} + tags: usdotfhwastolcandidate/carma_vehicle_nats_bridge:${{ github.ref_name }} build-args: | BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} @@ -130,7 +130,7 @@ jobs: with: context: ./telematic_system/telematic_units/carma_cloud_bridge/ push: true - tags: usdotfhwastoldev/carma_cloud_nats_bridge:${{ github.ref_name }} + tags: usdotfhwastolcandidate/carma_cloud_nats_bridge:${{ github.ref_name }} build-args: | BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} @@ -159,7 +159,7 @@ jobs: with: context: ./telematic_system/telematic_historical_data_processing/ push: true - tags: usdotfhwastoldev/telematic_historical_data_processing:${{ github.ref_name }} + tags: usdotfhwastolcandidate/telematic_historical_data_processing:${{ github.ref_name }} build-args: | BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} @@ -188,7 +188,7 @@ jobs: with: context: ./telematic_system/telematic_apps/web_app/server push: true - tags: usdotfhwastoldev/telematic_web_server:${{ github.ref_name }} + tags: usdotfhwastolcandidate/telematic_web_server:${{ github.ref_name }} build-args: | BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} @@ -217,7 +217,7 @@ jobs: with: context: ./telematic_system/telematic_apps/web_app/client push: true - tags: usdotfhwastoldev/telematic_web_client:${{ github.ref_name }} + tags: usdotfhwastolcandidate/telematic_web_client:${{ github.ref_name }} build-args: | BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} @@ -246,7 +246,7 @@ jobs: with: context: ./telematic_system/telematic_apps/apache2 push: true - tags: usdotfhwastoldev/telematic_apache2:${{ github.ref_name }} + tags: usdotfhwastolcandidate/telematic_apache2:${{ github.ref_name }} build-args: | BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} @@ -275,7 +275,7 @@ jobs: with: context: ./telematic_system/telematic_apps/grafana push: true - tags: usdotfhwastoldev/telematic_grafana:${{ github.ref_name }} + tags: usdotfhwastolcandidate/telematic_grafana:${{ github.ref_name }} build-args: | BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} @@ -305,7 +305,7 @@ jobs: context: ./telematic_system/telematic_apps/apache2 file: ./telematic_system/telematic_apps/apache2/local.Dockerfile push: true - tags: usdotfhwastoldev/telematic_local_apache2:${{ github.ref_name }} + tags: usdotfhwastolcandidate/telematic_local_apache2:${{ github.ref_name }} build-args: | BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} From 57a961c7668bdce81cfa4d2e3dd197f47bd72a43 Mon Sep 17 00:00:00 2001 From: Saikrishna Bairamoni <84093461+SaikrishnaBairamoni@users.noreply.github.com> Date: Fri, 12 Jul 2024 15:27:10 -0400 Subject: [PATCH 4/5] update triggers --- .github/workflows/dockerhub.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dockerhub.yml b/.github/workflows/dockerhub.yml index 9688e9b9..60926d14 100644 --- a/.github/workflows/dockerhub.yml +++ b/.github/workflows/dockerhub.yml @@ -3,8 +3,8 @@ name: Docker Hub build on: push: branches: - - develop - - master + - "develop" + - "master" - "release/*" tags: - "carma-system-*" From f629d5d1cebf54a3cce4579f4ed9b9ee9b1572b5 Mon Sep 17 00:00:00 2001 From: Saikrishna Bairamoni <84093461+SaikrishnaBairamoni@users.noreply.github.com> Date: Fri, 12 Jul 2024 16:43:38 -0400 Subject: [PATCH 5/5] restructure to use reusable parameters --- .github/workflows/dockerhub.yml | 158 ++++++++++++-------------------- 1 file changed, 58 insertions(+), 100 deletions(-) diff --git a/.github/workflows/dockerhub.yml b/.github/workflows/dockerhub.yml index 60926d14..bf2099ec 100644 --- a/.github/workflows/dockerhub.yml +++ b/.github/workflows/dockerhub.yml @@ -16,21 +16,33 @@ jobs: docker_organization: ${{ steps.docker-org-and-tag.outputs.docker_organization }} docker_image_tag: ${{ steps.docker-org-and-tag.outputs.docker_image_tag }} steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 - id: docker-org-and-tag uses: usdot-fhwa-stol/actions/docker-org-and-tag@main + determine_docker_image_metadata: + runs-on: ubuntu-latest + outputs: + build_date: ${{ steps.build-metadata.outputs.build_date }} + vcs_ref: ${{ steps.build-metadata.outputs.vcs_ref }} + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Determine Build Metadata + id: build-metadata + uses: usdot-fhwa-stol/actions/docker-build-metadata@main + dockerhub-telematic-cloud-messaging: - needs: determine_docker_org_and_tag + needs: [determine_docker_org_and_tag, determine_docker_image_metadata] runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - - name: Get Docker Image Metadata - shell: bash - id: docker-image-metadata - run: | - echo build_date=$(date -u +”%Y-%m-%dT%H:%M:%SZ”) >> $GITHUB_OUTPUT - echo vcs_ref=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to DockerHub @@ -43,23 +55,17 @@ jobs: with: context: ./telematic_system/telematic_cloud_messaging/ push: true - tags: usdotfhwastolcandidate/telematic_cloud_messaging:${{ github.ref_name }} + tags: ${{ needs.determine_docker_org_and_tag.outputs.docker_organization }}/telematic_cloud_messaging:${{ needs.determine_docker_org_and_tag.outputs.docker_image_tag }} build-args: | - BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} - VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} + BUILD_DATE=${{ needs.determine_docker_image_metadata.outputs.build_date }} + VCS_REF=${{ needs.determine_docker_image_metadata.outputs.vcs_ref }} dockerhub-carma-streets-bridge: - needs: determine_docker_org_and_tag + needs: [determine_docker_org_and_tag, determine_docker_image_metadata] runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - - name: Get Docker Image Metadata - shell: bash - id: docker-image-metadata - run: | - echo build_date=$(date -u +”%Y-%m-%dT%H:%M:%SZ”) >> $GITHUB_OUTPUT - echo vcs_ref=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to DockerHub @@ -72,23 +78,17 @@ jobs: with: context: ./telematic_system/telematic_units/carma_street_bridge/ push: true - tags: usdotfhwastolcandidate/carma_street_nats_bridge:${{ github.ref_name }} + tags: ${{ needs.determine_docker_org_and_tag.outputs.docker_organization }}/carma_street_nats_bridge:${{ needs.determine_docker_org_and_tag.outputs.docker_image_tag }} build-args: | - BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} - VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} + BUILD_DATE=${{ needs.determine_docker_image_metadata.outputs.build_date }} + VCS_REF=${{ needs.determine_docker_image_metadata.outputs.vcs_ref }} dockerhub-carma-vehicle-bridge: - needs: determine_docker_org_and_tag + needs: [determine_docker_org_and_tag, determine_docker_image_metadata] runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - - name: Get Docker Image Metadata - shell: bash - id: docker-image-metadata - run: | - echo build_date=$(date -u +”%Y-%m-%dT%H:%M:%SZ”) >> $GITHUB_OUTPUT - echo vcs_ref=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to DockerHub @@ -101,23 +101,17 @@ jobs: with: context: ./telematic_system/telematic_units/carma_vehicle_bridge/ push: true - tags: usdotfhwastolcandidate/carma_vehicle_nats_bridge:${{ github.ref_name }} + tags: ${{ needs.determine_docker_org_and_tag.outputs.docker_organization }}/carma_vehicle_nats_bridge:${{ needs.determine_docker_org_and_tag.outputs.docker_image_tag }} build-args: | - BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} - VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} + BUILD_DATE=${{ needs.determine_docker_image_metadata.outputs.build_date }} + VCS_REF=${{ needs.determine_docker_image_metadata.outputs.vcs_ref }} dockerhub-carma-cloud-bridge: - needs: determine_docker_org_and_tag + needs: [determine_docker_org_and_tag, determine_docker_image_metadata] runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - - name: Get Docker Image Metadata - shell: bash - id: docker-image-metadata - run: | - echo build_date=$(date -u +”%Y-%m-%dT%H:%M:%SZ”) >> $GITHUB_OUTPUT - echo vcs_ref=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to DockerHub @@ -130,23 +124,17 @@ jobs: with: context: ./telematic_system/telematic_units/carma_cloud_bridge/ push: true - tags: usdotfhwastolcandidate/carma_cloud_nats_bridge:${{ github.ref_name }} + tags: ${{ needs.determine_docker_org_and_tag.outputs.docker_organization }}/carma_cloud_nats_bridge:${{ needs.determine_docker_org_and_tag.outputs.docker_image_tag }} build-args: | - BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} - VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} + BUILD_DATE=${{ needs.determine_docker_image_metadata.outputs.build_date }} + VCS_REF=${{ needs.determine_docker_image_metadata.outputs.vcs_ref }} dockerhub-telematic-historical-data-processing: - needs: determine_docker_org_and_tag + needs: [determine_docker_org_and_tag, determine_docker_image_metadata] runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - - name: Get Docker Image Metadata - shell: bash - id: docker-image-metadata - run: | - echo build_date=$(date -u +”%Y-%m-%dT%H:%M:%SZ”) >> $GITHUB_OUTPUT - echo vcs_ref=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to DockerHub @@ -159,23 +147,17 @@ jobs: with: context: ./telematic_system/telematic_historical_data_processing/ push: true - tags: usdotfhwastolcandidate/telematic_historical_data_processing:${{ github.ref_name }} + tags: ${{ needs.determine_docker_org_and_tag.outputs.docker_organization }}/telematic_historical_data_processing:${{ needs.determine_docker_org_and_tag.outputs.docker_image_tag }} build-args: | - BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} - VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} + BUILD_DATE=${{ needs.determine_docker_image_metadata.outputs.build_date }} + VCS_REF=${{ needs.determine_docker_image_metadata.outputs.vcs_ref }} dockerhub-telematic-web-server: - needs: determine_docker_org_and_tag + needs: [determine_docker_org_and_tag, determine_docker_image_metadata] runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - - name: Get Docker Image Metadata - shell: bash - id: docker-image-metadata - run: | - echo build_date=$(date -u +”%Y-%m-%dT%H:%M:%SZ”) >> $GITHUB_OUTPUT - echo vcs_ref=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to DockerHub @@ -188,23 +170,17 @@ jobs: with: context: ./telematic_system/telematic_apps/web_app/server push: true - tags: usdotfhwastolcandidate/telematic_web_server:${{ github.ref_name }} + tags: ${{ needs.determine_docker_org_and_tag.outputs.docker_organization }}/telematic_web_server:${{ needs.determine_docker_org_and_tag.outputs.docker_image_tag }} build-args: | - BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} - VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} + BUILD_DATE=${{ needs.determine_docker_image_metadata.outputs.build_date }} + VCS_REF=${{ needs.determine_docker_image_metadata.outputs.vcs_ref }} dockerhub-telematic-web-client: - needs: determine_docker_org_and_tag + needs: [determine_docker_org_and_tag, determine_docker_image_metadata] runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - - name: Get Docker Image Metadata - shell: bash - id: docker-image-metadata - run: | - echo build_date=$(date -u +”%Y-%m-%dT%H:%M:%SZ”) >> $GITHUB_OUTPUT - echo vcs_ref=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to DockerHub @@ -217,23 +193,17 @@ jobs: with: context: ./telematic_system/telematic_apps/web_app/client push: true - tags: usdotfhwastolcandidate/telematic_web_client:${{ github.ref_name }} + tags: ${{ needs.determine_docker_org_and_tag.outputs.docker_organization }}/telematic_web_client:${{ needs.determine_docker_org_and_tag.outputs.docker_image_tag }} build-args: | - BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} - VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} + BUILD_DATE=${{ needs.determine_docker_image_metadata.outputs.build_date }} + VCS_REF=${{ needs.determine_docker_image_metadata.outputs.vcs_ref }} dockerhub-telematic-apache2: - needs: determine_docker_org_and_tag + needs: [determine_docker_org_and_tag, determine_docker_image_metadata] runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - - name: Get Docker Image Metadata - shell: bash - id: docker-image-metadata - run: | - echo build_date=$(date -u +”%Y-%m-%dT%H:%M:%SZ”) >> $GITHUB_OUTPUT - echo vcs_ref=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to DockerHub @@ -246,23 +216,17 @@ jobs: with: context: ./telematic_system/telematic_apps/apache2 push: true - tags: usdotfhwastolcandidate/telematic_apache2:${{ github.ref_name }} + tags: ${{ needs.determine_docker_org_and_tag.outputs.docker_organization }}/telematic_apache2:${{ needs.determine_docker_org_and_tag.outputs.docker_image_tag }} build-args: | - BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} - VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} + BUILD_DATE=${{ needs.determine_docker_image_metadata.outputs.build_date }} + VCS_REF=${{ needs.determine_docker_image_metadata.outputs.vcs_ref }} dockerhub-telematic-grafana: - needs: determine_docker_org_and_tag + needs: [determine_docker_org_and_tag, determine_docker_image_metadata] runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - - name: Get Docker Image Metadata - shell: bash - id: docker-image-metadata - run: | - echo build_date=$(date -u +”%Y-%m-%dT%H:%M:%SZ”) >> $GITHUB_OUTPUT - echo vcs_ref=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to DockerHub @@ -275,23 +239,17 @@ jobs: with: context: ./telematic_system/telematic_apps/grafana push: true - tags: usdotfhwastolcandidate/telematic_grafana:${{ github.ref_name }} + tags: ${{ needs.determine_docker_org_and_tag.outputs.docker_organization }}/telematic_grafana:${{ needs.determine_docker_org_and_tag.outputs.docker_image_tag }} build-args: | - BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} - VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} + BUILD_DATE=${{ needs.determine_docker_image_metadata.outputs.build_date }} + VCS_REF=${{ needs.determine_docker_image_metadata.outputs.vcs_ref }} dockerhub-telematic-local-apache2: - needs: determine_docker_org_and_tag + needs: [determine_docker_org_and_tag, determine_docker_image_metadata] runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - - name: Get Docker Image Metadata - shell: bash - id: docker-image-metadata - run: | - echo build_date=$(date -u +”%Y-%m-%dT%H:%M:%SZ”) >> $GITHUB_OUTPUT - echo vcs_ref=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to DockerHub @@ -305,7 +263,7 @@ jobs: context: ./telematic_system/telematic_apps/apache2 file: ./telematic_system/telematic_apps/apache2/local.Dockerfile push: true - tags: usdotfhwastolcandidate/telematic_local_apache2:${{ github.ref_name }} + tags: ${{ needs.determine_docker_org_and_tag.outputs.docker_organization }}/telematic_local_apache2:${{ needs.determine_docker_org_and_tag.outputs.docker_image_tag }} build-args: | - BUILD_DATE=${{ steps.docker-image-metadata.outputs.build_date }} - VCS_REF=${{ steps.docker-image-metadata.outputs.vcs_ref }} + BUILD_DATE=${{ needs.determine_docker_image_metadata.outputs.build_date }} + VCS_REF=${{ needs.determine_docker_image_metadata.outputs.vcs_ref }} \ No newline at end of file