func/.github/workflows/ci.yaml

79 lines
2.0 KiB
YAML

name: CI
on:
push:
branches:
- "main"
jobs:
test:
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@v2
- uses: actions/setup-go@v2
with:
go-version: "1.18"
- uses: actions/setup-java@v1
with:
java-version: '11'
- name: Check embedded templates content
run: go test -run "^\QTestFileSystems\E$/^\Qembedded\E$"
- name: Unit Test
run: make test
- name: Template Unit Tests
run: make test-templates
- name: Lint
run: make check
- name: Check that 'func.yaml schema' is up-to-date
run: make schema-check
build-and-publish:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-go@v2
with:
go-version: "1.18"
# Standard build tasks
- name: Build
run: make cross-platform
# Upload all build artifacts
- uses: actions/upload-artifact@v2
with:
name: OSX Binary (AMD)
path: func_darwin_amd64
- uses: actions/upload-artifact@v2
with:
name: OSX Binary (ARM)
path: func_darwin_arm64
- uses: actions/upload-artifact@v2
with:
name: Linux Binary (AMD)
path: func_linux_amd64
- uses: actions/upload-artifact@v2
with:
name: Linux Binary (ARM)
path: func_linux_arm64
- uses: actions/upload-artifact@v2
with:
name: Linux Binary (PPC64LE)
path: func_linux_ppc64le
- uses: actions/upload-artifact@v2
with:
name: Linux Binary (S390X)
path: func_linux_s390x
- uses: actions/upload-artifact@v2
with:
name: Windows Binary
path: func_windows_amd64.exe
publish-image:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-go@v2
with:
go-version: "1.18"
- uses: imjasonh/setup-ko@v0.6
- run: ko build -B ./cmd/func