Skip to content

fix(prt): suppress spurious context canceled errors during shutdown #3207

fix(prt): suppress spurious context canceled errors during shutdown

fix(prt): suppress spurious context canceled errors during shutdown #3207

Workflow file for this run

# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
name: Build and test
on: [push]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
GHCR_REGISTRY: ghcr.io
CI_TAG: ci-${{ github.sha }}
jobs:
basic-checks:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0
- name: Check conventional commit
uses: cocogitto/cocogitto-action@v3
id: conventional_commit_check
with:
check-latest-tag-only: true
- name: Check license header
uses: viperproject/check-license-header@v2
with:
path: ./
config: .github/license-check/config.json
- name: Lint Markdown docs
uses: DavidAnson/markdownlint-cli2-action@v16
with:
globs: |
*.md
docs/*.md
build:
runs-on: ubuntu-24.04
permissions:
id-token: write
contents: read
packages: write
steps:
- name: Checkout source code
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup variables
run: echo ROLLUPS_NODE_VERSION=`make version` >> $GITHUB_ENV
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ${{ env.GHCR_REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Depot CLI
uses: depot/setup-action@v1
- name: Build rollups-node image (amd64)
uses: depot/build-push-action@v1
with:
file: Dockerfile
context: .
platforms: linux/amd64
tags: ${{ env.GHCR_REGISTRY }}/${{ github.repository_owner }}/rollups-node:devel-amd64-${{ env.CI_TAG }}
push: true
project: ${{ vars.DEPOT_PROJECT }}
token: ${{ secrets.DEPOT_TOKEN }}
- name: Build rollups-node image (arm64)
uses: depot/build-push-action@v1
with:
file: Dockerfile
context: .
platforms: linux/arm64
tags: ${{ env.GHCR_REGISTRY }}/${{ github.repository_owner }}/rollups-node:devel-arm64-${{ env.CI_TAG }}
push: true
project: ${{ vars.DEPOT_PROJECT }}
token: ${{ secrets.DEPOT_TOKEN }}
- name: Build tester image
uses: depot/build-push-action@v1
with:
file: Dockerfile
context: .
target: tester
platforms: linux/amd64
tags: ${{ env.GHCR_REGISTRY }}/${{ github.repository_owner }}/rollups-node:tester-${{ env.CI_TAG }}
push: true
project: ${{ vars.DEPOT_PROJECT }}
token: ${{ secrets.DEPOT_TOKEN }}
- name: Build devnet image
uses: depot/build-push-action@v1
with:
file: test/devnet/Dockerfile
context: .
platforms: linux/amd64
tags: ${{ env.GHCR_REGISTRY }}/${{ github.repository_owner }}/rollups-node-devnet:${{ env.CI_TAG }}
push: true
project: ${{ vars.DEPOT_PROJECT }}
token: ${{ secrets.DEPOT_TOKEN }}
- name: Build debian package (amd64)
uses: depot/build-push-action@v1
with:
file: Dockerfile
context: .
target: debian-packager
platforms: linux/amd64
tags: ${{ github.repository_owner }}/rollups-node:debian-packager-amd64
push: false
load: true
project: ${{ vars.DEPOT_PROJECT }}
token: ${{ secrets.DEPOT_TOKEN }}
- name: Export deb package artifact (amd64)
run: make copy-debian-package BUILD_PLATFORM=linux/amd64 DEB_ARCH=amd64 DEB_PACKAGER_IMG=${{ github.repository_owner }}/rollups-node:debian-packager-amd64
- name: Build debian package (arm64)
uses: depot/build-push-action@v1
with:
file: Dockerfile
context: .
target: debian-packager
platforms: linux/arm64
tags: ${{ github.repository_owner }}/rollups-node:debian-packager-arm64
push: false
load: true
project: ${{ vars.DEPOT_PROJECT }}
token: ${{ secrets.DEPOT_TOKEN }}
- name: Export deb package artifact (arm64)
run: make copy-debian-package BUILD_PLATFORM=linux/arm64 DEB_ARCH=arm64 DEB_PACKAGER_IMG=${{ github.repository_owner }}/rollups-node:debian-packager-arm64
- name: Upload deb artifacts
uses: actions/upload-artifact@v4
with:
name: artifacts
path: |
cartesi-rollups-node-v${{ env.ROLLUPS_NODE_VERSION }}_amd64.deb
cartesi-rollups-node-v${{ env.ROLLUPS_NODE_VERSION }}_arm64.deb
lint:
# disabled for now
if: false
runs-on: ubuntu-24.04
needs: [build]
permissions:
contents: read
packages: read
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ${{ env.GHCR_REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Pull and tag tester image
run: |
docker pull ${{ env.GHCR_REGISTRY }}/${{ github.repository_owner }}/rollups-node:tester-${{ env.CI_TAG }}
docker tag ${{ env.GHCR_REGISTRY }}/${{ github.repository_owner }}/rollups-node:tester-${{ env.CI_TAG }} \
cartesi/rollups-node:tester
- name: Run linting
run: make lint-with-docker
unit-test:
runs-on: ubuntu-24.04
needs: [build]
permissions:
contents: read
packages: read
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ${{ env.GHCR_REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Pull and tag CI images
run: |
docker pull ${{ env.GHCR_REGISTRY }}/${{ github.repository_owner }}/rollups-node:tester-${{ env.CI_TAG }}
docker pull ${{ env.GHCR_REGISTRY }}/${{ github.repository_owner }}/rollups-node:devel-amd64-${{ env.CI_TAG }}
docker pull ${{ env.GHCR_REGISTRY }}/${{ github.repository_owner }}/rollups-node-devnet:${{ env.CI_TAG }}
docker tag ${{ env.GHCR_REGISTRY }}/${{ github.repository_owner }}/rollups-node:tester-${{ env.CI_TAG }} \
cartesi/rollups-node:tester
docker tag ${{ env.GHCR_REGISTRY }}/${{ github.repository_owner }}/rollups-node:devel-amd64-${{ env.CI_TAG }} \
cartesi/rollups-node:devel
docker tag ${{ env.GHCR_REGISTRY }}/${{ github.repository_owner }}/rollups-node-devnet:${{ env.CI_TAG }} \
cartesi/rollups-node-devnet:devel
- name: Cache test machine images
uses: actions/cache@v4
with:
path: test/downloads
key: test-deps-${{ hashFiles('test/dependencies.sha256') }}
- name: Download test dependencies
run: make download-test-dependencies
- name: Run unit tests
run: make unit-test-with-compose
integration-test:
runs-on: ubuntu-24.04
needs: [build]
timeout-minutes: 60
permissions:
contents: read
packages: read
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ${{ env.GHCR_REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Pull and tag CI images
run: |
docker pull ${{ env.GHCR_REGISTRY }}/${{ github.repository_owner }}/rollups-node:tester-${{ env.CI_TAG }}
docker pull ${{ env.GHCR_REGISTRY }}/${{ github.repository_owner }}/rollups-node:devel-amd64-${{ env.CI_TAG }}
docker pull ${{ env.GHCR_REGISTRY }}/${{ github.repository_owner }}/rollups-node-devnet:${{ env.CI_TAG }}
docker tag ${{ env.GHCR_REGISTRY }}/${{ github.repository_owner }}/rollups-node:tester-${{ env.CI_TAG }} \
cartesi/rollups-node:tester
docker tag ${{ env.GHCR_REGISTRY }}/${{ github.repository_owner }}/rollups-node:devel-amd64-${{ env.CI_TAG }} \
cartesi/rollups-node:devel
docker tag ${{ env.GHCR_REGISTRY }}/${{ github.repository_owner }}/rollups-node-devnet:${{ env.CI_TAG }} \
cartesi/rollups-node-devnet:devel
- name: Cache test machine images
uses: actions/cache@v4
with:
path: test/downloads
key: test-deps-${{ hashFiles('test/dependencies.sha256') }}
- name: Download test dependencies
run: make download-test-dependencies
- name: Run integration tests
run: make integration-test-with-compose
- name: Upload integration test logs
if: always()
uses: actions/upload-artifact@v4
with:
name: integration-test-logs
path: integration-logs.txt
retention-days: 3
publish_artifacts:
name: Publish artifacts
needs: [basic-checks, build, unit-test, integration-test]
runs-on: ubuntu-24.04
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
permissions:
contents: write
steps:
- name: Checkout emulator source code
uses: actions/checkout@v4
- name: Download artifacts
uses: actions/download-artifact@v4
- name: Upload products to GitHub Release
uses: softprops/action-gh-release@v2
with:
draft: true
files: |
artifacts/cartesi-rollups-node-v*.deb