diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index eeda502bf..000000000 --- a/.travis.yml +++ /dev/null @@ -1,155 +0,0 @@ -# -# Copyright (c) 2021 Red Hat, Inc. -# This program and the accompanying materials are made -# available under the terms of the Eclipse Public License 2.0 -# which is available at https://www.eclipse.org/legal/epl-2.0/ -# -# SPDX-License-Identifier: EPL-2.0 -# -# Contributors: -# Red Hat, Inc. - initial API and implementation -# - -language: go -go: -- '1.15' -os: linux -dist: focal -git: - depth: false - -install: - # TODO when we're confident that sha-tagged travis-built images won't collide with GHA built ones, we can remove the -travis suffix here - - export SHORT_SHA=$(git rev-parse --short HEAD)-travis - - export GITHUB_TOKEN="$CHE_BOT_GITHUB_TOKEN" - - echo "$RH_CHE_AUTOMATION_DOCKERHUB_PASSWORD" | docker login -u "$RH_CHE_AUTOMATION_DOCKERHUB_USERNAME" --password-stdin - - echo "$QUAY_ECLIPSE_CHE_PASSWORD" | docker login quay.io -u "$QUAY_ECLIPSE_CHE_USERNAME" --password-stdin - -env: - global: - - TAG=next-travis - - REGISTRY=quay.io - - ORGANIZATION=eclipse - - IMAGE=che-machine-exec - - PR_NUMBER= - -jobs: - fast_finish: true - allow_failures: - - if: env(PR_NUMBER) IS present - arch: arm64 - - if: env(PR_NUMBER) IS present - arch: ppc64le - - if: env(PR_NUMBER) IS present - arch: s390x - include: - - stage: PR Check - if: env(PR_NUMBER) IS present - name: Check docker build on amd64 - arch: amd64 - install: &1 - - git fetch origin +refs/pull/${PR_NUMBER}/merge - - git checkout -qf FETCH_HEAD - script: docker build -f build/dockerfiles/Dockerfile -t "${REGISTRY}/${ORGANIZATION}/${IMAGE}:pr-check-${TRAVIS_CPU_ARCH}" - . - - stage: PR Check - if: env(PR_NUMBER) IS present - name: Check docker build on arm64 - arch: arm64 - install: *1 - script: docker build -f build/dockerfiles/Dockerfile -t "${REGISTRY}/${ORGANIZATION}/${IMAGE}:pr-check-${TRAVIS_CPU_ARCH}" - . - - stage: PR Check - if: env(PR_NUMBER) IS present - name: Check docker build on ppc64le - arch: ppc64le - install: *1 - script: docker build -f build/dockerfiles/Dockerfile -t "${REGISTRY}/${ORGANIZATION}/${IMAGE}:pr-check-${TRAVIS_CPU_ARCH}" - . - - stage: PR Check - if: env(PR_NUMBER) IS present - name: check docker build PR on s390x - arch: s390x - install: *1 - script: docker build -f build/dockerfiles/Dockerfile -t "${REGISTRY}/${ORGANIZATION}/${IMAGE}:pr-check-${TRAVIS_CPU_ARCH}" - . - - if: env(PR_NUMBER) IS present - name: Run unit tests on amd64 - arch: amd64 - install: &2 - - git fetch origin +refs/pull/${PR_NUMBER}/merge - - git checkout -qf FETCH_HEAD - - export GO111MODULE="on" - - go get ${gobuild_args} ./... - script: &3 - - | - CGO_ENABLED=0 GOOS=linux go build -mod=vendor -a -ldflags '-w -s' -a -installsuffix cgo -o che-machine-exec . - export CHE_WORKSPACE_ID=test_id - go test ./... -test.v - - if: env(PR_NUMBER) IS present - name: Run unit tests on arm64 - arch: arm64 - install: *2 - script: *3 - - if: env(PR_NUMBER) IS present - name: Run unit tests on ppc64le - arch: ppc64le - install: *2 - script: *3 - - if: env(PR_NUMBER) IS present - name: Run unit tests on s390x - arch: s390x - install: *2 - script: *3 - - stage: Build and push both short SHA tag and next-travis tag - if: type = api AND branch = main AND env(TAG) = "next-travis" AND env(PR_NUMBER) IS blank - name: Build image on amd64 - arch: amd64 - script: &4 - - .travis/build_image.sh - - stage: Build and push both short SHA tag and next-travis tag - if: type = api AND branch = main AND env(TAG) = "next-travis" AND env(PR_NUMBER) IS blank - name: Build image on arm64 - arch: arm64 - script: *4 - - stage: Build and push both short SHA tag and next-travis tag - if: type = api AND branch = main AND env(TAG) = "next-travis" AND env(PR_NUMBER) IS blank - name: Build image on ppc64le - arch: ppc64le - script: *4 - - stage: Build and push both short SHA tag and next-travis tag - if: type = api AND branch = main AND env(TAG) = "next-travis" AND env(PR_NUMBER) IS blank - name: Build image on s390x - arch: s390x - script: *4 - - stage: Publish multiarch image with next-travis & short_sha tag - if: type = api AND branch = main AND env(TAG) = "next-travis" AND env(PR_NUMBER) IS blank - script: .travis/publish_multiarch.sh - - stage: Release che-machine-exec - if: type = api AND env(TAG) IS present AND env(TAG) != "next-travis" - name: Build image on amd64 - arch: amd64 - script: &5 - - | - BRANCH=${TAG%.*}.x - git checkout "${BRANCH}" - TAG=${TAG}-travis - .travis/build_image.sh - - stage: Release che-machine-exec - if: type = api AND env(TAG) IS present AND env(TAG) != "next-travis" - name: Build image on arm64 - arch: arm64 - script: *5 - - stage: Release che-machine-exec - if: type = api AND env(TAG) IS present AND env(TAG) != "next-travis" - name: Build image on ppc64le - arch: ppc64le - script: *5 - - stage: Release che-machine-exec - if: type = api AND env(TAG) IS present AND env(TAG) != "next-travis" - name: Build image on s390x - arch: s390x - script: *5 - - stage: Publish multiarch image with release tag - if: type = api AND env(TAG) IS present AND env(TAG) != "next-travis" - script: TAG=$TAG-travis .travis/publish_multiarch.sh diff --git a/.travis/build_image.sh b/.travis/build_image.sh deleted file mode 100755 index 778c3b8d1..000000000 --- a/.travis/build_image.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -# -# Copyright (c) 2021 Red Hat, Inc. -# This program and the accompanying materials are made -# available under the terms of the Eclipse Public License 2.0 -# which is available at https://www.eclipse.org/legal/epl-2.0/ -# -# SPDX-License-Identifier: EPL-2.0 -# -# Contributors: -# Red Hat, Inc. - initial API and implementation -# - -set -e - -#shellcheck disable=SC1073 disable=SC2066 disable=SC2153 -for image in ${IMAGE}; do - the_image="${REGISTRY}/${ORGANIZATION}/${image}" - - # Build images - docker build -f build/dockerfiles/Dockerfile -t "${the_image}:${TAG}-${TRAVIS_CPU_ARCH}" . - docker push "${the_image}:${TAG}-${TRAVIS_CPU_ARCH}" - - # Tag image with short_sha in case of next build - if [[ "$TAG" == "next-travis" ]]; then - docker tag "${the_image}:${TAG}-${TRAVIS_CPU_ARCH}" "${the_image}:${SHORT_SHA}-${TRAVIS_CPU_ARCH}" - docker push "${the_image}:${SHORT_SHA}-${TRAVIS_CPU_ARCH}" - fi -done diff --git a/.travis/publish_multiarch.sh b/.travis/publish_multiarch.sh deleted file mode 100755 index 28f8a932d..000000000 --- a/.travis/publish_multiarch.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -# -# Copyright (c) 2021 Red Hat, Inc. -# This program and the accompanying materials are made -# available under the terms of the Eclipse Public License 2.0 -# which is available at https://www.eclipse.org/legal/epl-2.0/ -# -# SPDX-License-Identifier: EPL-2.0 -# -# Contributors: -# Red Hat, Inc. - initial API and implementation -# -# Create amend with images built on individual architectures - -set -e - -PUBLISH_IMAGES_LIST=( - che-machine-exec -) -for image in "${PUBLISH_IMAGES_LIST[@]}"; do - the_image="${REGISTRY}/${ORGANIZATION}/${image}" - AMEND="" - AMEND+=" --amend ${the_image}:${TAG}-amd64"; - AMEND+=" --amend ${the_image}:${TAG}-arm64"; - AMEND+=" --amend ${the_image}:${TAG}-ppc64le"; - AMEND+=" --amend ${the_image}:${TAG}-s390x"; - - # Create manifest and push multiarch image - eval docker manifest create "${the_image}:${TAG}" "$AMEND" - docker manifest push "${the_image}:${TAG}" - - if [[ "${TAG}" == "next-travis" ]]; then - eval docker manifest create "${the_image}:${SHORT_SHA}" "$AMEND" - docker manifest push "${the_image}:${SHORT_SHA}" - else - eval docker manifest create "${the_image}:latest-travis" "$AMEND" - docker manifest push "${the_image}:latest-travis" - fi -done