nextcloud-spreed-signaling/.github/workflows/tarball.yml
Joachim Bauch a34f3b6093
No longer support Golang 1.17.
While it might still compile with 1.17, it's no longer tested through CI
and at some point, features that require 1.18 will be used.
2023-02-22 08:19:30 +01:00

111 lines
2.6 KiB
YAML

name: tarball
on:
push:
branches: [ master ]
paths:
- '.github/workflows/tarball.yml'
- '**.go'
- 'go.*'
- 'Makefile'
pull_request:
branches: [ master ]
paths:
- '.github/workflows/tarball.yml'
- '**.go'
- 'go.*'
- 'Makefile'
permissions:
contents: read
jobs:
create:
strategy:
matrix:
go-version:
- "1.18"
- "1.19"
- "1.20"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v3
with:
go-version: ${{ matrix.go-version }}
- id: go-cache-paths
run: |
echo "::set-output name=go-build::$(go env GOCACHE)"
echo "::set-output name=go-mod::$(go env GOMODCACHE)"
echo "::set-output name=go-version::$(go version | cut -d ' ' -f 3)"
- name: Go build cache
uses: actions/cache@v3
with:
path: ${{ steps.go-cache-paths.outputs.go-build }}
key: ${{ runner.os }}-${{ steps.go-cache-paths.outputs.go-version }}-build-${{ hashFiles('**/go.mod', '**/go.sum') }}
- name: Go mod cache
uses: actions/cache@v3
with:
path: ${{ steps.go-cache-paths.outputs.go-mod }}
key: ${{ runner.os }}-${{ steps.go-cache-paths.outputs.go-version }}-mod-${{ hashFiles('**/go.mod', '**/go.sum') }}
- name: Install dependencies
run: |
sudo apt -y update && sudo apt -y install protobuf-compiler
- name: Create tarball
run: |
echo "Building with $(nproc) threads"
make tarball
- name: Upload tarball
uses: actions/upload-artifact@v3
with:
name: tarball-${{ matrix.go-version }}
path: nextcloud-spreed-signaling*.tar.gz
test:
strategy:
matrix:
go-version:
- "1.18"
- "1.19"
- "1.20"
runs-on: ubuntu-latest
needs: [create]
steps:
- uses: actions/setup-go@v3
with:
go-version: ${{ matrix.go-version }}
- name: Install dependencies
run: |
sudo apt -y update && sudo apt -y install protobuf-compiler
- name: Download tarball
uses: actions/download-artifact@v3
with:
name: tarball-${{ matrix.go-version }}
- name: Extract tarball
run: |
mkdir -p tmp
tar xf nextcloud-spreed-signaling*.tar.gz --strip-components=1 -C tmp
[ -d "tmp/vendor" ] || exit 1
- name: Build
env:
GOPROXY: off
run: |
echo "Building with $(nproc) threads"
make -C tmp build -j$(nproc)
- name: Run tests
env:
GOPROXY: off
run: |
make -C tmp test TIMEOUT=120s