Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,40 @@ jobs:
working-directory: fishjam_protos
if: ${{ !cancelled() && steps.compile.outcome == 'success' }}
run: mix format --check-formatted

check-protobufs-update:
runs-on: ubuntu-latest
name: Fishjam protos update
strategy:
matrix:
otp: ['27']
elixir: ['1.17']
steps:
- name: Set up Elixir
uses: erlef/setup-beam@v1
with:
otp-version: ${{matrix.otp}}
elixir-version: ${{matrix.elixir}}
- name: Checkout code
uses: actions/checkout@v3

- name: Install protobuf compiler (protoc) if needed
run: |
sudo apt update
sudo apt install -y protobuf-compiler
PATH=~/.mix/escripts:$PATH
mix deps.get
mix escript.install hex protobuf --force
working-directory: fishjam_protos

- name: Run compile_proto.sh
run: bash compile_proto.sh
working-directory: fishjam_protos

- name: Check for changes in protobuf files
run: |
if [[ -n $(git status --porcelain) ]]; then
echo "Generated protobuf files are not up to date. Please regenerate them and commit the changes."
git diff
exit 1
fi
33 changes: 33 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Deployment

permissions:
contents: read

on:
push:
tags:
- /v.*/

jobs:
publish:
runs-on: ubuntu-latest
name: hex_publish
steps:
- name: Set up Elixir
uses: erlef/setup-beam@v1
with:
otp-version: "27"
elixir-version: "1.17"

- name: Checkout the code
uses: actions/checkout@v3

- name: Install dependencies
run: mix deps.get
working-directory: fishjam_protos

- name: Publish package
env:
HEX_API_KEY: ${{ secrets.MIX_HEX_KEY }}
run: mix hex.publish --yes
working-directory: fishjam_protos
3 changes: 2 additions & 1 deletion fishjam_protos/.formatter.exs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# Used by "mix format"
[
inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"]
inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"],
import_deps: [:protobuf]
]
3 changes: 3 additions & 0 deletions fishjam_protos/compile_proto.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,6 @@ for file in $files; do
printf "DONE\n"
count=$(($count + 1))
done

cd fishjam_protos
mix format "lib/**/*.ex"
81 changes: 36 additions & 45 deletions fishjam_protos/lib/fishjam/media_events/peer/peer.pb.ex
Original file line number Diff line number Diff line change
@@ -1,146 +1,137 @@
defmodule Fishjam.MediaEvents.Peer.MediaEvent.VariantBitrate do
@moduledoc false

use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0"
use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0"

field(:variant, 1, type: Fishjam.MediaEvents.Variant, enum: true)
field(:bitrate, 2, type: :int32)
field :variant, 1, type: Fishjam.MediaEvents.Variant, enum: true
field :bitrate, 2, type: :int32
end

defmodule Fishjam.MediaEvents.Peer.MediaEvent.TrackIdToMetadata do
@moduledoc false

use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0"
use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0"

field(:track_id, 1, type: :string, json_name: "trackId")
field(:metadata, 2, type: Fishjam.MediaEvents.Metadata)
field :track_id, 1, type: :string, json_name: "trackId"
field :metadata, 2, type: Fishjam.MediaEvents.Metadata
end

defmodule Fishjam.MediaEvents.Peer.MediaEvent.TrackIdToBitrates do
@moduledoc false

use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0"
use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0"

oneof(:tracks, 0)
oneof :tracks, 0

field(:track_bitrate, 1,
field :track_bitrate, 1,
type: Fishjam.MediaEvents.Peer.MediaEvent.TrackBitrate,
json_name: "trackBitrate",
oneof: 0
)
end

defmodule Fishjam.MediaEvents.Peer.MediaEvent.Connect do
@moduledoc false

use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0"
use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0"

field(:metadata, 1, type: Fishjam.MediaEvents.Metadata)
field :metadata, 1, type: Fishjam.MediaEvents.Metadata
end

defmodule Fishjam.MediaEvents.Peer.MediaEvent.Disconnect do
@moduledoc false

use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0"
use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0"
end

defmodule Fishjam.MediaEvents.Peer.MediaEvent.UpdateEndpointMetadata do
@moduledoc false

