[llvm-branch-commits] [llvm] [Github] Add new workflow to build metrics container (PR #117462)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Sat Nov 23 21:44:11 PST 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-github-workflow
Author: Aiden Grossman (boomanaiden154)
<details>
<summary>Changes</summary>
This patch adds a new Github Actions workflow to build the metrics container and push it to the Github Container Registry.
---
Full diff: https://github.com/llvm/llvm-project/pull/117462.diff
1 Files Affected:
- (added) .github/workflows/build-metrics-container.yml (+78)
``````````diff
diff --git a/.github/workflows/build-metrics-container.yml b/.github/workflows/build-metrics-container.yml
new file mode 100644
index 00000000000000..2b73dc87ea9f82
--- /dev/null
+++ b/.github/workflows/build-metrics-container.yml
@@ -0,0 +1,78 @@
+name: Build Metrics Container
+
+permissions:
+ contents: read
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - .github/workflows/build-metrics-container.yml
+ - '.ci/metrics/**'
+ pull_request:
+ branches:
+ - main
+ paths:
+ - .github/workflows/build-metrics-container.yml
+ - '.ci/metrics/**'
+
+jobs:
+ build-metrics-container:
+ if: github.repository_owner == 'llvm'
+ runs-on: ubuntu-latest
+ outputs:
+ container-name: ${{ steps.vars.outputs.container-name }}
+ container-name-tag: ${{ steps.vars.outputs.container-name-tag }}
+ container-filename: ${{ steps.vars.outputs.container-filename }}
+ steps:
+ - name: Checkout LLVM
+ uses: actions/checkout at v4
+ with:
+ sparse-checkout: .ci/metrics/
+ - name: Write Variables
+ id: vars
+ run: |
+ tag=`date +%s`
+ container_name="ghcr.io/$GITHUB_REPOSITORY_OWNER/metrics"
+ echo "container-name=$container-name" >> $GITHUB_OUTPUT
+ echo "container-name-tag=$container_name:$tag" >> $GITHUB_OUTPUT
+ echo "container-filename=$(echo $container_name:$tag | sed -e 's/\//-/g' -e 's/:/-/g').tar" >> $GITHUB_OUTPUT
+ - name: Build Container
+ working-directory: ./.ci/metrics
+ run: |
+ podman build -t ${{ steps.vars.outputs.container-name-tag }} -f Dockerfile .
+ # Save the container so we have it in case the push fails. This also
+ # allows us to separate the push step into a different job so we can
+ # maintain minimal permissions while building the container.
+ - name: Save Container Image
+ run: |
+ podman save ${{ steps.vars.outputs.container-name-tag }} > ${{ steps.vars.outputs.container-filename }}
+ - name: Upload Container Image
+ uses: actions/upload-artifact at v4
+ with:
+ name: container
+ path: ${{ steps.vars.outputs.container-filename }}
+ retention-days: 14
+
+ push-metrics-container:
+ if: github.event_name == 'push'
+ needs:
+ - build-metrics-container
+ permissions:
+ packages: write
+ runs-on: ubuntu-24.04
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ steps:
+ - name: Download Container
+ uses: actions/download-artifact at v4
+ with:
+ name: container
+ - name: Push Container
+ run: |
+ podman load -i ${{ needs.build-metrics-container.outptus.container-filename }}
+ podman tag ${{ needs.build-metrics-container.outputs.container-name-tag }} ${{ sneeds.build-metrics-container.outputs.container-name }}:latest
+ podman login -u ${{ github.actor }} -p $GITHUB_TOKEN ghcr.io
+ podman push ${{ needs.build-metrics-container.outputs.container-name-tag }}
+ podman push ${{ needs.build-metrics-container.outputs.container-name }}:latest
``````````
</details>
https://github.com/llvm/llvm-project/pull/117462
More information about the llvm-branch-commits
mailing list