Rust: Make RawMessage fields publicly accessible #3160
Workflow file for this run
This file contains 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: CI | |
on: | |
push: | |
branches: [main] | |
tags: ["releases/**", "go/mcap/*"] | |
pull_request: | |
branches: ["*"] | |
jobs: | |
spellcheck: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
lfs: true | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 16.x | |
cache: yarn | |
- run: yarn install --frozen-lockfile | |
- run: echo '::add-matcher::.github/cspell-problem-matcher.json' | |
- run: yarn spellcheck --no-progress | |
conformance-lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
lfs: true | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 16.x | |
cache: yarn | |
- run: yarn install --frozen-lockfile | |
- run: yarn workspace @foxglove/mcap-conformance lint:ci | |
- run: yarn workspace @foxglove/mcap-conformance typecheck | |
conformance-cpp: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
lfs: true | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 16.x | |
cache: yarn | |
- uses: actions/cache@v3 | |
with: | |
path: ~/.conan/data | |
key: ${{ runner.os }}-${{ hashFiles('cpp/**/conanfile.py') }} | |
- uses: satackey/[email protected] | |
continue-on-error: true | |
- run: cd cpp && make ci | |
- run: yarn install --frozen-lockfile | |
- run: yarn test:conformance:generate-inputs --verify | |
- run: yarn test:conformance --runner cpp- | |
conformance-go: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
lfs: true | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 16.x | |
cache: yarn | |
- uses: actions/setup-go@v3 | |
with: | |
go-version: 1.18.x | |
- run: cd go && make build-conformance-binaries | |
- run: yarn install --frozen-lockfile | |
- run: yarn test:conformance:generate-inputs --verify | |
- run: yarn test:conformance --runner go- | |
conformance-python: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
lfs: true | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 16.x | |
cache: yarn | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.7 | |
- run: cd python && pip install -e mcap | |
- run: yarn install --frozen-lockfile | |
- run: yarn test:conformance:generate-inputs --verify | |
- run: yarn test:conformance --runner py- | |
conformance-typescript: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
lfs: true | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 16.x | |
cache: yarn | |
- run: yarn install --frozen-lockfile | |
- run: yarn test:conformance:generate-inputs --verify | |
- run: yarn test:conformance --runner ts- | |
conformance-kaitai-struct: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
lfs: true | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 16.x | |
cache: yarn | |
- run: yarn install --frozen-lockfile | |
- run: yarn test:conformance:generate-inputs --verify | |
- run: yarn test:conformance --runner ksy- | |
conformance-swift: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
lfs: true | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 16.x | |
cache: yarn | |
- uses: swift-actions/setup-swift@v1 | |
with: | |
swift-version: "5.7" | |
- run: swift build | |
- run: yarn install --frozen-lockfile | |
- run: yarn test:conformance:generate-inputs --verify | |
- run: yarn test:conformance --runner swift- | |
conformance-rust: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
lfs: true | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 16.x | |
cache: yarn | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
default: true | |
- run: cd rust && cargo build --example=conformance_reader | |
- run: yarn install --frozen-lockfile | |
- run: yarn test:conformance:generate-inputs --verify | |
- run: yarn test:conformance --runner rust- | |
docs: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 16.x | |
cache: yarn | |
- run: yarn install --frozen-lockfile | |
- run: yarn docs:lint | |
cpp: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: cpp | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
lfs: "true" | |
- uses: actions/cache@v3 | |
with: | |
path: ~/.conan/data | |
key: ${{ runner.os }}-${{ hashFiles('cpp/**/conanfile.py') }} | |
- uses: satackey/[email protected] | |
continue-on-error: true | |
- run: make ci-format-check | |
- run: make ci | |
- run: make test-host | |
- run: make test-examples-host | |
- run: make run-examples-host | |
cpp-windows: | |
runs-on: windows-latest | |
defaults: | |
run: | |
working-directory: cpp | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
lfs: "true" | |
- uses: actions/cache@v3 | |
with: | |
path: ~/.conan/data | |
key: ${{ runner.os }}-${{ hashFiles('cpp/**/conanfile.py') }} | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.7 | |
- run: pip install conan==1.54.0 | |
- run: bash build.sh --build-tests-only | |
- run: ./test/build/Debug/bin/unit-tests | |
typescript: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 16.x | |
cache: yarn | |
registry-url: https://registry.npmjs.org | |
- run: yarn install --frozen-lockfile | |
- run: yarn workspace @mcap/core lint:ci | |
- run: yarn workspace @mcap/core typecheck | |
- run: yarn workspace @mcap/core test | |
- name: Publish to NPM | |
if: ${{ startsWith(github.ref, 'refs/tags/releases/typescript/core/v') }} | |
run: yarn workspace @mcap/core publish --access public | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }} | |
typescript-examples: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 16.x | |
cache: yarn | |
- run: yarn install --frozen-lockfile | |
- run: yarn workspace @foxglove/mcap-example-validate lint:ci | |
- run: yarn workspace @foxglove/mcap-example-validate typecheck | |
- run: yarn workspace @foxglove/mcap-benchmarks lint:ci | |
- run: yarn workspace @foxglove/mcap-benchmarks typecheck | |
- run: yarn workspace @foxglove/mcap-example-bag2mcap lint:ci | |
- run: yarn workspace @foxglove/mcap-example-bag2mcap typecheck | |
python: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: python | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
lfs: true | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.7 | |
- uses: satackey/[email protected] | |
continue-on-error: true | |
- run: pip install pipenv==2022.7.24 | |
- run: make lint | |
- run: make test | |
- run: make examples | |
- run: make build | |
- name: Publish mcap to TestPyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
if: ${{ !github.event.pull_request.head.repo.fork && github.actor != 'dependabot[bot]' }} | |
with: | |
user: __token__ | |
password: ${{ secrets.TESTPYPI_API_TOKEN }} | |
packages_dir: python/mcap/dist | |
repository_url: https://test.pypi.org/legacy/ | |
skip_existing: true | |
- name: Publish mcap-protobuf-support to TestPyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
if: ${{ !github.event.pull_request.head.repo.fork && github.actor != 'dependabot[bot]' }} | |
with: | |
user: __token__ | |
password: ${{ secrets.TESTPYPI_API_TOKEN }} | |
repository_url: https://test.pypi.org/legacy/ | |
skip_existing: true | |
packages_dir: python/mcap-protobuf-support/dist | |
- name: Publish mcap-ros1-support to TestPyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
if: ${{ !github.event.pull_request.head.repo.fork && github.actor != 'dependabot[bot]' }} | |
with: | |
user: __token__ | |
password: ${{ secrets.TESTPYPI_API_TOKEN }} | |
repository_url: https://test.pypi.org/legacy/ | |
skip_existing: true | |
packages_dir: python/mcap-ros1-support/dist | |
- name: Publish mcap-ros2-support to TestPyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
if: ${{ !github.event.pull_request.head.repo.fork && github.actor != 'dependabot[bot]' }} | |
with: | |
user: __token__ | |
password: ${{ secrets.TESTPYPI_API_TOKEN }} | |
repository_url: https://test.pypi.org/legacy/ | |
skip_existing: true | |
packages_dir: python/mcap-ros2-support/dist | |
- name: Publish mcap to PyPI | |
if: | | |
!github.event.pull_request.head.repo.fork && | |
startsWith(github.ref, 'refs/tags/releases/python/mcap/v') | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
user: __token__ | |
password: ${{ secrets.PYPI_API_TOKEN }} | |
packages_dir: python/mcap/dist | |
- name: Publish mcap-protobuf-support to PyPI | |
if: | | |
!github.event.pull_request.head.repo.fork && | |
startsWith(github.ref, 'refs/tags/releases/python/mcap-protobuf-support/v') | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
user: __token__ | |
password: ${{ secrets.PYPI_API_TOKEN }} | |
packages_dir: python/mcap-protobuf-support/dist | |
- name: Publish mcap-ros1-support to PyPI | |
if: | | |
!github.event.pull_request.head.repo.fork && | |
startsWith(github.ref, 'refs/tags/releases/python/mcap-ros1-support/v') | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
user: __token__ | |
password: ${{ secrets.PYPI_API_TOKEN }} | |
packages_dir: python/mcap-ros1-support/dist | |
- name: Publish mcap-ros2-support to PyPI | |
if: | | |
!github.event.pull_request.head.repo.fork && | |
startsWith(github.ref, 'refs/tags/releases/python/mcap-ros2-support/v') | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
user: __token__ | |
password: ${{ secrets.PYPI_API_TOKEN }} | |
packages_dir: python/mcap-ros2-support/dist | |
go: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: go | |
steps: | |
- uses: actions/setup-go@v3 | |
with: | |
go-version: 1.18.x | |
- uses: actions/checkout@v3 | |
with: | |
lfs: true | |
- name: install golangci-lint | |
run: go install github.com/golangci/golangci-lint/cmd/[email protected] | |
- run: make lint | |
- run: make test | |
- name: Check library version | |
if: | | |
!github.event.pull_request.head.repo.fork && | |
startsWith(github.ref, 'refs/tags/go/mcap/v') | |
run: make -C cli/mcap build && ./check_tag.sh cli/mcap/bin/mcap | |
go-release-cli: | |
permissions: | |
contents: write | |
needs: | |
- go | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/releases/mcap-cli/v') | |
defaults: | |
run: | |
working-directory: go/cli/mcap | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os: linux | |
image: ubuntu-latest | |
arch: amd64 | |
env: {} | |
- os: linux | |
image: ubuntu-latest | |
arch: arm64 | |
setup: sudo apt-get update && sudo apt-get install -qq gcc-aarch64-linux-gnu | |
env: | |
CC: aarch64-linux-gnu-gcc | |
CXX: aarch64-linux-gnu-g++ | |
- os: macos | |
image: macos-latest | |
arch: amd64 | |
env: {} | |
- os: macos | |
image: macos-latest | |
arch: arm64 | |
env: {} | |
- os: windows | |
image: windows-latest | |
arch: amd64 | |
env: {} | |
name: Build (${{ matrix.os }}/${{ matrix.arch }}) | |
runs-on: ${{ matrix.image }} | |
env: ${{ matrix.env }} | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: "0" | |
- run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* | |
- uses: actions/setup-go@v3 | |
with: | |
go-version: 1.18.x | |
- name: Setup environment | |
run: ${{ matrix.setup }} | |
- name: Build binary | |
run: make build | |
env: | |
GOARCH: ${{ matrix.arch }} | |
OUTPUT: mcap-${{ matrix.os }}-${{ matrix.arch }} | |
- name: Make release notes | |
run: | | |
git log --oneline --no-merges --first-parent --grep CLI --decorate-refs=refs $(git describe --tags $(git rev-list --tags=releases/mcap-cli --max-count=1))..HEAD > ${{ github.workspace }}-CHANGELOG.txt | |
- name: Release | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: ./go/cli/mcap/bin/* | |
body_path: ${{ github.workspace }}-CHANGELOG.txt | |
draft: false | |
update-homebrew-formula: | |
needs: | |
- go-release-cli | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/releases/mcap-cli/v') | |
runs-on: ubuntu-latest | |
steps: | |
- name: Extract version | |
id: extract-version | |
run: | | |
printf "::set-output name=%s::%s\n" version-number "${GITHUB_REF#refs/tags/releases/mcap-cli/v}" | |
- uses: mislav/bump-homebrew-formula-action@fcd7e28e549f14d3aebc53b4d9e929de579f372f | |
with: | |
formula-name: mcap | |
push-to: foxglove/homebrew-core | |
commit-message: | | |
{{formulaName}} ${{ steps.extract-version.outputs.version-number }} | |
Created by https://github.com/mislav/bump-homebrew-formula-action | |
cc @foxglove/mcap-cli-maintainers | |
env: | |
COMMITTER_TOKEN: ${{ secrets.HOMEBREW_GITHUB_TOKEN }} | |
swift: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
lfs: true | |
- uses: swift-actions/setup-swift@v1 | |
with: | |
swift-version: "5.7" | |
- run: docker run -t --rm -v $(pwd):/work -w /work ghcr.io/realm/swiftlint:0.49.1 | |
- run: docker run -t --rm -v $(pwd):/work ghcr.io/nicklockwood/swiftformat:0.49.18 --lint /work | |
- run: swift build | |
- run: swift test | |
rust: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: rust | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
lfs: true | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
default: true | |
components: "rustfmt, clippy" | |
- run: cargo fmt --all -- --check | |
- run: cargo clippy -- --no-deps | |
- run: cargo build | |
- run: cargo test | |
- name: "publish to crates.io" | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/releases/rust/v') | |
run: cargo publish --token ${{ secrets.RUST_CRATES_IO_TOKEN }} |