baseline http vs conductor overhead benchmark #1711
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: release conductor | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
release: | |
types: [created] | |
jobs: | |
dockerize: | |
name: dockerize | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: checkout | |
uses: actions/checkout@v4 | |
- name: configure eqemu | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: "linux/arm64,linux/amd64" | |
- name: configure docker buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: login to docker registry | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: build docker images | |
timeout-minutes: 20 | |
id: docker-bake | |
uses: docker/bake-action@v4 | |
env: | |
DOCKER_REGISTRY: ghcr.io/${{ github.repository }}/ | |
COMMIT_SHA: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }} | |
PUBLISH_VERSION: ${{ github.event_name == 'release' && github.event.release.tag_name || '' }} | |
PUBLISH_LATEST: ${{ github.event_name == 'release' && !github.event.release.prerelease && '1' || '' }} | |
with: | |
workdir: . | |
provenance: false | |
push: true | |
files: ./bin/conductor/docker/bake.hcl | |
targets: build | |
set: | | |
*.cache-from=type=gha,scope=build | |
*.cache-to=type=gha,scope=build,mode=max | |
- name: docker details pr comment | |
uses: marocchino/sticky-pull-request-comment@v2 | |
if: ${{ github.event_name == 'pull_request' }} | |
with: | |
message: | | |
🐋 This PR was built and pushed to the following [Docker images](https://github.com/the-guild-org/conductor/pkgs/container/conductor%2Fconductor): | |
<details> | |
<summary>Docker Bake metadata</summary> | |
```json | |
${{ steps.docker-bake.outputs.metadata }} | |
``` | |
</details> | |
- name: update release body | |
uses: softprops/action-gh-release@v2 | |
if: ${{ github.event_name == 'release' }} | |
with: | |
append_body: true | |
body: | | |
🐋 This release is available as Docker image, using the following Docker tag: | |
``` | |
ghcr.io/the-guild-org/conductor/conductor:${{ github.event.release.tag_name }} | |
``` | |
config-schema: | |
name: config-schema | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: checkout | |
uses: actions/checkout@v4 | |
- uses: actions/upload-artifact@v4 | |
if: ${{ github.event_name == 'pull_request' || github.event_name == 'push' }} | |
name: upload artifact | |
with: | |
name: conductor.schema.json | |
path: libs/config/conductor.schema.json | |
- name: upload to release | |
if: ${{ github.event_name == 'release' }} | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: libs/config/conductor.schema.json | |
asset_name: conductor.schema.json | |
tag: ${{ github.ref }} | |
overwrite: true | |
binary: | |
name: compile binary (${{ matrix.platform.target }}) | |
strategy: | |
matrix: | |
platform: | |
- os: ubuntu-22.04 | |
target: x86_64-unknown-linux-gnu | |
- os: ubuntu-22.04 | |
target: aarch64-unknown-linux-gnu | |
runs-on: ${{ matrix.platform.os }} | |
steps: | |
- name: checkout | |
uses: actions/checkout@v4 | |
- name: build binary | |
uses: houseabsolute/actions-rust-cross@v0 | |
with: | |
command: build | |
target: ${{ matrix.platform.target }} | |
args: "--locked --release" | |
- uses: actions/upload-artifact@v4 | |
if: ${{ github.event_name == 'pull_request' || github.event_name == 'push' }} | |
name: upload binary artifact | |
with: | |
name: conductor-${{ matrix.platform.target }} | |
path: target/${{ matrix.platform.target }}/release/conductor | |
- name: upload binaries to release | |
if: ${{ github.event_name == 'release' }} | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: target/${{ matrix.platform.target }}/release/conductor | |
asset_name: conductor-${{ matrix.platform.target }} | |
tag: ${{ github.ref }} | |
overwrite: true |