version: 2 env: - GHCR_REPO=ghcr.io/fission project_name: fission release: github: owner: fission name: fission prerelease: "true" draft: true header: | Release Highlights: https://fission.io/docs/releases/{{ .Tag }}/ Install Guide: https://fission.io/docs/installation/ extra_files: - glob: ./manifest/charts/* - glob: ./manifest/yamls/* before: hooks: - go mod tidy snapshot: version_template: "{{ .Tag }}" builds: - &build-linux id: builder ldflags: - -s -w - -X github.com/fission/fission/pkg/info.GitCommit={{.ShortCommit}} - -X github.com/fission/fission/pkg/info.BuildDate={{.Date}} - -X github.com/fission/fission/pkg/info.Version={{.Tag}} gcflags: - all=-trimpath={{ if index .Env "GITHUB_WORKSPACE"}}{{ .Env.GITHUB_WORKSPACE }}{{ else }}{{ .Env.PWD }}{{ end }} asmflags: - all=-trimpath={{ if index .Env "GITHUB_WORKSPACE"}}{{ .Env.GITHUB_WORKSPACE }}{{ else }}{{ .Env.PWD }}{{ end }} env: - CGO_ENABLED=0 goos: - linux goarch: - amd64 - arm64 binary: builder dir: ./cmd/builder - <<: *build-linux id: fetcher binary: fetcher dir: ./cmd/fetcher - <<: *build-linux id: fission-bundle binary: fission-bundle dir: ./cmd/fission-bundle - <<: *build-linux id: fission-cli goos: - linux - windows - darwin binary: fission dir: ./cmd/fission-cli ignore: - goos: windows goarch: arm64 - <<: *build-linux id: pre-upgrade-checks binary: pre-upgrade-checks dir: ./cmd/preupgradechecks - <<: *build-linux id: reporter binary: reporter dir: ./cmd/reporter dockers: - &docker-amd64 use: buildx goos: linux goarch: amd64 ids: - builder image_templates: - "{{ .Env.GHCR_REPO }}/builder:latest-amd64" - "{{ .Env.GHCR_REPO }}/builder:{{ .Tag }}-amd64" dockerfile: cmd/builder/Dockerfile build_flag_templates: - "--label=org.opencontainers.image.description=The builder assists in building the fission function source code for deployment." - "--label=org.opencontainers.image.source={{.GitURL}}" - "--platform=linux/amd64" - "--label=org.opencontainers.image.created={{.Date}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - "--label=org.opencontainers.image.version={{.Tag}}" - "--label=org.opencontainers.image.authors=The Fission Authors https://fission.io/" - "--label=org.opencontainers.image.vendor=Fission" - "--label=org.opencontainers.image.url=https://fission.io/" - <<: *docker-amd64 ids: - fetcher image_templates: - "{{ .Env.GHCR_REPO }}/fetcher:latest-amd64" - "{{ .Env.GHCR_REPO }}/fetcher:{{ .Tag }}-amd64" dockerfile: cmd/fetcher/Dockerfile build_flag_templates: - "--label=org.opencontainers.image.description=Fetcher is a lightweight component used by environment and builder pods. Fetcher helps in fetch and upload of source/deployment packages and specializing environments." - "--label=org.opencontainers.image.source={{.GitURL}}" - "--platform=linux/amd64" - "--label=org.opencontainers.image.created={{.Date}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - "--label=org.opencontainers.image.version={{.Tag}}" - "--label=org.opencontainers.image.authors=The Fission Authors https://fission.io/" - "--label=org.opencontainers.image.vendor=Fission" - "--label=org.opencontainers.image.url=https://fission.io/" - <<: *docker-amd64 ids: - fission-bundle image_templates: - "{{ .Env.GHCR_REPO }}/fission-bundle:latest-amd64" - "{{ .Env.GHCR_REPO }}/fission-bundle:{{ .Tag }}-amd64" dockerfile: cmd/fission-bundle/Dockerfile build_flag_templates: - "--label=org.opencontainers.image.description=fission-bundle is a component which is a single binary for all components. Most server side components running on server side are fission-bundle binary wrapped in container and used with different arguments." - "--label=org.opencontainers.image.source={{.GitURL}}" - "--platform=linux/amd64" - "--label=org.opencontainers.image.created={{.Date}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - "--label=org.opencontainers.image.version={{.Tag}}" - "--label=org.opencontainers.image.authors=The Fission Authors https://fission.io/" - "--label=org.opencontainers.image.vendor=Fission" - "--label=org.opencontainers.image.url=https://fission.io/" - <<: *docker-amd64 ids: - pre-upgrade-checks image_templates: - "{{ .Env.GHCR_REPO }}/pre-upgrade-checks:latest-amd64" - "{{ .Env.GHCR_REPO }}/pre-upgrade-checks:{{ .Tag }}-amd64" dockerfile: cmd/preupgradechecks/Dockerfile build_flag_templates: - "--label=org.opencontainers.image.description=Preupgradechecks ensures that Fission is ready for the targeted version upgrade by performing checks beforehand." - "--label=org.opencontainers.image.source={{.GitURL}}" - "--platform=linux/amd64" - "--label=org.opencontainers.image.created={{.Date}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - "--label=org.opencontainers.image.version={{.Tag}}" - "--label=org.opencontainers.image.authors=The Fission Authors https://fission.io/" - "--label=org.opencontainers.image.vendor=Fission" - "--label=org.opencontainers.image.url=https://fission.io/" - <<: *docker-amd64 ids: - reporter image_templates: - "{{ .Env.GHCR_REPO }}/reporter:latest-amd64" - "{{ .Env.GHCR_REPO }}/reporter:{{ .Tag }}-amd64" dockerfile: cmd/reporter/Dockerfile build_flag_templates: - "--label=org.opencontainers.image.description=The reporter gathers information that assists in improving fission." - "--label=org.opencontainers.image.source={{.GitURL}}" - "--platform=linux/amd64" - "--label=org.opencontainers.image.created={{.Date}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - "--label=org.opencontainers.image.version={{.Tag}}" - "--label=org.opencontainers.image.authors=The Fission Authors https://fission.io/" - "--label=org.opencontainers.image.vendor=Fission" - "--label=org.opencontainers.image.url=https://fission.io/" - &docker-arm64 use: buildx goos: linux goarch: arm64 ids: - builder image_templates: - "{{ .Env.GHCR_REPO }}/builder:latest-arm64" - "{{ .Env.GHCR_REPO }}/builder:{{ .Tag }}-arm64" dockerfile: cmd/builder/Dockerfile build_flag_templates: - "--label=org.opencontainers.image.description=The builder assists in building the fission function source code for deployment." - "--label=org.opencontainers.image.source={{.GitURL}}" - "--platform=linux/arm64" - "--label=org.opencontainers.image.created={{.Date}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - "--label=org.opencontainers.image.version={{.Tag}}" - "--label=org.opencontainers.image.authors=The Fission Authors https://fission.io/" - "--label=org.opencontainers.image.vendor=Fission" - "--label=org.opencontainers.image.url=https://fission.io/" - <<: *docker-arm64 ids: - fetcher image_templates: - "{{ .Env.GHCR_REPO }}/fetcher:latest-arm64" - "{{ .Env.GHCR_REPO }}/fetcher:{{ .Tag }}-arm64" dockerfile: cmd/fetcher/Dockerfile build_flag_templates: - "--label=org.opencontainers.image.description=Fetcher is a lightweight component used by environment and builder pods. Fetcher helps in fetch and upload of source/deployment packages and specializing environments." - "--label=org.opencontainers.image.source={{.GitURL}}" - "--platform=linux/arm64" - "--label=org.opencontainers.image.created={{.Date}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - "--label=org.opencontainers.image.version={{.Tag}}" - "--label=org.opencontainers.image.authors=The Fission Authors https://fission.io/" - "--label=org.opencontainers.image.vendor=Fission" - "--label=org.opencontainers.image.url=https://fission.io/" - <<: *docker-arm64 ids: - fission-bundle image_templates: - "{{ .Env.GHCR_REPO }}/fission-bundle:latest-arm64" - "{{ .Env.GHCR_REPO }}/fission-bundle:{{ .Tag }}-arm64" dockerfile: cmd/fission-bundle/Dockerfile build_flag_templates: - "--label=org.opencontainers.image.description=fission-bundle is a component which is a single binary for all components. Most server side components running on server side are fission-bundle binary wrapped in container and used with different arguments." - "--label=org.opencontainers.image.source={{.GitURL}}" - "--platform=linux/arm64" - "--label=org.opencontainers.image.created={{.Date}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - "--label=org.opencontainers.image.version={{.Tag}}" - "--label=org.opencontainers.image.authors=The Fission Authors https://fission.io/" - "--label=org.opencontainers.image.vendor=Fission" - "--label=org.opencontainers.image.url=https://fission.io/" - <<: *docker-arm64 ids: - pre-upgrade-checks image_templates: - "{{ .Env.GHCR_REPO }}/pre-upgrade-checks:latest-arm64" - "{{ .Env.GHCR_REPO }}/pre-upgrade-checks:{{ .Tag }}-arm64" dockerfile: cmd/preupgradechecks/Dockerfile build_flag_templates: - "--label=org.opencontainers.image.description=Preupgradechecks ensures that Fission is ready for the targeted version upgrade by performing checks beforehand." - "--label=org.opencontainers.image.source={{.GitURL}}" - "--platform=linux/arm64" - "--label=org.opencontainers.image.created={{.Date}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - "--label=org.opencontainers.image.version={{.Tag}}" - "--label=org.opencontainers.image.authors=The Fission Authors https://fission.io/" - "--label=org.opencontainers.image.vendor=Fission" - "--label=org.opencontainers.image.url=https://fission.io/" - <<: *docker-arm64 ids: - reporter image_templates: - "{{ .Env.GHCR_REPO }}/reporter:latest-arm64" - "{{ .Env.GHCR_REPO }}/reporter:{{ .Tag }}-arm64" dockerfile: cmd/reporter/Dockerfile build_flag_templates: - "--label=org.opencontainers.image.description=The reporter gathers information that assists in improving fission." - "--label=org.opencontainers.image.source={{.GitURL}}" - "--platform=linux/arm64" - "--label=org.opencontainers.image.created={{.Date}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - "--label=org.opencontainers.image.version={{.Tag}}" - "--label=org.opencontainers.image.authors=The Fission Authors https://fission.io/" - "--label=org.opencontainers.image.vendor=Fission" - "--label=org.opencontainers.image.url=https://fission.io/" docker_manifests: - name_template: "{{ .Env.GHCR_REPO }}/builder:{{ .Tag }}" image_templates: - "{{ .Env.GHCR_REPO }}/builder:{{ .Tag }}-amd64" - "{{ .Env.GHCR_REPO }}/builder:{{ .Tag }}-arm64" - name_template: "{{ .Env.GHCR_REPO }}/fetcher:{{ .Tag }}" image_templates: - "{{ .Env.GHCR_REPO }}/fetcher:{{ .Tag }}-amd64" - "{{ .Env.GHCR_REPO }}/fetcher:{{ .Tag }}-arm64" - name_template: "{{ .Env.GHCR_REPO }}/fission-bundle:{{ .Tag }}" image_templates: - "{{ .Env.GHCR_REPO }}/fission-bundle:{{ .Tag }}-amd64" - "{{ .Env.GHCR_REPO }}/fission-bundle:{{ .Tag }}-arm64" - name_template: "{{ .Env.GHCR_REPO }}/pre-upgrade-checks:{{ .Tag }}" image_templates: - "{{ .Env.GHCR_REPO }}/pre-upgrade-checks:{{ .Tag }}-amd64" - "{{ .Env.GHCR_REPO }}/pre-upgrade-checks:{{ .Tag }}-arm64" - name_template: "{{ .Env.GHCR_REPO }}/reporter:{{ .Tag }}" image_templates: - "{{ .Env.GHCR_REPO }}/reporter:{{ .Tag }}-amd64" - "{{ .Env.GHCR_REPO }}/reporter:{{ .Tag }}-arm64" - name_template: "{{ .Env.GHCR_REPO }}/builder:latest" image_templates: - "{{ .Env.GHCR_REPO }}/builder:latest-amd64" - "{{ .Env.GHCR_REPO }}/builder:latest-arm64" - name_template: "{{ .Env.GHCR_REPO }}/fetcher:latest" image_templates: - "{{ .Env.GHCR_REPO }}/fetcher:latest-amd64" - "{{ .Env.GHCR_REPO }}/fetcher:latest-arm64" - name_template: "{{ .Env.GHCR_REPO }}/fission-bundle:latest" image_templates: - "{{ .Env.GHCR_REPO }}/fission-bundle:latest-amd64" - "{{ .Env.GHCR_REPO }}/fission-bundle:latest-arm64" - name_template: "{{ .Env.GHCR_REPO }}/pre-upgrade-checks:latest" image_templates: - "{{ .Env.GHCR_REPO }}/pre-upgrade-checks:latest-amd64" - "{{ .Env.GHCR_REPO }}/pre-upgrade-checks:latest-arm64" - name_template: "{{ .Env.GHCR_REPO }}/reporter:latest" image_templates: - "{{ .Env.GHCR_REPO }}/reporter:latest-amd64" - "{{ .Env.GHCR_REPO }}/reporter:latest-arm64" changelog: disable: true archives: - id: fission builds: - fission-cli name_template: "{{ .ProjectName }}-{{ .Tag }}-{{ .Os }}-{{ .Arch }}" format: binary checksum: name_template: "checksums.txt" algorithm: sha256 # signs the checksum file # https://goreleaser.com/customization/sign signs: - id: cosign-binary env: - COSIGN_EXPERIMENTAL=1 certificate: "${artifact}.pem" cmd: cosign artifacts: binary args: - sign-blob - "--output-signature=${signature}" - "--output-certificate=${certificate}" - "${artifact}" - "--yes" # needed for cosign 2.0.0+ # signs our docker image # https://goreleaser.com/customization/docker_sign docker_signs: - cmd: cosign env: - COSIGN_EXPERIMENTAL=1 artifacts: all args: - sign - "${artifact}" - "--yes" # needed for cosign 2.0.0+ sboms: - artifacts: archive id: archive - artifacts: source id: source - artifacts: binary id: binary - artifacts: package id: package