use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0"
use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0"

field(:metadata, 1, type: Fishjam.MediaEvents.Metadata)
field :metadata, 1, type: Fishjam.MediaEvents.Metadata
end

defmodule Fishjam.MediaEvents.Peer.MediaEvent.UpdateTrackMetadata do
@moduledoc false

use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0"
use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0"

field(:track_id, 1, type: :string, json_name: "trackId")
field(:metadata, 2, type: Fishjam.MediaEvents.Metadata)
field :track_id, 1, type: :string, json_name: "trackId"
field :metadata, 2, type: Fishjam.MediaEvents.Metadata
end

defmodule Fishjam.MediaEvents.Peer.MediaEvent.RenegotiateTracks do
@moduledoc false

use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0"
use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0"
end

defmodule Fishjam.MediaEvents.Peer.MediaEvent.SdpOffer do
@moduledoc false

use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0"
use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0"

field(:sdp_offer, 1, type: :string, json_name: "sdpOffer")
field :sdp_offer, 1, type: :string, json_name: "sdpOffer"

field(:track_id_to_metadata, 2,
field :track_id_to_metadata, 2,
repeated: true,
type: Fishjam.MediaEvents.Peer.MediaEvent.TrackIdToMetadata,
json_name: "trackIdToMetadata"
)

field(:track_id_to_bitrates, 3,
field :track_id_to_bitrates, 3,
repeated: true,
type: Fishjam.MediaEvents.Peer.MediaEvent.TrackIdToBitrates,
json_name: "trackIdToBitrates"
)

field(:mid_to_track_id, 4,
field :mid_to_track_id, 4,
repeated: true,
type: Fishjam.MediaEvents.MidToTrackId,
json_name: "midToTrackId"
)
end

defmodule Fishjam.MediaEvents.Peer.MediaEvent.TrackBitrate do
@moduledoc false

use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0"
use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0"

field(:track_id, 1, type: :string, json_name: "trackId")
field(:bitrate, 2, type: :int32)
field :track_id, 1, type: :string, json_name: "trackId"
field :bitrate, 2, type: :int32
end

defmodule Fishjam.MediaEvents.Peer.MediaEvent do
@moduledoc false

use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0"
use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0"

oneof(:content, 0)
oneof :content, 0

field(:connect, 1, type: Fishjam.MediaEvents.Peer.MediaEvent.Connect, oneof: 0)
field(:disconnect, 2, type: Fishjam.MediaEvents.Peer.MediaEvent.Disconnect, oneof: 0)
field :connect, 1, type: Fishjam.MediaEvents.Peer.MediaEvent.Connect, oneof: 0
field :disconnect, 2, type: Fishjam.MediaEvents.Peer.MediaEvent.Disconnect, oneof: 0

field(:update_endpoint_metadata, 3,
field :update_endpoint_metadata, 3,
type: Fishjam.MediaEvents.Peer.MediaEvent.UpdateEndpointMetadata,
json_name: "updateEndpointMetadata",
oneof: 0
)

field(:update_track_metadata, 4,
field :update_track_metadata, 4,
type: Fishjam.MediaEvents.Peer.MediaEvent.UpdateTrackMetadata,
json_name: "updateTrackMetadata",
oneof: 0
)

field(:renegotiate_tracks, 5,
field :renegotiate_tracks, 5,
type: Fishjam.MediaEvents.Peer.MediaEvent.RenegotiateTracks,
json_name: "renegotiateTracks",
oneof: 0
)

field(:candidate, 6, type: Fishjam.MediaEvents.Candidate, oneof: 0)
field :candidate, 6, type: Fishjam.MediaEvents.Candidate, oneof: 0

field(:sdp_offer, 7,
field :sdp_offer, 7,
type: Fishjam.MediaEvents.Peer.MediaEvent.SdpOffer,
json_name: "sdpOffer",
oneof: 0
)

field(:track_bitrate, 8,
field :track_bitrate, 8,
type: Fishjam.MediaEvents.Peer.MediaEvent.TrackBitrate,
json_name: "trackBitrate",
oneof: 0
)
end
Loading