From ff2918978c46e74b11f494fbd34af538cc7d5a38 Mon Sep 17 00:00:00 2001 From: Nic Cope Date: Fri, 20 Oct 2023 16:09:00 -0700 Subject: [PATCH 01/15] Remove codeql It needs setup at the repo level, which might be a bit much to expect new Functions to do by default. Signed-off-by: Nic Cope --- .github/workflows/ci.yml | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5b87291..70217fe 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,25 +37,6 @@ jobs: with: version: ${{ env.GOLANGCI_VERSION }} - codeql: - runs-on: ubuntu-22.04 - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup Go - uses: actions/setup-go@v4 - with: - go-version: ${{ env.GO_VERSION }} - - - name: Initialize CodeQL - uses: github/codeql-action/init@v2 - with: - languages: go - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 - unit-tests: runs-on: ubuntu-22.04 From a22772a3319549bae1ab8350877b4778a6492270 Mon Sep 17 00:00:00 2001 From: Nic Cope Date: Fri, 20 Oct 2023 16:09:38 -0700 Subject: [PATCH 02/15] Remove PPC target Looks like distroless doesn't have a PPC target. Signed-off-by: Nic Cope --- .github/workflows/ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 70217fe..42f94ac 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -63,7 +63,6 @@ jobs: platform: - linux/amd64 - linux/arm64 - - linux/ppc641e steps: - name: Setup QEMU From c9a5c3018837bf71a3b841c831e51757fe37a8fa Mon Sep 17 00:00:00 2001 From: Nic Cope Date: Fri, 20 Oct 2023 16:38:50 -0700 Subject: [PATCH 03/15] Fix linter sadness Signed-off-by: Nic Cope --- fn.go | 5 +++-- patches_test.go | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/fn.go b/fn.go index 0fc0860..7161787 100644 --- a/fn.go +++ b/fn.go @@ -3,11 +3,12 @@ package main import ( "context" + "google.golang.org/protobuf/types/known/structpb" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "github.com/crossplane/crossplane-runtime/pkg/errors" "github.com/crossplane/crossplane-runtime/pkg/logging" "github.com/crossplane/crossplane-runtime/pkg/reconciler/managed" - "google.golang.org/protobuf/types/known/structpb" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" fncontext "github.com/crossplane/function-sdk-go/context" fnv1beta1 "github.com/crossplane/function-sdk-go/proto/v1beta1" diff --git a/patches_test.go b/patches_test.go index 9042774..9c702af 100644 --- a/patches_test.go +++ b/patches_test.go @@ -14,6 +14,7 @@ import ( "github.com/crossplane/crossplane-runtime/pkg/resource" "github.com/crossplane/crossplane-runtime/pkg/resource/unstructured/composed" "github.com/crossplane/crossplane-runtime/pkg/test" + "github.com/crossplane/function-sdk-go/resource/composite" "github.com/crossplane-contrib/function-patch-and-transform/input/v1beta1" From 78fbc00c37b6e1d249b04541c49518d95950a156 Mon Sep 17 00:00:00 2001 From: Nic Cope Date: Fri, 20 Oct 2023 22:02:22 -0700 Subject: [PATCH 04/15] Use the GitHub Actions Docker build cache backend Signed-off-by: Nic Cope --- .github/workflows/ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 42f94ac..b6055df 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,6 +31,7 @@ jobs: uses: actions/setup-go@v4 with: go-version: ${{ env.GO_VERSION }} + cache: false # The golangci-lint action does its own caching. - name: Lint uses: golangci/golangci-lint-action@v3 @@ -89,7 +90,8 @@ jobs: with: context: . platforms: ${{ matrix.platform }} - + cache-from: type=gha + cache-to: type=gha,mode=max # TODO(negz): Build Function package using Crossplane CLI. From 50da619ffbd771652e7390cbc9128c67d1c2f32a Mon Sep 17 00:00:00 2001 From: Nic Cope Date: Fri, 20 Oct 2023 22:05:04 -0700 Subject: [PATCH 05/15] Don't setup Go for the package build We build inside Docker, so don't need it. Signed-off-by: Nic Cope --- .github/workflows/ci.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b6055df..edb7fbe 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -80,11 +80,6 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Setup Go - uses: actions/setup-go@v4 - with: - go-version: ${{ env.GO_VERSION }} - - name: Build Function Runtime uses: docker/build-push-action@v5 with: From ed116baed88e9b3c82bb1bbe7081896c100e4b97 Mon Sep 17 00:00:00 2001 From: Nic Cope Date: Sat, 21 Oct 2023 00:04:11 -0700 Subject: [PATCH 06/15] Tweak Docker caching Signed-off-by: Nic Cope --- .github/workflows/ci.yml | 6 ++++-- Dockerfile | 38 ++++++++++++++++++++++---------------- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index edb7fbe..cca2116 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,8 +44,6 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 - with: - submodules: true - name: Setup Go uses: actions/setup-go@v4 @@ -87,6 +85,10 @@ jobs: platforms: ${{ matrix.platform }} cache-from: type=gha cache-to: type=gha,mode=max + target: image + build-args: + GO_VERSION=${{ env.GO_VERSION }} + load: true # TODO(negz): Build Function package using Crossplane CLI. diff --git a/Dockerfile b/Dockerfile index d1db681..5b4def2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,23 +1,29 @@ -FROM golang:1.20 as build-stage +# syntax=docker/dockerfile:1 -WORKDIR /fn - -COPY go.mod go.sum ./ -RUN go mod download +# We use the latest Go 1.x version unless asked to use something else. +ARG GO_VERSION=1 -COPY input/ ./input -COPY *.go ./ +# Setup the base environment. +FROM golang:${GO_VERSION} AS base -RUN CGO_ENABLED=0 go build -o /function . - -FROM gcr.io/distroless/base-debian11 AS build-release-stage +WORKDIR /fn +ENV CGO_ENABLED=0 +COPY go.mod go.sum ./ +RUN --mount=type=cache,target=/go/pkg/mod \ + go mod download + +# Build the Function. +FROM base AS build +RUN --mount=target=. \ + --mount=type=cache,target=/go/pkg/mod \ + --mount=type=cache,target=/root/.cache/go-build \ + go build -o /function . + +# Produce the Function image. +FROM gcr.io/distroless/base-debian11 AS image WORKDIR / - -COPY --from=build-stage /function /function - +COPY --from=build /function /function EXPOSE 9443 - USER nonroot:nonroot - -ENTRYPOINT ["/function"] \ No newline at end of file +ENTRYPOINT ["/function"] From 95dee533a4e9fb54ada9dfb8aa6b666601a029d6 Mon Sep 17 00:00:00 2001 From: Nic Cope Date: Sat, 21 Oct 2023 00:24:04 -0700 Subject: [PATCH 07/15] Build an xpkg Signed-off-by: Nic Cope --- .github/workflows/ci.yml | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cca2116..f5959c0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ env: # Common versions GO_VERSION: '1.21.3' GOLANGCI_VERSION: 'v1.54.2' - DOCKER_BUILDX_VERSION: 'v0.10.0' + DOCKER_BUILDX_VERSION: 'v0.11.2' # Common users. We can't run a step 'if secrets.AWS_USR != ""' but we can run # a step 'if env.AWS_USR' != ""', so we copy these to succinctly test whether @@ -78,7 +78,8 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Build Function Runtime + - name: Build Runtime + id: image uses: docker/build-push-action@v5 with: context: . @@ -89,9 +90,21 @@ jobs: build-args: GO_VERSION=${{ env.GO_VERSION }} load: true + tags: function/runtime:${{ github.sha }} + + # TODO(negz): Use the crossplane-contrib/xpkg-action for this? It doesn't + # currently do anything other than download the CLI and run a command. + - name: Setup the Crossplane CLI + run: "curl -sL https://raw.githubusercontent.com/crossplane/crossplane/master/install.sh | sh" + env: + XP_CHANNEL: master + XP_VERSION: current + + # TODO(negz): We must pass index.docker.io explicitly until + # https://github.com/crossplane/crossplane/pull/4867 is fixed. + - name: Build Package + run: ./crossplane xpkg build --package-root=package/ --embed-runtime-image=index.docker.io/function/runtime:${{ github.sha }} - # TODO(negz): Build Function package using Crossplane CLI. - - name: Login to Upbound uses: docker/login-action@v3 if: env.XPKG_PUSH_ROBOT_USR != '' From b9c327343ee4eb4a549a5bf020bf0d5d3e6375d1 Mon Sep 17 00:00:00 2001 From: Nic Cope Date: Sat, 21 Oct 2023 18:20:01 -0700 Subject: [PATCH 08/15] Use Go's native cross-compile support instead of emulation Signed-off-by: Nic Cope --- Dockerfile | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5b4def2..6ae4d7d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,23 +2,24 @@ # We use the latest Go 1.x version unless asked to use something else. ARG GO_VERSION=1 +ARG TARGETOS +ARG TARGETARCH # Setup the base environment. -FROM golang:${GO_VERSION} AS base +FROM --platform=${BUILDPLATFORM} golang:${GO_VERSION} AS base WORKDIR /fn ENV CGO_ENABLED=0 COPY go.mod go.sum ./ -RUN --mount=type=cache,target=/go/pkg/mod \ - go mod download +RUN --mount=type=cache,target=/go/pkg/mod go mod download # Build the Function. FROM base AS build RUN --mount=target=. \ --mount=type=cache,target=/go/pkg/mod \ --mount=type=cache,target=/root/.cache/go-build \ - go build -o /function . + GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -o /function . # Produce the Function image. FROM gcr.io/distroless/base-debian11 AS image From 8ed59898c8cede2cfd1a2f5ddebeb9bc886aac91 Mon Sep 17 00:00:00 2001 From: Nic Cope Date: Sat, 21 Oct 2023 21:29:44 -0700 Subject: [PATCH 09/15] Pass runtime image as a tarball instead Signed-off-by: Nic Cope --- .github/workflows/ci.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f5959c0..386223a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -89,8 +89,7 @@ jobs: target: image build-args: GO_VERSION=${{ env.GO_VERSION }} - load: true - tags: function/runtime:${{ github.sha }} + outputs: type=docker,dest=runtime.tar # TODO(negz): Use the crossplane-contrib/xpkg-action for this? It doesn't # currently do anything other than download the CLI and run a command. @@ -100,10 +99,8 @@ jobs: XP_CHANNEL: master XP_VERSION: current - # TODO(negz): We must pass index.docker.io explicitly until - # https://github.com/crossplane/crossplane/pull/4867 is fixed. - name: Build Package - run: ./crossplane xpkg build --package-root=package/ --embed-runtime-image=index.docker.io/function/runtime:${{ github.sha }} + run: ./crossplane xpkg build --package-root=package/ --embed-runtime-image-tarball=runtime.tar - name: Login to Upbound uses: docker/login-action@v3 From 0aaa7384052e47dcab413b45ce52e9d6de0823ae Mon Sep 17 00:00:00 2001 From: Nic Cope Date: Sat, 21 Oct 2023 21:48:37 -0700 Subject: [PATCH 10/15] Load packages into a separate push stage Signed-off-by: Nic Cope --- .github/workflows/ci.yml | 41 ++++++++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 386223a..a917ac9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,7 +20,6 @@ env: XPKG_PUSH_ROBOT_USR: ${{ secrets.XPKG_PUSH_ROBOT_USR }} jobs: - lint: runs-on: ubuntu-22.04 steps: @@ -38,9 +37,8 @@ jobs: with: version: ${{ env.GOLANGCI_VERSION }} - unit-tests: + unit-test: runs-on: ubuntu-22.04 - steps: - name: Checkout uses: actions/checkout@v4 @@ -53,16 +51,14 @@ jobs: - name: Run Unit Tests run: go test -v -cover ./... - push-package: + build: runs-on: ubuntu-22.04 - strategy: fail-fast: true matrix: - platform: - - linux/amd64 - - linux/arm64 - + arch: + - amd64 + - arm64 steps: - name: Setup QEMU uses: docker/setup-qemu-action@v3 @@ -83,7 +79,7 @@ jobs: uses: docker/build-push-action@v5 with: context: . - platforms: ${{ matrix.platform }} + platforms: linux/${{ matrix.arch }} cache-from: type=gha cache-to: type=gha,mode=max target: image @@ -91,8 +87,6 @@ jobs: GO_VERSION=${{ env.GO_VERSION }} outputs: type=docker,dest=runtime.tar - # TODO(negz): Use the crossplane-contrib/xpkg-action for this? It doesn't - # currently do anything other than download the CLI and run a command. - name: Setup the Crossplane CLI run: "curl -sL https://raw.githubusercontent.com/crossplane/crossplane/master/install.sh | sh" env: @@ -100,12 +94,31 @@ jobs: XP_VERSION: current - name: Build Package - run: ./crossplane xpkg build --package-root=package/ --embed-runtime-image-tarball=runtime.tar + run: ./crossplane xpkg build --package-file=${{ matrix.arch }}.xpkg --package-root=package/ --embed-runtime-image-tarball=runtime.tar + - name: Upload Package + uses: actions/upload-artifact@v3 + with: + name: packages + path: "*.xpkg" + if-no-files-found: error + retention-days: 1 + + push: + runs-on: ubuntu-22.04 + needs: + - build + steps: + - name: Download Packages + uses: actions/download-artifact@v3 + with: + name: packages + path: . + - name: Login to Upbound uses: docker/login-action@v3 if: env.XPKG_PUSH_ROBOT_USR != '' with: registry: xpkg.upbound.io username: ${{ secrets.XPKG_PUSH_ROBOT_USR }} - password: ${{ secrets.XPKG_PUSH_ROBOT_PSW }} + password: ${{ secrets.XPKG_PUSH_ROBOT_PSW }} \ No newline at end of file From 55b1c4f760a9299561f494e2632032c7f8a28ef0 Mon Sep 17 00:00:00 2001 From: Nic Cope Date: Sat, 21 Oct 2023 22:52:21 -0700 Subject: [PATCH 11/15] WIP: Push multi-arch package Signed-off-by: Nic Cope --- .github/workflows/ci.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a917ac9..8ffb76c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -109,7 +109,7 @@ jobs: needs: - build steps: - - name: Download Packages + - name: Download Single-Architecture Packages uses: actions/download-artifact@v3 with: name: packages @@ -121,4 +121,10 @@ jobs: with: registry: xpkg.upbound.io username: ${{ secrets.XPKG_PUSH_ROBOT_USR }} - password: ${{ secrets.XPKG_PUSH_ROBOT_PSW }} \ No newline at end of file + password: ${{ secrets.XPKG_PUSH_ROBOT_PSW }} + + - name: Push Multi-Architecture Package to Upbound + if: env.XPKG_PUSH_ROBOT_USR != '' + # TODO(negz): We need to support pushing multiple packages to create a + # multi-arch package. + run: ./crossplane xpkg push ... \ No newline at end of file From ecb249fbac917f0845abb241dfde468e6cfb7ab8 Mon Sep 17 00:00:00 2001 From: Nic Cope Date: Sun, 22 Oct 2023 16:02:15 -0700 Subject: [PATCH 12/15] Push a multi-platform package Signed-off-by: Nic Cope --- .github/workflows/ci.yml | 38 ++++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8ffb76c..35147d1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,19 +6,29 @@ on: - main - release-* pull_request: {} - workflow_dispatch: {} + workflow_dispatch: + inputs: + version: + description: Package version (e.g. v0.1.0) + required: false env: # Common versions GO_VERSION: '1.21.3' GOLANGCI_VERSION: 'v1.54.2' DOCKER_BUILDX_VERSION: 'v0.11.2' + XP_CHANNEL: master # TODO(negz): Pin to stable once v1.14 is released. + XP_VERSION: current # TODO(negz): Pin to a version once v1.14 is released. - # Common users. We can't run a step 'if secrets.AWS_USR != ""' but we can run - # a step 'if env.AWS_USR' != ""', so we copy these to succinctly test whether + # Common users. We can't run a step 'if secrets.USR != ""' but we can run + # a step 'if env.USR' != ""', so we copy these to succinctly test whether # credentials have been provided before trying to run steps that need them. XPKG_PUSH_ROBOT_USR: ${{ secrets.XPKG_PUSH_ROBOT_USR }} + # The package to push, without a version tag. + XPKG: xpkg.upbound.io/${{ github.repository_owner}}/${{ github.repository}} + XPKG_VERSION: ${{ inputs.version }} + jobs: lint: runs-on: ubuntu-22.04 @@ -89,14 +99,11 @@ jobs: - name: Setup the Crossplane CLI run: "curl -sL https://raw.githubusercontent.com/crossplane/crossplane/master/install.sh | sh" - env: - XP_CHANNEL: master - XP_VERSION: current - name: Build Package run: ./crossplane xpkg build --package-file=${{ matrix.arch }}.xpkg --package-root=package/ --embed-runtime-image-tarball=runtime.tar - - name: Upload Package + - name: Upload Single-Platform Package uses: actions/upload-artifact@v3 with: name: packages @@ -109,12 +116,15 @@ jobs: needs: - build steps: - - name: Download Single-Architecture Packages + - name: Download Single-Platform Packages uses: actions/download-artifact@v3 with: name: packages path: . + - name: Setup the Crossplane CLI + run: "curl -sL https://raw.githubusercontent.com/crossplane/crossplane/master/install.sh | sh" + - name: Login to Upbound uses: docker/login-action@v3 if: env.XPKG_PUSH_ROBOT_USR != '' @@ -123,8 +133,12 @@ jobs: username: ${{ secrets.XPKG_PUSH_ROBOT_USR }} password: ${{ secrets.XPKG_PUSH_ROBOT_PSW }} - - name: Push Multi-Architecture Package to Upbound + # If a version wasn't explicitly passed as a workflow_dispatch input we + # default to version v0.0.0-shortsha, for example v0.0.0-8ed5691. + - name: Set Default Multi-Platform Package Version + if: env.XPKG_VERSION == '' + run: echo "XPKG_VERSION=v0.0.0-$(git rev-parse --short HEAD)" >> $GITHUB_ENV + + - name: Push Multi-Platform Package to Upbound if: env.XPKG_PUSH_ROBOT_USR != '' - # TODO(negz): We need to support pushing multiple packages to create a - # multi-arch package. - run: ./crossplane xpkg push ... \ No newline at end of file + run: "./crossplane --verbose xpkg push --package-files $(echo *.xpkg|tr ' ' ,) ${{ env.XPKG }}:${{ env.XPKG_VERSION }}" From a751115d4021251605283695d09a3c163f81d4b4 Mon Sep 17 00:00:00 2001 From: Nic Cope Date: Sun, 22 Oct 2023 16:17:17 -0700 Subject: [PATCH 13/15] Checkout the repo in the push job We just need this to get the short revision SHA. Signed-off-by: Nic Cope --- .github/workflows/ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 35147d1..756759d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -116,6 +116,9 @@ jobs: needs: - build steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Download Single-Platform Packages uses: actions/download-artifact@v3 with: From 96d11c4b87b29088af0d60f32c67aa9f6c49a8ff Mon Sep 17 00:00:00 2001 From: Nic Cope Date: Sun, 22 Oct 2023 16:21:08 -0700 Subject: [PATCH 14/15] Use 'access ID' and 'token' to better describe credentials Signed-off-by: Nic Cope --- .github/workflows/ci.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 756759d..eb5205c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,7 +23,7 @@ env: # Common users. We can't run a step 'if secrets.USR != ""' but we can run # a step 'if env.USR' != ""', so we copy these to succinctly test whether # credentials have been provided before trying to run steps that need them. - XPKG_PUSH_ROBOT_USR: ${{ secrets.XPKG_PUSH_ROBOT_USR }} + XPKG_ACCESS_ID: ${{ secrets.XPKG_ACCESS_ID }} # The package to push, without a version tag. XPKG: xpkg.upbound.io/${{ github.repository_owner}}/${{ github.repository}} @@ -130,11 +130,11 @@ jobs: - name: Login to Upbound uses: docker/login-action@v3 - if: env.XPKG_PUSH_ROBOT_USR != '' + if: env.XPKG_ACCESS_ID != '' with: registry: xpkg.upbound.io - username: ${{ secrets.XPKG_PUSH_ROBOT_USR }} - password: ${{ secrets.XPKG_PUSH_ROBOT_PSW }} + username: ${{ secrets.XPKG_ACCESS_ID }} + password: ${{ secrets.XPKG_TOKEN }} # If a version wasn't explicitly passed as a workflow_dispatch input we # default to version v0.0.0-shortsha, for example v0.0.0-8ed5691. @@ -143,5 +143,5 @@ jobs: run: echo "XPKG_VERSION=v0.0.0-$(git rev-parse --short HEAD)" >> $GITHUB_ENV - name: Push Multi-Platform Package to Upbound - if: env.XPKG_PUSH_ROBOT_USR != '' + if: env.XPKG_ACCESS_ID != '' run: "./crossplane --verbose xpkg push --package-files $(echo *.xpkg|tr ' ' ,) ${{ env.XPKG }}:${{ env.XPKG_VERSION }}" From ac00fd0245440048fafdcf7cb14e118e951f7cd7 Mon Sep 17 00:00:00 2001 From: Nic Cope Date: Sun, 22 Oct 2023 16:31:56 -0700 Subject: [PATCH 15/15] Remove redundant repo owner from package name Repo already contains repo owner Signed-off-by: Nic Cope --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eb5205c..5f9fcbd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,7 +26,7 @@ env: XPKG_ACCESS_ID: ${{ secrets.XPKG_ACCESS_ID }} # The package to push, without a version tag. - XPKG: xpkg.upbound.io/${{ github.repository_owner}}/${{ github.repository}} + XPKG: xpkg.upbound.io/${{ github.repository}} XPKG_VERSION: ${{ inputs.version }} jobs: