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