Skip to content

Bump sysinfo from 0.33.1 to 0.35.1 #11424

Bump sysinfo from 0.33.1 to 0.35.1

Bump sysinfo from 0.33.1 to 0.35.1 #11424

Workflow file for this run

name: Build
on:
push:
branches:
- main
- release-*
tags:
# YYYYMMDD
- "20[0-9][0-9][0-1][0-9][0-3][0-9]*"
schedule:
- cron: "0 0 * * 1"
pull_request:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
RUST_LOG: info,libp2p=off,node=error
CARGO_TERM_COLOR: always
DOCKER_PLATFORMS: ${{ github.event_name == 'pull_request' && 'linux/amd64' || 'linux/amd64,linux/arm64' }}
jobs:
build-x86:
name: Build ${{ matrix.binary }}
runs-on: ubuntu-latest
strategy:
matrix:
include:
- binary: sequencer
shared-key: postgres
save-cache: false
- binary: other
shared-key: postgres
save-cache: true
- binary: sequencer-sqlite
# uses it's own lock file
shared-key: sequencer-embedded
save-cache: true
- binary: espresso-dev-node
# uses differend features testing,emdbedded-db
shared-key: espresso-dev-node
save-cache: true
steps:
- uses: rui314/setup-mold@v1
- name: Checkout Repository
uses: actions/checkout@v4
- name: Enable Rust Caching
uses: Swatinem/rust-cache@v2
with:
prefix-key: v3-rust
shared-key: ${{ matrix.shared-key }}
save-if: >
${{ matrix.save-cache && (
github.ref == 'refs/heads/main'
|| startsWith(github.ref, 'refs/heads/release-')
|| github.event_name == 'workflow_dispatch' ) }}
cache-provider: github
- name: Build ${{ matrix.binary }}
run: |
scripts/ci-build-binary ${{ matrix.binary }}
- name: Move binaries to upload directory
shell: bash
run: |
mkdir -p upload
for item in target/release/*; do
if [[ -f "$item" && -x "$item" ]]; then
mv -v "$item" ./upload
continue
fi
done
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: x86-${{ matrix.binary }}
path: |
upload/${{ matrix.binary == 'other' && '*' || matrix.binary }}
build-arm:
name: Build ${{ matrix.binary }}
runs-on: buildjet-8vcpu-ubuntu-2204-arm
if: ${{ github.event_name != 'pull_request' }}
strategy:
matrix:
include:
- binary: sequencer
shared-key: postgres
save-cache: false
- binary: other
shared-key: postgres
save-cache: true
- binary: sequencer-sqlite
# uses it's own lock file
shared-key: sequencer-embedded
save-cache: true
- binary: espresso-dev-node
# uses differend features testing,emdbedded-db
shared-key: espresso-dev-node
save-cache: true
steps:
- uses: rui314/setup-mold@v1
- name: Checkout Repository
uses: actions/checkout@v4
- name: Enable Rust Caching
uses: Swatinem/rust-cache@v2
with:
prefix-key: v3-rust
shared-key: ${{ matrix.shared-key }}
save-if: >
${{ matrix.save-cache && (
github.ref == 'refs/heads/main'
|| startsWith(github.ref, 'refs/heads/release-')
|| github.event_name == 'workflow_dispatch' ) }}
cache-provider: buildjet
- name: Build ${{ matrix.binary }}
run: |
scripts/ci-build-binary ${{ matrix.binary }}
- name: Move binaries to upload directory
run: |
mkdir -p upload
for item in target/release/*; do
if [[ -f "$item" && -x "$item" ]]; then
mv -v "$item" ./upload
continue
fi
done
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: arm-${{ matrix.binary }}
path: |
upload/${{ matrix.binary == 'other' && '*' || matrix.binary }}
build-dockers:
runs-on: ubuntu-latest
# This is non-deterministic, a limitation of GHA. We but we only need the
# tag like (:main) at the end which is the same for each matrix build.
outputs:
tags: ${{ steps.metadata.outputs.tags }}
strategy:
matrix:
service:
- bridge
- builder
- cdn-broker
- cdn-marshal
- cdn-whitelist
- deploy
- espresso-dev-node
- nasty-client
- node-validator
- orchestrator
- prover-service
- sequencer
- staking-cli
- state-relay-server
- submit-transactions
needs: [build-x86, build-arm]
# if build_arm is skipped, run this job anyway
if: ${{ !(failure() || cancelled()) }}
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Download executables AMD
uses: actions/download-artifact@v4
with:
pattern: x86-*
path: target/amd64/release
merge-multiple: true
- name: Download executables ARM
if: github.event_name != 'pull_request'
uses: actions/download-artifact@v4
with:
pattern: arm-*
path: target/arm64/release
merge-multiple: true
- name: Setup QEMU
if: ${{ github.event_name != 'pull_request' }}
uses: docker/setup-qemu-action@v3
with:
# Temporary fix (See https://github.com/docker/setup-qemu-action/issues/198)
image: tonistiigi/binfmt:qemu-v7.0.0-28
- name: Setup Docker BuildKit (buildx)
uses: docker/setup-buildx-action@v3
- name: Login to Github Container Repo
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Generate ${{ matrix.service }} docker metadata
uses: docker/metadata-action@v5
id: metadata
with:
images: ghcr.io/espressosystems/espresso-sequencer/${{ matrix.service }}
# There is no straightforward way to import a multiplatform image from a tar file with
# docker.
# - On PRs: build only amd64 and upload as artifact to later run the demo test.
# - On main: push to the registry and fetch from the registry to run the demo test.
- name: Build and push ${{ matrix.service }} docker image (non-PR)
if: ${{ github.event_name != 'pull_request' }}
uses: docker/build-push-action@v6
with:
context: .
file: ./docker/${{ matrix.service }}.Dockerfile
platforms: ${{ env.DOCKER_PLATFORMS }}
tags: ${{ steps.metadata.outputs.tags }}
labels: ${{ steps.metadata.outputs.labels }}
outputs: type=registry
- name: Build and export ${{ matrix.service }} docker image (PR only)
if: ${{ github.event_name == 'pull_request' }}
uses: docker/build-push-action@v6
with:
context: .
file: ./docker/${{ matrix.service }}.Dockerfile
tags: ${{ steps.metadata.outputs.tags }}
labels: ${{ steps.metadata.outputs.labels }}
outputs: type=docker,dest=${{ runner.temp }}/${{ matrix.service }}.tar
- name: Upload artifact (PR only)
if: ${{ github.event_name == 'pull_request' }}
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.service }}-docker-image
path: ${{ runner.temp }}/${{ matrix.service }}.tar
if-no-files-found: error
test-demo:
# if build_arm is skipped, run this job anyway
if: ${{ !(failure() || cancelled()) }}
runs-on: ubuntu-latest
needs: [build-dockers]
steps:
- uses: taiki-e/install-action@just
- name: Checkout Repository
uses: actions/checkout@v4
- name: Download artifacts (PR only)
if: ${{ github.event_name == 'pull_request' }}
uses: actions/download-artifact@v4
with:
path: ${{ runner.temp }}/docker-images
pattern: "*-docker-image"
- name: Load docker images (PR only)
if: ${{ github.event_name == 'pull_request' }}
run: |
# load all *.tar files in the temp directory, the layout should
# be ${{ runner.temp }}/docker-images/<artifact-name>/<service>.tar
for file in $(find ${{ runner.temp }}/docker-images -name "*.tar"); do
docker load --input $file
done
- name: Match the docker image tag built or pushed to the registry
run: |
DOCKER_TAG=$(echo ${{ needs.build-dockers.outputs.tags }} | sed 's/.*://')
echo DOCKER_TAG=$DOCKER_TAG >> $GITHUB_ENV
- name: Pull remaining docker images
run: |
docker compose pull --policy missing
- name: Test docker demo
run: |
just demo --pull never &
set -o pipefail
timeout -v 600 scripts/smoke-test-demo | sed -e 's/^/smoke-test: /;'