blob: 20a0e387e632d296173850a72861cb866b7b79f0 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
name: T3C Integration Tests
env:
ATS_VERSION: 8.1.x
RHEL_VERSION: 8
TARGET_ARCH: x86_64
on:
workflow_dispatch:
push:
paths:
- .github/workflows/cache-config-tests.yml
- go.mod
- go.sum
- GO_VERSION
- lib/go-atscfg/**.go
- traffic_ops/*client/**.go
- traffic_ops/toclientlib/**.go
- lib/atscfg-go/**.go
- traffic_ops/traffic_ops_golang/**.go
- cache-config/**.go
- cache-config/testing/**
- vendor/**.go
- vendor/modules.txt
- .github/actions/build-ats-test-rpm/**
- .github/actions/repo-info/**
- .github/actions/cache-config-integration-tests/**
create:
pull_request:
paths:
- .github/workflows/cache-config-tests.yml
- go.mod
- go.sum
- GO_VERSION
- lib/go-atscfg/**.go
- traffic_ops/*client/**.go
- traffic_ops/toclientlib/**.go
- lib/atscfg-go/**.go
- traffic_ops/traffic_ops_golang/**.go
- cache-config/**.go
- cache-config/testing/**
- vendor/**.go
- vendor/modules.txt
- .github/actions/build-ats-test-rpm/**
- .github/actions/repo-info/**
- .github/actions/cache-config-integration-tests/**
types: [opened, reopened, ready_for_review, synchronize]
jobs:
traffic_ops:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 5
- name: Build RPM
uses: ./.github/actions/build-rpms
env:
ATC_COMPONENT: ${{ github.job }}
- name: Upload RPM
uses: actions/upload-artifact@v2
with:
name: ${{ github.job }}
path: ${{ github.workspace }}/dist/${{ github.job }}-*.x86_64.rpm
cache-config:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 5
- name: Build RPM
uses: ./.github/actions/build-rpms
env:
ATC_COMPONENT: ${{ github.job }}
- name: Upload RPM
uses: actions/upload-artifact@v2
with:
name: ${{ github.job }}
path: ${{ github.workspace }}/dist/trafficcontrol-${{ github.job }}-*.x86_64.rpm
trafficserver:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Get expected RPM name
uses: ./.github/actions/repo-info
with:
owner: apache
repo: trafficserver
branch: ${{ env.ATS_VERSION }}
id: repo-info
- name: Check Cache
id: ats-rpm-cache
uses: actions/cache@v2
with:
path: ${{ github.workspace }}/dist
key: ${{ steps.repo-info.outputs.expected-rpm-name }}-${{ hashFiles('cache-config/testing/docker/trafficserver/**') }}
- name: Build ATS RPM
if: steps.ats-rpm-cache.outputs.cache-hit != 'true'
uses: ./.github/actions/build-ats-test-rpm
env:
ATC_COMPONENT: ${{ github.job }}
- name: Check ATS RPM name
run: |
set -o errexit -o nounset -o xtrace
actual_rpm_name="$(ls dist | grep -E '^trafficserver-[0-9.]+-[0-9]+\.[0-9a-f]+.el${{ env.RHEL_VERSION }}.${{ env.TARGET_ARCH }}.rpm$')"
[[ "${{ steps.repo-info.outputs.expected-rpm-name }}" == "$actual_rpm_name" ]]
- name: Upload RPM
uses: actions/upload-artifact@v2
with:
name: ${{ github.job }}
path: ${{ github.workspace }}/dist/${{ github.job }}-*.x86_64.rpm
cache-config_tests:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
needs:
- traffic_ops
- cache-config
- trafficserver
steps:
- name: Checkout
uses: actions/checkout@master
- name: Download TO RPM
uses: actions/download-artifact@v2
with:
name: traffic_ops
path: ${{ github.workspace }}/cache-config/testing/docker/traffic_ops
- name: Download Cache Config RPM
uses: actions/download-artifact@v2
with:
name: cache-config
path: ${{ github.workspace }}/cache-config/testing/docker/ort_test
- name: Download ATS RPM
uses: actions/download-artifact@v2
with:
name: trafficserver
path: ${{ github.workspace }}/cache-config/testing/docker/yumserver/test-rpms
- name: Build cache config test containers
run: docker-compose -f ${{ github.workspace }}/cache-config/testing/docker/docker-compose.yml build --parallel
- name: Run cache config integration tests
uses: ./.github/actions/cache-config-integration-tests