publish to docker automatically on tag (#35)

This commit is contained in:
David Zhao
2021-07-03 12:46:56 -07:00
committed by GitHub
parent 1ced03d72f
commit a694c82581

81
.github/workflows/docker.yaml vendored Normal file
View 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 }}