diff --git a/.github/workflows/e2e.yaml b/.github/workflows/e2e.yaml index be5dc9a8e..dc0399ccf 100644 --- a/.github/workflows/e2e.yaml +++ b/.github/workflows/e2e.yaml @@ -1,17 +1,14 @@ name: e2e tests on: pull_request: - push: - branches: - - main + concurrency: group: e2e-tests=full-${{ github.head_ref || github.ref }}-${{ github.repository }} cancel-in-progress: true + jobs: - push-docker: - env: - REGISTRY_URL: ttl.sh - REPO: elemental-operator-ci + prepare-build: + name: Prepare chart for PR and wait for image builds runs-on: ubuntu-latest outputs: chart_name: ${{ steps.chart.outputs.chart_name }} @@ -20,40 +17,39 @@ jobs: uses: actions/checkout@v3 with: fetch-depth: 0 - - name: Export tag - id: export_tag - run: | - TAG=`git describe --abbrev=0 --tags 2>/dev/null || echo "v0.0.0"` - COMMITDATE=`date -d @$(git log -n1 --format="%at") "+%FT%TZ"` - echo "operator_tag=$TAG" >> $GITHUB_OUTPUT - echo "commit_date=$COMMITDATE" >> $GITHUB_OUTPUT - - name: Docker meta - id: meta - uses: docker/metadata-action@v4.1.1 + - name: Wait for OBS worflow to start + uses: cloudposse/github-action-wait-commit-status@main with: - images: | - ${{ env.REGISTRY_URL}}/${{ env.REPO }} - tags: | - type=sha,format=short,prefix=${{ steps.export_tag.outputs.operator_tag }}- - - name: Set up Docker Buildx - id: buildx - uses: docker/setup-buildx-action@v2.2.1 - - name: Build image - uses: docker/build-push-action@v3.2.0 + repository: ${{ github.repository }} + sha: ${{ github.sha }} + status: "OBS: seedimage-builder - containers/x86_64" + lookup: "success" + token: ${{ github.token }} + check-retry-count: 30 + check-retry-interval: 60 + - name: Wait for OBS operator-image build + uses: cloudposse/github-action-wait-commit-status@main with: - context: . - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - push: true - cache-from: type=gha - cache-to: type=gha,mode=max - target: elemental-operator - build-args: | - TAG=${{ steps.export_tag.outputs.operator_tag }} - COMMITDATE=${{ steps.export_tag.outputs.commit_date }} - COMMIT=${{ github.sha }} - - name: Make chart - run: REPO=${{ env.REPO }} REGISTRY_URL=${{ env.REGISTRY_URL }} make chart + repository: ${{ github.repository }} + sha: ${{ github.sha }} + status: "OBS: operator-image - containers/x86_64" + lookup: "success" + token: ${{ github.token }} + check-retry-count: 30 + check-retry-interval: 60 + - name: Build chart for release + env: + PR_NUMBER: ${{ github.event.number }} + B_REPO: registry.opensuse.org/isv/rancher/elemental/pr/rancher/elemental-operator/pr-${PR_NUMBER}/containers + OPERATOR_REPO: rancher/elemental-operator + SEEDIMAGE_REPO: rancher/seedimage-builder + CHANNEL_REPO: rancher/elemental-teal-channel + run: | + REGISTRY_URL=${B_REPO} \ + REPO=${OPERATOR_REPO} \ + REPO_SEEDIMAGE=${SEEDIMAGE_REPO} \ + REPO_CHANNEL=${CHANNEL_REPO} \ + make chart - name: Set chart output id: chart run: | @@ -64,6 +60,7 @@ jobs: with: name: chart path: build/*.tgz + e2e-tests: strategy: matrix: @@ -71,10 +68,10 @@ jobs: replicas: ["1"] rancherVersion : ["2.7.2"] runs-on: ubuntu-latest - needs: push-docker + needs: prepare-build name: k8s ${{ matrix.kubernetes }} - Rancher ${{ matrix.rancherVersion }} - ${{ matrix.replicas }} replicas env: - CHART: ${{ github.workspace }}/build/${{ needs.push-docker.outputs.chart_name }} + CHART: ${{ github.workspace }}/build/${{ needs.prepare-build.outputs.chart_name }} KUBE_VERSION: ${{ matrix.kubernetes }} OPERATOR_REPLICAS: ${{ matrix.replicas }} RANCHER_VERSION: ${{ matrix.rancherVersion }} diff --git a/.obs/workflows.yml b/.obs/workflows.yml index 46ee5fb98..dd49856a1 100644 --- a/.obs/workflows.yml +++ b/.obs/workflows.yml @@ -78,6 +78,12 @@ pr_workflow: source_project: isv:Rancher:Elemental:Dev source_package: seedimage-builder target_project: isv:Rancher:Elemental:PR + - set_flags: + flags: + - type: publish + status: enable + project: isv:Rancher:Elemental:PR + repository: containers filters: event: pull_request diff --git a/Makefile b/Makefile index 43c0144e1..c25418daa 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,6 @@ GIT_TAG?=$(shell git describe --abbrev=0 --tags 2>/dev/null || echo "v0.0.0" ) CHART_VERSION?=$(subst v,,$(GIT_TAG)) TAG?=${GIT_TAG} REPO?=rancher/elemental-operator -REPO_REGISTER?=rancher/elemental-register TAG_SEEDIMAGE?=${CHART_VERSION} REPO_SEEDIMAGE?=rancher/seedimage-builder TAG_CHANNEL?=${CHART_VERSION} @@ -102,16 +101,6 @@ build-docker-operator: --build-arg "COMMITDATE=${COMMITDATE}" \ -t ${REGISTRY_HEADER}${REPO}:${CHART_VERSION} . -.PHONY: build-docker-register -build-docker-register: - DOCKER_BUILDKIT=1 docker build \ - -f Dockerfile \ - --target elemental-register \ - --build-arg "TAG=${GIT_TAG}" \ - --build-arg "COMMIT=${GIT_COMMIT}" \ - --build-arg "COMMITDATE=${COMMITDATE}" \ - -t ${REGISTRY_HEADER}${REPO_REGISTER}:${CHART_VERSION} . - .PHONY: build-docker-seedimage-builder build-docker-seedimage-builder: DOCKER_BUILDKIT=1 docker build \ @@ -122,10 +111,6 @@ build-docker-seedimage-builder: build-docker-push-operator: build-docker-operator docker push ${REGISTRY_HEADER}${REPO}:${CHART_VERSION} -.PHONY: build-docker-push-register -build-docker-push-register: build-docker-register - docker push ${REGISTRY_HEADER}${REPO_REGISTER}:${CHART_VERSION} - .PHONY: build-docker-push-seedimage-builder build-docker-push-seedimage-builder: build-docker-seedimage-builder docker push ${REGISTRY_HEADER}${REPO_SEEDIMAGE}:${TAG_SEEDIMAGE}