Fix docker image entry point #323
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: Podium | |
'on': push | |
jobs: | |
test-standalone: | |
runs-on: ubuntu-latest | |
services: | |
redis: | |
image: redis:4 | |
options: '--health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5' | |
ports: | |
- '6379:6379' | |
steps: | |
- name: Instantiate redis cluster | |
uses: vishnudxb/redis-cluster@1.0.5 | |
with: | |
master1-port: 5000 | |
master2-port: 5001 | |
master3-port: 5002 | |
slave1-port: 5003 | |
slave2-port: 5004 | |
slave3-port: 5005 | |
- id: go-cache-paths | |
run: | | |
echo "go-build=$(go env GOCACHE)" >> "$GITHUB_OUTPUT" | |
echo "go-mod=$(go env GOMODCACHE)" >> "$GITHUB_OUTPUT" | |
- uses: actions/checkout@v3 | |
- name: Go Build Cache | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.go-cache-paths.outputs.go-build }} | |
key: ${{ runner.os }}-go-build-${{ hashFiles('**/go.sum') }} | |
# Cache go mod cache, used to speedup builds | |
- name: Go Mod Cache | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.go-cache-paths.outputs.go-mod }} | |
key: ${{ runner.os }}-go-mod-${{ hashFiles('**/go.sum') }} | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: '1.20' | |
- name: Setup env | |
run: make setup | |
- name: Test | |
run: make test | |
- name: Coverage | |
run: make coverage | |
- name: Install goveralls | |
env: | |
GO111MODULE: off | |
run: go get github.com/mattn/goveralls | |
- name: Send coverage | |
env: | |
COVERALLS_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: goveralls -coverprofile _build/test-coverage-all.out -service=github | |
# test-cluster: | |
# runs-on: ubuntu-latest | |
# services: | |
# redis: | |
# image: redis:4 | |
# options: '--health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5' | |
# ports: | |
# - '6379:6379' | |
# steps: | |
# - name: Instantiate redis cluster | |
# uses: vishnudxb/redis-cluster@1.0.5 | |
# with: | |
# master1-port: 5000 | |
# master2-port: 5001 | |
# master3-port: 5002 | |
# slave1-port: 5003 | |
# slave2-port: 5004 | |
# slave3-port: 5005 | |
# - id: go-cache-paths | |
# run: | | |
# echo "go-build=$(go env GOCACHE)" >> "$GITHUB_OUTPUT" | |
# echo "go-mod=$(go env GOMODCACHE)" >> "$GITHUB_OUTPUT" | |
# - uses: actions/checkout@v3 | |
# - name: Go Build Cache | |
# uses: actions/cache@v3 | |
# with: | |
# path: ${{ steps.go-cache-paths.outputs.go-build }} | |
# key: ${{ runner.os }}-go-build-${{ hashFiles('**/go.sum') }} | |
# # Cache go mod cache, used to speedup builds | |
# - name: Go Mod Cache | |
# uses: actions/cache@v3 | |
# with: | |
# path: ${{ steps.go-cache-paths.outputs.go-mod }} | |
# key: ${{ runner.os }}-go-mod-${{ hashFiles('**/go.sum') }} | |
# - name: Set up Go | |
# uses: actions/setup-go@v4 | |
# with: | |
# go-version: '1.20' | |
# - name: Setup env | |
# run: make setup | |
# - name: Test | |
# run: make test | |
# env: | |
# PODIUM_REDIS_CLUSTER_ENABLED: true | |
# - name: Coverage | |
# run: make coverage | |
# env: | |
# PODIUM_REDIS_CLUSTER_ENABLED: true | |
# - name: Install goveralls | |
# env: | |
# GO111MODULE: on | |
# run: go get github.com/mattn/goveralls | |
# - name: Send coverage | |
# env: | |
# COVERALLS_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# run: goveralls -coverprofile _build/test-coverage-all.out -service=github | |
# Triggered on tag creations, except dev/x.x.x, leaderboard/x.x.x and client/x.x.x | |
build_and_deploy_podium: | |
needs: | |
- test-standalone | |
runs-on: ubuntu-latest | |
if: startsWith(github.ref, 'refs/tags/') && !contains(github.ref, 'dev/') && !contains(github.ref, 'leaderboard/') && !contains(github.ref, 'client/') | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set env | |
run: echo "VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV | |
- uses: actions/cache@v3 | |
with: | |
path: ~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
- name: Login to Docker Hub | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Build and push tag | |
id: docker_build_tag | |
uses: docker/build-push-action@v4 | |
with: | |
context: ./ | |
file: ./build/Dockerfile | |
push: true | |
tags: tfgco/podium:${{ env.VERSION }} | |
- name: Build and push latest | |
id: docker_build_latest | |
uses: docker/build-push-action@v4 | |
with: | |
context: ./ | |
file: ./build/Dockerfile | |
push: true | |
tags: tfgco/podium:latest | |
# To push a podium-dev image, create a dev/x.x.x tag | |
build_and_deploy_podium_dev: | |
needs: | |
- test-standalone | |
runs-on: ubuntu-latest | |
if: (startsWith(github.ref, 'refs/tags/') && contains(github.ref, 'dev/') && !contains(github.ref, 'leaderboard/') && !contains(github.ref, 'client/')) | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set env | |
run: echo "VERSION=${GITHUB_REF#refs/tags/dev/*}" >> $GITHUB_ENV | |
- uses: actions/cache@v3 | |
with: | |
path: ~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
- name: Login to Docker Hub | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Build and push tag | |
id: docker_build_tag | |
uses: docker/build-push-action@v4 | |
with: | |
context: ./ | |
file: ./build/Dockerfile | |
push: true | |
tags: tfgco/podium-dev:${{ env.VERSION }} | |
- name: Build and push latest | |
id: docker_build_latest | |
uses: docker/build-push-action@v4 | |
with: | |
context: ./ | |
file: ./build/Dockerfile | |
push: true | |
tags: tfgco/podium-dev:latest |