Skip to content

Update community files (#2484) #1500

Update community files (#2484)

Update community files (#2484) #1500

Workflow file for this run

name: CI
on:
push:
branches:
- "main"
jobs:
check:
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@v4
- uses: ./.github/composite/go-setup
- 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:
java: [ 21 ]
os: [ "ubuntu-latest", "windows-latest", "macos-latest" ]
runs-on: ${{ matrix.os }}
steps:
- run: git config --global core.autocrlf false
- uses: actions/checkout@v4
- uses: ./.github/composite/go-setup
- uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java }}
distribution: 'temurin'
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Unit Test
run: make test
- name: Template Unit Tests
run: make test-templates
- uses: codecov/codecov-action@v4
with:
files: ./coverage.txt
flags: unit-tests-${{ matrix.os }}
fail_ci_if_error: true
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}
test-integration:
runs-on: "ubuntu-latest"
steps:
- name: Set Environment Variables
run: |
echo "KUBECONFIG=${{ github.workspace }}/hack/bin/kubeconfig.yaml" >> "$GITHUB_ENV"
echo "PATH=${{ github.workspace }}/hack/bin:$PATH" >> "$GITHUB_ENV"
- uses: actions/checkout@v4
- uses: ./.github/composite/go-setup
- name: Install Binaries
run: ./hack/install-binaries.sh
- name: Allocate Cluster
run: ./hack/allocate.sh
- name: Local Registry
run: ./hack/registry.sh
- name: Setup testing images
run: ./hack/setup-testing-images.sh
- name: Integration Tests
run: make test-integration
- uses: codecov/codecov-action@v4
with:
files: ./coverage.txt
flags: integration-tests
fail_ci_if_error: true
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}
e2e-test:
strategy:
matrix:
os: ["ubuntu-latest"]
runs-on: ${{ matrix.os }}
steps:
- name: Set Environment Variables
run: |
echo "KUBECONFIG=${{ github.workspace }}/hack/bin/kubeconfig.yaml" >> "$GITHUB_ENV"
echo "PATH=${{ github.workspace }}/hack/bin:$PATH" >> "$GITHUB_ENV"
- uses: actions/checkout@v4
- uses: ./.github/composite/go-setup
- name: Install Binaries
run: ./hack/install-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@v4
with:
files: ./coverage.txt
flags: e2e-test
fail_ci_if_error: true
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}
e2e-on-cluster-test:
strategy:
matrix:
os: ["ubuntu-latest"]
runs-on: ${{ matrix.os }}
steps:
- name: Set Environment Variables
run: |
echo "KUBECONFIG=${{ github.workspace }}/hack/bin/kubeconfig.yaml" >> "$GITHUB_ENV"
echo "PATH=${{ github.workspace }}/hack/bin:$PATH" >> "$GITHUB_ENV"
- uses: actions/checkout@v4
- uses: ./.github/composite/go-setup
- uses: imjasonh/[email protected]
- name: Install Binaries
run: ./hack/install-binaries.sh
- name: Allocate Cluster
run: ./hack/allocate.sh
- name: Setup testing images
run: ./hack/setup-testing-images.sh
- name: Deploy Tekton
run: ./hack/install-tekton.sh
- name: Deploy Test Git Server
run: ./hack/install-git-server.sh
- name: E2E On Cluster Test
env:
E2E_RUNTIMES: ""
run: make test-e2e-on-cluster
- uses: codecov/codecov-action@v4
with:
files: ./coverage.txt
flags: e2e-test-oncluster
fail_ci_if_error: true
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}
build:
needs: [check, test-unit, test-integration, e2e-test, e2e-on-cluster-test]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/composite/go-setup
# Standard build tasks
- name: Build
run: make cross-platform
# Upload all build artifacts
- uses: actions/upload-artifact@v4
with:
name: OSX Binary (AMD)
path: func_darwin_amd64
- uses: actions/upload-artifact@v4
with:
name: OSX Binary (ARM)
path: func_darwin_arm64
- uses: actions/upload-artifact@v4
with:
name: Linux Binary (AMD)
path: func_linux_amd64
- uses: actions/upload-artifact@v4
with:
name: Linux Binary (ARM)
path: func_linux_arm64
- uses: actions/upload-artifact@v4
with:
name: Linux Binary (PPC64LE)
path: func_linux_ppc64le
- uses: actions/upload-artifact@v4
with:
name: Linux Binary (S390X)
path: func_linux_s390x
- uses: actions/upload-artifact@v4
with:
name: Windows Binary
path: func_windows_amd64.exe
publish-utils-image:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
run: |
docker buildx create --name multiarch --driver docker-container --use
docker buildx build . -f Dockerfile.utils \
--platform=linux/ppc64le,linux/s390x,linux/amd64,linux/arm64 \
--push \
-t "ghcr.io/knative/func-utils:latest" \
--annotation index:org.opencontainers.image.description="Knative Func Utils Image" \
--annotation index:org.opencontainers.image.source="https://github.com/knative/func" \
--annotation index:org.opencontainers.image.vendor="https://github.com/knative/func" \
--annotation index:org.opencontainers.image.url="https://github.com/knative/func/pkgs/container/func-utils"
publish-image:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/composite/go-setup
- uses: imjasonh/[email protected]
- run: ko build --platform=linux/ppc64le,linux/s390x,linux/amd64,linux/arm64 -B ./cmd/func