Bump sysinfo from 0.33.1 to 0.35.1 #11424
Workflow file for this run
This file contains hidden or 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: 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: /;' |