Skip to content

Requires Pin on stack object #29

Requires Pin on stack object

Requires Pin on stack object #29

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
name: Build
strategy:
matrix:
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Update Rust
run: rustup update stable
- name: Check code styles
run: cargo fmt --check
- name: Run tests
run: cargo test
- name: Run example
run: |
import json
import os
from subprocess import Popen, PIPE, run
import sys
with Popen(["cargo", "run", "-p", "example", "--message-format", "json-render-diagnostics"], stdout=PIPE) as proc:
for line in proc.stdout:
line = json.loads(line)
reason = line["reason"]
if reason == "build-finished":
ok = line["success"]
break
elif reason == "build-script-executed":
for env in line["env"]:
key = env[0]
val = env[1]
if key == "CPPBIND_METADATA":
meta = val
with open(os.environ["GITHUB_OUTPUT"], "a") as f:
print(f"meta={meta}", file=f)
if not ok:
sys.exit(1)
shell: python
id: example
- name: Upload example metadata
uses: actions/upload-artifact@v4
with:
name: example-metadata-${{ runner.os }}-${{ runner.arch }}
path: ${{ steps.example.outputs.meta }}
if: ${{ failure() }}