diff --git a/.github/workflows/conformance.yml b/.github/workflows/conformance.yml index c3886c1..7c305bb 100644 --- a/.github/workflows/conformance.yml +++ b/.github/workflows/conformance.yml @@ -8,7 +8,29 @@ on: - master workflow_dispatch: jobs: + # Download the Go conformance client binary in it's own Github runner so that the version of Go used doesn't matter + download-conformance-client: + runs-on: ubuntu-latest + outputs: + cache-key: ${{ steps.resolve-latest-client.outputs.version }} + steps: + - name: Resolve latest client version + id: resolve-latest-client + uses: anniefu/functions-framework-conformance/.github/actions/client/resolve-latest@master + - name: Install client + uses: anniefu/functions-framework-conformance/.github/actions/client/install@master + with: + client-path: ~/client + client-key: ${{ steps.resolve-latest-client.outputs.version }} + # Make client retrievable by next job + - name: Cache client + uses: actions/cache@v3 + with: + path: ~/go/bin/client + key: ${{ steps.resolve-latest-client.outputs.version }} build: + needs: + - download-conformance-client runs-on: ubuntu-latest strategy: matrix: @@ -22,73 +44,78 @@ jobs: go-version: '${{ matrix.go-version }}' - name: Pre-fetch go dependencies and build run: 'go build ./...' - - name: Pre-install conformance test client - run: 'go get github.com/GoogleCloudPlatform/functions-framework-conformance/client@v1.3.1 && go install github.com/GoogleCloudPlatform/functions-framework-conformance/client' - - name: Run HTTP conformance tests - uses: GoogleCloudPlatform/functions-framework-conformance/action@v1.3.1 - with: - version: 'v1.3.1' - functionType: 'http' - useBuildpacks: false - cmd: "'go run testdata/conformance/cmd/http/main.go'" - startDelay: 5 - - name: Run event conformance tests - uses: GoogleCloudPlatform/functions-framework-conformance/action@v1.3.1 - with: - version: 'v1.3.1' - functionType: 'legacyevent' - validateMapping: true - useBuildpacks: false - cmd: "'go run testdata/conformance/cmd/legacyevent/main.go'" - startDelay: 5 - - name: Run CloudEvent conformance tests - uses: GoogleCloudPlatform/functions-framework-conformance/action@v1.3.1 - with: - version: 'v1.3.1' - functionType: 'cloudevent' - validateMapping: true - useBuildpacks: false - cmd: "'go run testdata/conformance/cmd/cloudevent/main.go'" - startDelay: 5 - - name: Run HTTP conformance tests using declarative API - uses: GoogleCloudPlatform/functions-framework-conformance/action@v1.3.1 - env: - FUNCTION_TARGET: 'declarativeHTTP' - with: - version: 'v1.3.1' - functionType: 'http' - useBuildpacks: false - cmd: "'go run testdata/conformance/cmd/declarative/main.go'" - startDelay: 5 - - name: Run CloudEvent conformance tests using declarative API - uses: GoogleCloudPlatform/functions-framework-conformance/action@v1.3.1 - env: - FUNCTION_TARGET: 'declarativeCloudEvent' - with: - version: 'v1.3.1' - functionType: 'cloudevent' - useBuildpacks: false - cmd: "'go run testdata/conformance/cmd/declarative/main.go'" - startDelay: 5 - - name: Run HTTP concurrency conformance tests - uses: GoogleCloudPlatform/functions-framework-conformance/action@v1.3.1 - env: - FUNCTION_TARGET: 'concurrentHTTP' - with: - version: 'v1.3.1' - functionType: 'http' - validateConcurrency: true - useBuildpacks: false - cmd: "'go run testdata/conformance/cmd/declarative/main.go'" - startDelay: 5 - - name: Run CloudEvent concurrency conformance tests - uses: GoogleCloudPlatform/functions-framework-conformance/action@v1.3.1 - env: - FUNCTION_TARGET: 'concurrentCloudEvent' + - name: Fetch conformance client + uses: actions/cache@v3 with: - version: 'v1.3.1' - functionType: 'cloudevent' - validateConcurrency: true - useBuildpacks: false - cmd: "'go run testdata/conformance/cmd/declarative/main.go'" - startDelay: 5 + path: ~/go/bin/client + key: ${{ needs.download-conformance-client.outputs.cache-key }} + - name: Run client + run: '~/go/bin/client' + # - name: Run HTTP conformance tests + # uses: GoogleCloudPlatform/functions-framework-conformance/action@v1.3.1 + # with: + # version: 'v1.3.1' + # functionType: 'http' + # useBuildpacks: false + # cmd: "'go run testdata/conformance/cmd/http/main.go'" + # startDelay: 5 + # - name: Run event conformance tests + # uses: GoogleCloudPlatform/functions-framework-conformance/action@v1.3.1 + # with: + # version: 'v1.3.1' + # functionType: 'legacyevent' + # validateMapping: true + # useBuildpacks: false + # cmd: "'go run testdata/conformance/cmd/legacyevent/main.go'" + # startDelay: 5 + # - name: Run CloudEvent conformance tests + # uses: GoogleCloudPlatform/functions-framework-conformance/action@v1.3.1 + # with: + # version: 'v1.3.1' + # functionType: 'cloudevent' + # validateMapping: true + # useBuildpacks: false + # cmd: "'go run testdata/conformance/cmd/cloudevent/main.go'" + # startDelay: 5 + # - name: Run HTTP conformance tests using declarative API + # uses: GoogleCloudPlatform/functions-framework-conformance/action@v1.3.1 + # env: + # FUNCTION_TARGET: 'declarativeHTTP' + # with: + # version: 'v1.3.1' + # functionType: 'http' + # useBuildpacks: false + # cmd: "'go run testdata/conformance/cmd/declarative/main.go'" + # startDelay: 5 + # - name: Run CloudEvent conformance tests using declarative API + # uses: GoogleCloudPlatform/functions-framework-conformance/action@v1.3.1 + # env: + # FUNCTION_TARGET: 'declarativeCloudEvent' + # with: + # version: 'v1.3.1' + # functionType: 'cloudevent' + # useBuildpacks: false + # cmd: "'go run testdata/conformance/cmd/declarative/main.go'" + # startDelay: 5 + # - name: Run HTTP concurrency conformance tests + # uses: GoogleCloudPlatform/functions-framework-conformance/action@v1.3.1 + # env: + # FUNCTION_TARGET: 'concurrentHTTP' + # with: + # version: 'v1.3.1' + # functionType: 'http' + # validateConcurrency: true + # useBuildpacks: false + # cmd: "'go run testdata/conformance/cmd/declarative/main.go'" + # startDelay: 5 + # - name: Run CloudEvent concurrency conformance tests + # uses: GoogleCloudPlatform/functions-framework-conformance/action@v1.3.1 + # env: + # FUNCTION_TARGET: 'concurrentCloudEvent' + # with: + # version: 'v1.3.1' + # functionType: 'cloudevent' + # validateConcurrency: true + # useBuildpacks: false + # cmd: "'go run testdata/conformance/cmd/declarative/main.go'" + # startDelay: 5 diff --git a/CHANGELOG.md b/CHANGELOG.md index b023376..372665f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## [1.6.0](https://github.com/GoogleCloudPlatform/functions-framework-go/compare/v1.5.3...v1.6.0) (2022-08-05) + + +### Features + +* Add release candidate validation ([#124](https://github.com/GoogleCloudPlatform/functions-framework-go/issues/124)) ([4f5e934](https://github.com/GoogleCloudPlatform/functions-framework-go/commit/4f5e9341b8a7ac43d7f18ad499ad326ff585ff06)) + + +### Bug Fixes + +* adding a check for null http handler before starting the server ([#138](https://github.com/GoogleCloudPlatform/functions-framework-go/issues/138)) ([5d5bf7a](https://github.com/GoogleCloudPlatform/functions-framework-go/commit/5d5bf7a741528b4a82cbe9c67f48425fe19be444)) +* Allow registering multiple functions with one server for local testing. ([#143](https://github.com/GoogleCloudPlatform/functions-framework-go/issues/143)) ([3cab285](https://github.com/GoogleCloudPlatform/functions-framework-go/commit/3cab285f11b6cafced19dd42756dca821a89dda7)) +* log CloudEvent function errors to stderr ([#132](https://github.com/GoogleCloudPlatform/functions-framework-go/issues/132)) ([ac973b4](https://github.com/GoogleCloudPlatform/functions-framework-go/commit/ac973b4343f4814abe811d65c0c08e4c0aa4c59e)) +* remove obsolete blank prints ([#144](https://github.com/GoogleCloudPlatform/functions-framework-go/issues/144)) ([5c7091f](https://github.com/GoogleCloudPlatform/functions-framework-go/commit/5c7091ff59ebcfd724cdd3c90f4b97c318696040)) + ### [1.5.3](https://github.com/GoogleCloudPlatform/functions-framework-go/compare/v1.5.2...v1.5.3) (2022-02-10)