Empty commit #2543
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: | |
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 "TELEPRESENCE_SEMVER=${v#v}" >> "$GITHUB_ENV" | |
echo "version=$v" >> $GITHUB_OUTPUT | |
echo "semver=${v#v}" >> $GITHUB_OUTPUT | |
- name: Setup docker buildx | |
uses: docker/setup-buildx-action@v3 | |
with: | |
platforms: linux/amd64,linux/arm64 | |
- name: Build image dependencies | |
run: make images-deps | |
- name: Log in to registry | |
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin | |
- name: Push client image | |
run: | | |
docker buildx build --platform=linux/amd64,linux/arm64 --build-arg TELEPRESENCE_VERSION=${{env.TELEPRESENCE_SEMVER}} \ | |
--push --tag ${{env.TELEPRESENCE_REGISTRY}}/telepresence:${{env.TELEPRESENCE_SEMVER}} -f build-aux/docker/images/Dockerfile.client . | |
- name: Push tel2 image | |
run: | | |
docker buildx build --platform=linux/amd64,linux/arm64 --build-arg TELEPRESENCE_VERSION=${{env.TELEPRESENCE_SEMVER}} \ | |
--push --tag ${{env.TELEPRESENCE_REGISTRY}}/tel2:${{env.TELEPRESENCE_SEMVER}} -f build-aux/docker/images/Dockerfile.traffic . | |
- name: Log out from registry | |
if: always() | |
run: docker logout | |
run_tests: | |
if: github.event.label.name == 'ok to test' | |
strategy: | |
fail-fast: false | |
matrix: | |
runners: | |
- ubuntu-latest | |
- macos-13 # use macos-latest once that runner (which is arm64) supports virtualization. | |
# Re-enable when virtualization is available so that WSL2 can be used and docker has a linux container daemon. | |
# - 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 | |
# the macos-13 runner has 4 cpus, 14 GiB memory, and 14 GiB disk | |
colima start --kubernetes --cpu 2 --memory 6 --disk 10 | |
- 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 | |
env: | |
SCOUT_DISABLE: "1" | |
uses: nick-fields/retry/@v3 | |
with: | |
max_attempts: 3 | |
shell: bash | |
timeout_minutes: 90 | |
command: | | |
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 }} | |
- 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 }} | |
- 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 |