wasm-component-trampoline 40.0.0

A library for linking WASM components together using host trampoline functions
Documentation
name: 'Run Tests'

on:
  pull_request:
  push:
    branches: [ master ]

permissions:
  actions: read
  contents: write

jobs:
  tests:
    env:
      SCCACHE_GHA_ENABLED: 'true'
      RUSTC_WRAPPER: 'sccache'
      CARGO_INCREMENTAL: '0'
    strategy:
      matrix:
        os: [ ubuntu-latest ]
    runs-on: ${{ matrix.os }}

    steps:
      - name: Checkout repo
        uses: actions/checkout@v4

      - name: Setup devenv
        uses: andyl-technologies/github-actions/setup-devenv@master

      - name: Setup Rust cache
        uses: andyl-technologies/github-actions/rust-cache@master
        with:
          cache-all-crates: true
          use-sccache: true

      - name: Run tests
        run: devenv test

  test-miri:
    strategy:
      matrix:
        os: [ ubuntu-latest ]
    runs-on: ${{ matrix.os }}

    steps:
      - name: Checkout repo
        uses: actions/checkout@v4

      - name: Setup devenv
        uses: andyl-technologies/github-actions/setup-devenv@master

      - name: Setup Rust cache
        uses: andyl-technologies/github-actions/rust-cache@master
        with:
          cache-all-crates: true

      - name: Run tests
        run: devenv shell miri-test

  coverage:
    strategy:
      matrix:
        os: [ ubuntu-latest ]
    runs-on: ${{ matrix.os }}
    permissions:
      contents: write
      pull-requests: write
    steps:
      - name: Checkout repo
        uses: actions/checkout@v4

      - name: Setup devenv
        uses: andyl-technologies/github-actions/setup-devenv@master

      - name: Setup Rust cache
        uses: andyl-technologies/github-actions/rust-cache@master

      - name: Run coverage tests
        run: devenv shell wasm-trampoline-coverage

      - name: Generate coverage report
        uses: clearlyip/code-coverage-report-action@v5
        id: code_coverage_report_action
        if: ${{ github.actor != 'dependabot[bot]'}}
        with:
          filename: 'coverage.cobertura.xml'
          artifact_download_workflow_names: '"Run Tests",cron'

      - name: Add coverage PR comment
        uses: marocchino/sticky-pull-request-comment@v2
        if:
          steps.code_coverage_report_action.outputs.file != '' &&
          github.event_name == 'pull_request' && (success() || failure())
        with:
          recreate: true
          path: code-coverage-results.md

  check-publish:
    strategy:
      matrix:
        os: [ ubuntu-latest ]
    runs-on: ${{ matrix.os }}

    steps:
      - name: Checkout repo
        uses: actions/checkout@v4

      - name: Setup devenv
        uses: andyl-technologies/github-actions/setup-devenv@master

      - name: Verify crate publishing
        uses: katyo/publish-crates@v2
        with:
          dry-run: true
          ignore-unpublished-changes: false