Skip to content

allowing on cluster build for go runtime (#1445) #5

allowing on cluster build for go runtime (#1445)

allowing on cluster build for go runtime (#1445) #5

Workflow file for this run

name: CI
on:
push:
branches:
- "main"
jobs:
check:
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v3
with:
go-version: "1.20.2"
- name: Lint
run: make check && make check-templates
- name: Check that 'func.yaml schema' is up-to-date
run: make schema-check
- name: Check embedded templates content
run: go test -run "^\QTestFileSystems\E$/^\Qembedded\E$" ./pkg/filesystem
test-unit:
strategy:
matrix:
go: [ 1.20.2 ]
java: [ 17 ]
os: [ "ubuntu-latest", "windows-latest", "macos-latest" ]
runs-on: ${{ matrix.os }}
steps:
- run: git config --global core.autocrlf false
- uses: actions/checkout@v3
- uses: actions/setup-go@v3
with:
go-version: ${{ matrix.go }}
- uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
- name: Unit Test
run: make test
- name: Template Unit Tests
run: make test-templates
- uses: codecov/codecov-action@v3
with:
files: ./coverage.txt
flags: unit-tests-${{ matrix.os }}
test-integration:
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v3
with:
go-version: "1.20.2"
- name: Install Binaries
run: ./hack/binaries.sh
- name: Allocate Cluster
run: ./hack/allocate.sh
- name: Local Registry
run: ./hack/registry.sh
- name: Integration Tests
run: make test-integration
- uses: codecov/codecov-action@v3
with:
files: ./coverage.txt
flags: integration-tests
e2e-test:
strategy:
matrix:
go: [1.20.2]
os: ["ubuntu-latest"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v3
with:
go-version: ${{ matrix.go }}
- name: Install Binaries
run: ./hack/binaries.sh
- name: Allocate Cluster
run: ./hack/allocate.sh
- name: Local Registry
run: ./hack/registry.sh
- name: E2E Test
run: make test-e2e
- uses: codecov/codecov-action@v3
with:
files: ./coverage.txt
flags: e2e-test
e2e-on-cluster-test:
strategy:
matrix:
go: [1.20.2]
os: ["ubuntu-latest"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v3
with:
go-version: ${{ matrix.go }}
- uses: imjasonh/setup-ko@v0.6
- name: Install Binaries
run: ./hack/binaries.sh
- name: Setup testing func image
run: ./hack/create-testing-func-image.sh
- name: Allocate Cluster
run: ./hack/allocate.sh
- name: Deploy Tekton
run: ./hack/tekton.sh
- name: Deploy Test Git Server
run: ./test/gitserver.sh
- name: E2E On Cluster Test
env:
E2E_RUNTIMES: ""
run: make test-e2e-on-cluster
- uses: codecov/codecov-action@v3
with:
files: ./coverage.txt
flags: e2e-test-oncluster
build:
needs: [check, test-unit, test-integration, e2e-test, e2e-on-cluster-test]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v3
with:
go-version: "1.20.2"
# 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: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v3
with:
go-version: "1.20.2"
- uses: imjasonh/setup-ko@v0.6
- run: ko build -B ./cmd/func