Skip to content

Commit

Permalink
ci: extract parts from workflows into actions
Browse files Browse the repository at this point in the history
Signed-off-by: Jérémie Drouet <jeremie.drouet@gmail.com>
  • Loading branch information
jdrouet committed Jun 27, 2024
1 parent 496641d commit de5a530
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 56 deletions.
14 changes: 14 additions & 0 deletions .github/actions/download-binaries/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: download-binaries
description: download the binaries that were previously built
runs:
using: "composite"
steps:
- uses: actions/download-artifact@v4
with:
name: binary-windows
- uses: actions/download-artifact@v4
with:
name: binary-darwin
- uses: actions/download-artifact@v4
with:
name: binary-linux
32 changes: 32 additions & 0 deletions .github/actions/persist-metrics/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: persist-metrics
description: save binary sizes with git-metrics
inputs:
push:
description: "Should we push metrics"
required: true
default: "false"
runs:
using: "composite"
steps:
- name: set git user
uses: ./.github/actions/git-user
- name: make git-metrics executable
shell: bash
run: chmod +x ./git-metrics_linux-x86_64

- name: pull metrics
shell: bash
run: ./git-metrics_linux-x86_64 --backend command pull
- name: set metrics
shell: bash
run: |
./git-metrics_linux-x86_64 add binary-size --tag "build.target: x86_64-pc-windows-msvc" --tag "platform.os: windows" --tag "platform.arch: x86_64" --tag "unit: byte" $(stat --printf="%s" ./git-metrics_win-x86_64.exe)
./git-metrics_linux-x86_64 add binary-size --tag "build.target: aarch64-pc-windows-msvc" --tag "platform.os: windows" --tag "platform.arch: aarch64" --tag "unit: byte" $(stat --printf="%s" ./git-metrics_win-aarch64.exe)
./git-metrics_linux-x86_64 add binary-size --tag "build.target: x86_64-apple-darwin" --tag "platform.os: macos" --tag "platform.arch: x86_64" --tag "unit: byte" $(stat --printf="%s" ./git-metrics_darwin-x86_64)
./git-metrics_linux-x86_64 add binary-size --tag "build.target: aarch64-apple-darwin" --tag "platform.os: macos" --tag "platform.arch: aarch64" --tag "unit: byte" $(stat --printf="%s" ./git-metrics_darwin-aarch64)
./git-metrics_linux-x86_64 add binary-size --tag "build.target: x86_64-unknown-linux-gnu" --tag "platform.os: linux" --tag "platform.arch: x86_64" --tag "unit: byte" $(stat --printf="%s" ./git-metrics_linux-x86_64)
./git-metrics_linux-x86_64 add binary-size --tag "build.target: aarch64-unknown-linux-gnu" --tag "platform.os: linux" --tag "platform.arch: aarch64" --tag "unit: byte" $(stat --printf="%s" ./git-metrics_linux-aarch64)
- name: push metrics
if: ${{ inputs.push == 'true' }}
shell: bash
run: ./git-metrics_linux-x86_64 --backend command push
28 changes: 5 additions & 23 deletions .github/workflows/pull-request-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,30 +23,12 @@ jobs:
with:
fetch-depth: 0

- uses: actions/download-artifact@v4
- name: download binaries
uses: ./.github/actions/download-binaries
- name: persist metrics
uses: ./.github/actions/persist metrics
with:
name: binary-windows
- uses: actions/download-artifact@v4
with:
name: binary-darwin
- uses: actions/download-artifact@v4
with:
name: binary-linux

- name: set git user
uses: ./.github/actions/git-user
- name: make git-metrics executable
run: chmod +x ./git-metrics_linux-x86_64

