Skip to content
This repository has been archived by the owner on Aug 25, 2021. It is now read-only.

Commit

Permalink
Setup Travis CI integration (#44, #43)
Browse files Browse the repository at this point in the history
- run unit tests on CI
- check code formatting with rustfmt on CI
- lint code with Clippy on CI
- build 'medea' crate on stable, beta and nightly (can fail) Rust channels on CI
- build 'medea-jason' crate on stable Rust channel on CI
- release 'medea-jason' to NPM and crates.io from CI
- release 'medea' to crates.io from CI
- release 'medea-client-api-proto' to crates.io from CI
- release 'medea-macro' to crates.io from CI
- create Github release for all crates tags from CI

Additionally:
- fix warnings in Rust docs
- add CHANGELOG for 'medea', 'medea-jason', 'medea-client-api-proto' and 'medea-macro' crates
- add releasing commands to Makefile
- add releasing guide
  • Loading branch information
evdokimovs authored Aug 21, 2019
1 parent c96d9f6 commit 15ea881
Show file tree
Hide file tree
Showing 53 changed files with 1,949 additions and 211 deletions.
2 changes: 1 addition & 1 deletion .clippy.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ doc-valid-idents = [
"IPv4", "IPv6", "JavaScript", "NaN", "NaNs",
"OAuth", "OpenGL", "OpenSSH", "OpenSSL", "OpenStreetMap", "TrueType",
"iOS", "macOS", "TeX", "LaTeX", "BibTeX", "BibLaTeX", "MinGW",
"WebSocket",
"WebRTC", "WebSocket",
"MediaStream", "MediaStreamConstraints", "MediaStreamTrack",
"RTCConfiguration", "RTCIceCandidate", "RTCIceServer",
"RTCPeerConnection", "RTCPeerConnectionIceEvent",
Expand Down
116 changes: 116 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
language: rust

cache: cargo

install:
- rustc -vV
- cargo -vV

jobs:
allow_failures:
- rust: nightly
stage: build

include:
- name: Clippy
stage: check
rust: nightly
before_script: rustup component add clippy
script: make lint

- name: rustfmt
stage: check
rust: nightly
before_script: rustup component add rustfmt
script: make fmt check=yes

- name: medea-jason (stable)
stage: build
rust: stable
before_script:
- rm -f /home/travis/.cargo/bin/wasm-pack
- curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
script:
- make release.npm crate=medea-jason publish=no

- name: medea (stable)
stage: build
rust: stable
script: cargo build --bin medea

- name: medea (beta)
stage: build
rust: beta
script: cargo build --bin medea

- name: medea (nightly)
stage: build
rust: nightly
script: cargo build --bin medea

- name: unit (stable)
stage: test
rust: stable
script: make test.unit crate=@all

before_deploy:
- echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc
- curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh

deploy:
- provider: script
script: make release.crates crate=medea publish=yes
on:
tags: true
condition: $TRAVIS_TAG =~ ^medea-[0-9]+\.[0-9]+\.[0-9]+
- provider: releases
skip_cleanup: true
api_key: $GH_TOKEN
name: $TRAVIS_TAG
on:
tags: true
condition: $TRAVIS_TAG =~ ^medea-[0-9]+\.[0-9]+\.[0-9]+

- provider: script
script: make release crate=medea-jason publish=yes
on:
tags: true
condition: $TRAVIS_TAG =~ ^medea-jason-[0-9]+\.[0-9]+\.[0-9]+
- provider: releases
skip_cleanup: true
api_key: $GH_TOKEN
name: $TRAVIS_TAG
on:
tags: true
condition: $TRAVIS_TAG =~ ^medea-jason-[0-9]+\.[0-9]+\.[0-9]+

- provider: script
script: make release.crates crate=medea-client-api-proto publish=yes
on:
tags: true
condition: $TRAVIS_TAG =~ ^medea-client-api-proto-[0-9]+\.[0-9]+\.[0-9]+
- provider: releases
skip_cleanup: true
api_key: $GH_TOKEN
name: $TRAVIS_TAG
on:
tags: true
condition: $TRAVIS_TAG =~ ^medea-client-api-proto-[0-9]+\.[0-9]+\.[0-9]+

- provider: script
script: make release.crates crate=medea-macro publish=yes
on:
tags: true
condition: $TRAVIS_TAG =~ ^medea-macro-[0-9]+\.[0-9]+\.[0-9]+
- provider: releases
skip_cleanup: true
api_key: $GH_TOKEN
name: $TRAVIS_TAG
on:
tags: true
condition: $TRAVIS_TAG =~ ^medea-macro-[0-9]+\.[0-9]+\.[0-9]+

notifications:
email:
on_success: never
on_failure: always
32 changes: 32 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
`medea` changelog
=================

All user visible changes to this project will be documented in this file. This project uses [Semantic Versioning 2.0.0].




## TBD [0.1.0] · 2019-08-??
[0.1.0]: /../../tree/medea-0.1.0

[Milestone](/../../milestone/1) | [Roadmap](/../../issues/8)

### Added

- WebRTC:
- Basic signalling capabilities ([#16](/../../pull/16));
- [Coturn] integration ([#20](/../../pull/20), [#42](/../../pull/42)).
- Deployment:
- Graceful shutdown ([#30](/../../pull/30));
- Docker image ([#35](/../../pull/35)).
- Configuration:
- Ability to parse from files and env vars ([#15](/../../pull/15)).
- Logging:
- Structured logging to STDOUT/STDERR ([#12](/../../pull/12)).





[Coturn]: https://github.com/coturn/coturn
[Semantic Versioning 2.0.0]: https://semver.org
40 changes: 20 additions & 20 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 5 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,13 @@ version = "0.1.0-dev"
edition = "2018"
description = "Medea media server"
authors = ["Instrumentisto Team <[email protected]>"]
license = "MPL 2.0"
documentation = "https://docs.rs/medea"
homepage = "https://github.com/instrumentisto/medea"
# documentation = "https://docs.rs/medea"
readme = "README.md"
repository = "https://github.com/instrumentisto/medea"
readme = "README.md"
keywords = ["medea", "media-server"]
categories = ["multimedia"]

[workspace]
members = [
Expand Down
Loading

0 comments on commit 15ea881

Please sign in to comment.