mirror of
https://github.com/livekit/livekit.git
synced 2026-03-29 07:09:51 +00:00
publish to docker automatically on tag (#35)
This commit is contained in:
81
.github/workflows/docker.yaml
vendored
Normal file
81
.github/workflows/docker.yaml
vendored
Normal file
@@ -0,0 +1,81 @@
|
||||
name: Release to Docker
|
||||
|
||||
# Controls when the action will run.
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
# only publish on version tags
|
||||
tags:
|
||||
- 'v*.*.*'
|
||||
jobs:
|
||||
docker:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: |
|
||||
~/go/pkg/mod
|
||||
~/go/bin
|
||||
~/bin/protoc
|
||||
~/.cache
|
||||
key: ${{ runner.os }}-livekit-${{ hashFiles('**/go.sum') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-livekit-
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v3
|
||||
with:
|
||||
# list of Docker images to use as base name for tags
|
||||
images: |
|
||||
livekit/livekit-server
|
||||
# generate Docker tags based on the following events/attributes
|
||||
tags: |
|
||||
type=semver,pattern=v{{version}}
|
||||
type=semver,pattern=v{{major}}.{{minor}}
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.16
|
||||
|
||||
- name: Download Go modules
|
||||
run: go mod download
|
||||
|
||||
- name: Download protoc
|
||||
run: curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v3.15.8/protoc-3.15.8-linux-x86_64.zip
|
||||
|
||||
- name: Install protoc
|
||||
run: |
|
||||
sudo unzip protoc-3.15.8-linux-x86_64.zip -d /usr
|
||||
sudo chmod 755 /usr/bin/protoc
|
||||
|
||||
- name: Install protobuf generators
|
||||
run: |
|
||||
go install github.com/twitchtv/twirp/protoc-gen-twirp
|
||||
go install google.golang.org/protobuf/cmd/protoc-gen-go
|
||||
|
||||
- name: Generate code
|
||||
uses: magefile/mage-action@v1
|
||||
with:
|
||||
version: latest
|
||||
args: generate
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Build and push
|
||||
id: docker_build
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
platforms: linux/amd64,linux/arm64
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
Reference in New Issue
Block a user