- name: publish metrics
run: |
./git-metrics_linux-x86_64 --backend command pull
./git-metrics_linux-x86_64 add binary-size --tag "build.target: x86_64-pc-windows-msvc" --tag "platform.os: windows" --tag "platform.arch: x86_64" --tag "unit: byte" $(stat --printf="%s" ./git-metrics_win-x86_64.exe)
./git-metrics_linux-x86_64 add binary-size --tag "build.target: aarch64-pc-windows-msvc" --tag "platform.os: windows" --tag "platform.arch: aarch64" --tag "unit: byte" $(stat --printf="%s" ./git-metrics_win-aarch64.exe)
./git-metrics_linux-x86_64 add binary-size --tag "build.target: x86_64-apple-darwin" --tag "platform.os: macos" --tag "platform.arch: x86_64" --tag "unit: byte" $(stat --printf="%s" ./git-metrics_darwin-x86_64)
./git-metrics_linux-x86_64 add binary-size --tag "build.target: aarch64-apple-darwin" --tag "platform.os: macos" --tag "platform.arch: aarch64" --tag "unit: byte" $(stat --printf="%s" ./git-metrics_darwin-aarch64)
./git-metrics_linux-x86_64 add binary-size --tag "build.target: x86_64-unknown-linux-gnu" --tag "platform.os: linux" --tag "platform.arch: x86_64" --tag "unit: byte" $(stat --printf="%s" ./git-metrics_linux-x86_64)
./git-metrics_linux-x86_64 add binary-size --tag "build.target: aarch64-unknown-linux-gnu" --tag "platform.os: linux" --tag "platform.arch: aarch64" --tag "unit: byte" $(stat --printf="%s" ./git-metrics_linux-aarch64)
push: "false"

- name: output git-metrics
id: diff
Expand Down
41 changes: 8 additions & 33 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,31 +39,12 @@ jobs:
with:
fetch-depth: 0

- uses: actions/download-artifact@v4
- name: download binaries
uses: ./.github/actions/download-binaries
- name: persist metrics
uses: ./.github/actions/persist-metrics
with:
name: binary-windows
- uses: actions/download-artifact@v4
with:
name: binary-darwin
- uses: actions/download-artifact@v4
with:
name: binary-linux

- name: set git user
uses: ./.github/actions/git-user
- name: make git-metrics executable
run: chmod +x ./git-metrics_linux-x86_64

- name: publish metrics
run: |
./git-metrics_linux-x86_64 --backend command pull
./git-metrics_linux-x86_64 add binary-size --tag "build.target: x86_64-pc-windows-msvc" --tag "platform.os: windows" --tag "platform.arch: x86_64" --tag "unit: byte" $(stat --printf="%s" ./git-metrics_win-x86_64.exe)
./git-metrics_linux-x86_64 add binary-size --tag "build.target: aarch64-pc-windows-msvc" --tag "platform.os: windows" --tag "platform.arch: aarch64" --tag "unit: byte" $(stat --printf="%s" ./git-metrics_win-aarch64.exe)
./git-metrics_linux-x86_64 add binary-size --tag "build.target: x86_64-apple-darwin" --tag "platform.os: macos" --tag "platform.arch: x86_64" --tag "unit: byte" $(stat --printf="%s" ./git-metrics_darwin-x86_64)
./git-metrics_linux-x86_64 add binary-size --tag "build.target: aarch64-apple-darwin" --tag "platform.os: macos" --tag "platform.arch: aarch64" --tag "unit: byte" $(stat --printf="%s" ./git-metrics_darwin-aarch64)
./git-metrics_linux-x86_64 add binary-size --tag "build.target: x86_64-unknown-linux-gnu" --tag "platform.os: linux" --tag "platform.arch: x86_64" --tag "unit: byte" $(stat --printf="%s" ./git-metrics_linux-x86_64)
./git-metrics_linux-x86_64 add binary-size --tag "build.target: aarch64-unknown-linux-gnu" --tag "platform.os: linux" --tag "platform.arch: aarch64" --tag "unit: byte" $(stat --printf="%s" ./git-metrics_linux-aarch64)
./git-metrics_linux-x86_64 --backend command push
push: "true"

publish:
name: publish
Expand All @@ -72,15 +53,9 @@ jobs:
needs:
- execute-build
steps:
- uses: actions/download-artifact@v4
with:
name: binary-windows
- uses: actions/download-artifact@v4
with:
name: binary-darwin
- uses: actions/download-artifact@v4
with:
name: binary-linux
- name: download binaries
uses: ./.github/actions/download-binaries

- name: get release id from tag
id: release_id
run: |
Expand Down

0 comments on commit de5a530

Please sign in to comment.