Use ghcr.io for images and a Minikube or Colima cluster. #2527
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "Integration Tests" | |
on: | |
pull_request_target: | |
types: | |
- labeled | |
env: | |
TELEPRESENCE_REGISTRY: ghcr.io/telepresenceio | |
DTEST_REGISTRY: ghcr.io/telepresenceio | |
jobs: | |
qtest: | |
runs-on: windows-latest | |
steps: | |
- name: 'Windows docker info' | |
run: | | |
docker context ls | |
docker version | |
build_images: | |
if: github.event.label.name == 'ok to test x' | |
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 |