Skip to content

Added christmas game to banner/projects. Added quick filter for publi… #458

Added christmas game to banner/projects. Added quick filter for publi…

Added christmas game to banner/projects. Added quick filter for publi… #458

Workflow file for this run

name: server build/publish
env:
GO_VERSION: "^1.22.0"
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main ]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: ${{env.GO_VERSION}}
- name: golangci-lint
uses: golangci/golangci-lint-action@v4
with:
version: v1.61.0
working-directory: server
skip-cache: true
args: --timeout=5m
test:
runs-on: ubuntu-latest
env:
working-directory: ./server
steps:
- uses: actions/checkout@v3
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: ${{env.GO_VERSION}}
- name: Set up gotestfmt
run: go install github.com/gotesttools/gotestfmt/v2/cmd/gotestfmt@latest
- name: Run tests
working-directory: ${{env.working-directory}}
run: |
set -euo pipefail
go test -json -v ./... 2>&1 | tee /tmp/gotest.log | gotestfmt -hide "empty-packages"
build:
runs-on: ubuntu-latest
env:
working-directory: ./server
steps:
- uses: actions/checkout@v3
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: ${{env.GO_VERSION}}
- name: Build
working-directory: ${{env.working-directory}}
run: make build
- name: Generate data
working-directory: ${{env.working-directory}}
run: make init.all generate.artifacts
- name: Store binaries
uses: actions/upload-artifact@v3
with:
name: server-binaries
path: ${{env.working-directory}}/bin
retention-days: 1
- name: Store generated data
uses: actions/upload-artifact@v3
with:
name: server-data
path: ${{env.working-directory}}/var/gen
retention-days: 1
publish:
runs-on: ubuntu-latest
needs:
- build
- test
if: ${{ github.ref == 'refs/heads/main' }}
env:
working-directory: ./server
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Download server binaries
uses: actions/download-artifact@v3
with:
name: server-binaries
path: ${{env.working-directory}}/bin
- name: Download generated data
uses: actions/download-artifact@v3
with:
name: server-data
path: ${{env.working-directory}}/var/gen
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push server
uses: docker/build-push-action@v4
with:
context: ./server
push: true
tags: warmans/rsk-search-api:latest