Skip to content

Use ghcr.io for images and a Minikube or Colima cluster. #2526

Use ghcr.io for images and a Minikube or Colima cluster.

Use ghcr.io for images and a Minikube or Colima cluster. #2526

Workflow file for this run

name: "Integration Tests"
on:
pull_request_target:
types:
- labeled
env:
TELEPRESENCE_REGISTRY: ghcr.io/telepresenceio
DTEST_REGISTRY: ghcr.io/telepresenceio
jobs:
build_images:
if: github.event.label.name == 'ok to test'
runs-on: ubuntu-latest
outputs:
telepresenceVersion: ${{ steps.version.outputs.version }}
telepresenceSemver: ${{ steps.version.outputs.semver }}
steps:
- name: Remove label
uses: buildsville/[email protected]
with:
token: ${{ secrets.GITHUB_TOKEN }}
labels: ok to test
type: remove
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: "${{ github.event.pull_request.head.sha }}"
- name: Get Telepresence Version
id: version
run: |
v=$(go run build-aux/genversion/main.go ${{github.run_id}})
echo "TELEPRESENCE_VERSION=$v" >> "$GITHUB_ENV"
echo "version=$v" >> $GITHUB_OUTPUT
echo "semver=${v#v}" >> $GITHUB_OUTPUT
- name: Log in to registry
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
- name: Setup docker buildx
uses: docker/setup-buildx-action@v3
with:
platforms: linux/amd64,linux/arm64
- name: Build cluster images
run: |
make push-images-x
run_tests:
if: github.event.label.name == 'ok to test'
strategy:
fail-fast: false
matrix:
runners:
- ubuntu-latest
- macos-13
- windows-latest
runs-on: ${{ matrix.runners }}
needs: build_images
env:
TELEPRESENCE_VERSION: ${{ needs.build_images.outputs.telepresenceVersion }}
steps:
- uses: actions/checkout@v4
with:
ref: "${{ github.event.pull_request.head.sha }}"
- name: install dependencies
uses: ./.github/actions/install-dependencies
- name: Start minikube
if: runner.os == 'Linux'
uses: medyagh/setup-minikube@latest
- name: Start colima
if: runner.os == 'macOS'
shell: bash
run: |
brew install kubectl docker colima
colima start --kubernetes
- name: Switch docker daemon
if: runner.os == 'Windows'
shell: powershell
run: |
"$Env:ProgramFiles\Docker\Docker\DockerCli.exe" -SwitchDaemon
docker version
- name: Start Kind cluster
if: runner.os == 'Windows'
shell: powershell
run: kind create cluster
- name: Install Argo Rollouts
shell: bash
run: |
kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/latest/download/install.yaml
- name: Build client
run: make build
- name: Run integration tests
shell: bash
env:
SCOUT_DISABLE: "1"
run: |
set -ex
if [[ ${RUNNER_OS} == "Windows" ]]; then
export PATH="$PATH:/C/Program Files/SSHFS-Win/bin:$HOME/kubectl-plugins"
fi
DEV_TELEPRESENCE_VERSION=${TELEPRESENCE_VERSION} DTEST_KUBECONFIG="${HOME}/.kube/config" make check-integration
- uses: ./.github/actions/upload-logs
env:
LOG_SUFFIX: "${{ runner.os }}-${{ runner.arch }}-${{ matrix.clusters.distribution }}-${{ matrix.clusters.version }}"
if: always()
purge_images:
runs-on: ubuntu-latest
if: always()
needs:
- build_images
- run_tests
steps:
- name: Delete tel2 image
uses: bots-house/[email protected]
continue-on-error: true
with:
owner: telepresenceio
name: tel2
token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ needs.build_images.outputs.telepresenceSemver }}
untagged-keep-latest: 6
- name: Delete telepresence image
uses: bots-house/[email protected]
continue-on-error: true
with:
owner: telepresenceio
name: telepresence
token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ needs.build_images.outputs.telepresenceSemver }}
untagged-keep-latest: 6
- name: Delete tel2 untagged images
uses: bots-house/[email protected]
with:
owner: telepresenceio
name: tel2
token: ${{ secrets.GITHUB_TOKEN }}
untagged-keep-latest: 6
- name: Delete telepresence untagged images
uses: bots-house/[email protected]
with:
owner: telepresenceio
name: telepresence
token: ${{ secrets.GITHUB_TOKEN }}
untagged-keep-latest: 6