diff --git a/.github/workflows/pull-requests.yaml b/.github/workflows/pull-requests.yaml index edc8b923..b9b7b0ac 100644 --- a/.github/workflows/pull-requests.yaml +++ b/.github/workflows/pull-requests.yaml @@ -71,18 +71,6 @@ jobs: name: pr-patch path: _out/assets/pr.patch - - name: Upload CRDs - uses: actions/upload-artifact@v4 - with: - name: cozystack-crds - path: _out/assets/cozystack-crds.yaml - - - name: Upload operator - uses: actions/upload-artifact@v4 - with: - name: cozystack-operator - path: _out/assets/cozystack-operator-talos.yaml - - name: Upload Talos image uses: actions/upload-artifact@v4 with: @@ -94,8 +82,6 @@ jobs: runs-on: ubuntu-latest if: contains(github.event.pull_request.labels.*.name, 'release') outputs: - crds_id: ${{ steps.fetch_assets.outputs.crds_id }} - operator_id: ${{ steps.fetch_assets.outputs.operator_id }} disk_id: ${{ steps.fetch_assets.outputs.disk_id }} steps: @@ -139,15 +125,11 @@ jobs: return; } const find = (n) => draft.assets.find(a => a.name === n)?.id; - const crdsId = find('cozystack-crds.yaml'); - const operatorId = find('cozystack-operator-talos.yaml'); const diskId = find('nocloud-amd64.raw.xz'); - if (!crdsId || !operatorId || !diskId) { + if (!diskId) { core.setFailed('Required assets missing in draft release'); return; } - core.setOutput('crds_id', crdsId); - core.setOutput('operator_id', operatorId); core.setOutput('disk_id', diskId); @@ -174,20 +156,6 @@ jobs: name: talos-image path: _out/assets - - name: "Download CRDs (regular PR)" - if: "!contains(github.event.pull_request.labels.*.name, 'release')" - uses: actions/download-artifact@v4 - with: - name: cozystack-crds - path: _out/assets - - - name: "Download operator (regular PR)" - if: "!contains(github.event.pull_request.labels.*.name, 'release')" - uses: actions/download-artifact@v4 - with: - name: cozystack-operator - path: _out/assets - - name: Download PR patch if: "!contains(github.event.pull_request.labels.*.name, 'release')" uses: actions/download-artifact@v4 @@ -208,12 +176,6 @@ jobs: curl -sSL -H "Authorization: token ${GH_PAT}" -H "Accept: application/octet-stream" \ -o _out/assets/nocloud-amd64.raw.xz \ "https://api.github.com/repos/${GITHUB_REPOSITORY}/releases/assets/${{ needs.resolve_assets.outputs.disk_id }}" - curl -sSL -H "Authorization: token ${GH_PAT}" -H "Accept: application/octet-stream" \ - -o _out/assets/cozystack-crds.yaml \ - "https://api.github.com/repos/${GITHUB_REPOSITORY}/releases/assets/${{ needs.resolve_assets.outputs.crds_id }}" - curl -sSL -H "Authorization: token ${GH_PAT}" -H "Accept: application/octet-stream" \ - -o _out/assets/cozystack-operator-talos.yaml \ - "https://api.github.com/repos/${GITHUB_REPOSITORY}/releases/assets/${{ needs.resolve_assets.outputs.operator_id }}" env: GH_PAT: ${{ secrets.GH_PAT }} diff --git a/hack/e2e-install-cozystack.bats b/hack/e2e-install-cozystack.bats index 1abb691f..36329e93 100644 --- a/hack/e2e-install-cozystack.bats +++ b/hack/e2e-install-cozystack.bats @@ -1,25 +1,22 @@ #!/usr/bin/env bats -@test "Required installer assets exist" { - if [ ! -f _out/assets/cozystack-crds.yaml ]; then - echo "Missing: _out/assets/cozystack-crds.yaml" >&2 - exit 1 - fi - if [ ! -f _out/assets/cozystack-operator-talos.yaml ]; then - echo "Missing: _out/assets/cozystack-operator-talos.yaml" >&2 +@test "Required installer chart exists" { + if [ ! -f packages/core/installer/Chart.yaml ]; then + echo "Missing: packages/core/installer/Chart.yaml" >&2 exit 1 fi } @test "Install Cozystack" { - # Create namespace - kubectl create namespace cozy-system --dry-run=client -o yaml | kubectl apply -f - + # Install cozy-installer chart + helm upgrade installer packages/core/installer \ + --install \ + --namespace cozy-system \ + --create-namespace \ + --wait \ + --timeout 2m - # Apply installer manifests (CRDs + operator) - kubectl apply -f _out/assets/cozystack-crds.yaml - kubectl apply -f _out/assets/cozystack-operator-talos.yaml - - # Wait for the operator deployment to become available + # Verify the operator deployment is available kubectl wait deployment/cozystack-operator -n cozy-system --timeout=1m --for=condition=Available # Create platform Package with isp-full variant diff --git a/packages/core/testing/Makefile b/packages/core/testing/Makefile index 2fb41eba..35897909 100644 --- a/packages/core/testing/Makefile +++ b/packages/core/testing/Makefile @@ -30,17 +30,13 @@ test: test-cluster test-openapi test-apps ## Run the end-to-end tests in existin copy-nocloud-image: docker cp ../../../_out/assets/nocloud-amd64.raw.xz "${SANDBOX_NAME}":/workspace/_out/assets/nocloud-amd64.raw.xz -copy-installer-manifest: - docker cp ../../../_out/assets/cozystack-crds.yaml "${SANDBOX_NAME}":/workspace/_out/assets/cozystack-crds.yaml - docker cp ../../../_out/assets/cozystack-operator-talos.yaml "${SANDBOX_NAME}":/workspace/_out/assets/cozystack-operator-talos.yaml - prepare-cluster: copy-nocloud-image docker exec "${SANDBOX_NAME}" sh -c 'cd /workspace && hack/cozytest.sh hack/e2e-prepare-cluster.bats' -install-cozystack: copy-installer-manifest +install-cozystack: docker exec "${SANDBOX_NAME}" sh -c 'cd /workspace && hack/cozytest.sh hack/e2e-install-cozystack.bats' -test-cluster: copy-nocloud-image copy-installer-manifest ## Run the end-to-end for creating a cluster +test-cluster: copy-nocloud-image ## Run the end-to-end for creating a cluster docker exec "${SANDBOX_NAME}" sh -c 'cd /workspace && hack/cozytest.sh hack/e2e-cluster.bats' test-openapi: