Update client to latest Sonic version #752
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: Go-Linux | |
on: | |
push: | |
branches: [ "main" ] | |
paths: | |
- '.github/workflows/go-linux.yml' | |
- '**.go' | |
- '**.yml' | |
- '**.R' | |
- '**.Rmd' | |
- 'go.mod' | |
- 'go.sum' | |
pull_request: | |
branches: [ "main" ] | |
paths: | |
- '.github/workflows/go-linux.yml' | |
- '**.go' | |
- '**.yml' | |
- '**.R' | |
- '**.Rmd' | |
- 'go.mod' | |
- 'go.sum' | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
token: ${{ secrets.ACCESS_TOKEN }} | |
- uses: de-vri-es/setup-git-credentials@v2 | |
with: | |
credentials: ${{ secrets.ACCESS_TOKEN }} | |
- name: Fetch dependencies | |
working-directory: ./client | |
run: go mod vendor | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: '1.20.7' | |
# Use cache for Docker images | |
# Only cache prometheus image, because other images are | |
# small and can be fetched quickly. | |
- run: mkdir -p /tmp/.docker-images | |
- name: Cache Docker images | |
id: image_cache | |
uses: actions/cache@v3 | |
with: | |
path: /tmp/.docker-images | |
key: ${{ runner.os }}-docker-images | |
- name: Fetch Docker test-image | |
run: docker image pull hello-world | |
- name: Fetch Docker alpine-image | |
run: docker image pull alpine | |
# Fetch prometheus image if not cached | |
- name: Fetch Prometheus image | |
if: steps.image_cache.outputs['cache-hit'] != 'true' | |
run: | | |
docker image pull prom/prometheus:v2.44.0 | |
docker save -o /tmp/.docker-images/prometheus.tar prom/prometheus:v2.44.0 | |
# Load prometheus image if cached | |
- name: Load Prometheus image | |
if: steps.image_cache.outputs['cache-hit'] == 'true' | |
run: docker load -i /tmp/.docker-images/prometheus.tar | |
# Use custom cache, because build-push action does not | |
# allow to specify cache name, so it interferes with | |
# other workflows. | |
- name: Cache Docker layers | |
uses: actions/cache@v3 | |
with: | |
path: /tmp/.buildx-cache | |
key: ${{ runner.os }}-buildx-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-buildx- | |
- name: Build Docker Image | |
uses: docker/build-push-action@v4 | |
with: | |
context: ./ | |
tags: opera | |
load: true | |
push: false | |
cache-from: type=local,src=/tmp/.buildx-cache | |
cache-to: type=local,dest=/tmp/.buildx-cache-new | |
# This ugly bit is necessary if you don't want your cache to grow forever | |
# until it hits GitHub's limit. | |
# Temp fix | |
# https://github.com/docker/build-push-action/issues/252 | |
# https://github.com/moby/buildkit/issues/1896 | |
- name: Move cache | |
run: | | |
rm -rf /tmp/.buildx-cache | |
mv /tmp/.buildx-cache-new /tmp/.buildx-cache | |
- name: Set up R | |
uses: r-lib/actions/setup-r@v2 | |
- name: Install R dependencies | |
uses: r-lib/actions/setup-r-dependencies@v2 | |
with: | |
working-directory: ./analysis/report | |
- name: Build | |
working-directory: ./ | |
run: go build -v ./... | |
- name: Test | |
working-directory: ./ | |
run: go test -count=1 ./... | |
env: | |
DOCKER_API_VERSION: "1.42" |