Skip to content

Backport the Fedora-based nettest image to 0.15 #5068

Backport the Fedora-based nettest image to 0.15

Backport the Fedora-based nettest image to 0.15 #5068

Workflow file for this run

---
name: Consuming Projects
on:
pull_request:
types: [labeled, opened, synchronize, reopened]
permissions: {}
jobs:
e2e:
name: E2E Consuming
timeout-minutes: 30
runs-on: ubuntu-latest
if: |
( github.event.action == 'labeled' && github.event.label.name == 'e2e-projects' )
|| ( github.event.action != 'labeled' && contains(github.event.pull_request.labels.*.name, 'e2e-projects') )
strategy:
fail-fast: false
matrix:
project: ['admiral', 'lighthouse', 'subctl', 'submariner', 'submariner-operator']
deploytool: ['operator', 'helm']
cabledriver: ['libreswan']
k8s_version: ['1.25']
exclude:
# Admiral E2E doesn't respect deploy-tool params, as it uses clusters without Submariner
- project: admiral
deploytool: helm
# Operator and Helm are mutually exclusive, don't try to use Helm in Operator repo
- project: submariner-operator
deploytool: helm
include:
# Test the same set of cable driver combinations as the consuming projects do in their CI
- project: submariner
cabledriver: wireguard
# Test multiple K8s versions only in submariner-operator, balancing coverage and jobs
- project: submariner-operator
k8s_version: '1.22'
- project: submariner-operator
k8s_version: '1.23'
- project: submariner-operator
k8s_version: '1.24'
steps:
- name: Check out the Shipyard repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- name: Build the latest Shipyard image
run: make images
- name: Check out the ${{ matrix.project }} repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
# This is replaced to stable branch by auto release process
ref: release-0.15
repository: submariner-io/${{ matrix.project }}
path: ${{ matrix.project }}
- name: Copy Shipyard resources
run: cp -n Dockerfile.* Makefile.dapper .dapper ${{ matrix.project }}/
- name: Make sure ${{ matrix.project }} is using the built Shipyard image
run: sed -i 's/shipyard-dapper-base:*.*/shipyard-dapper-base:dev/' ${{ matrix.project }}/Dockerfile.dapper
- name: Run E2E deployment and tests
uses: ./gh-actions/e2e
with:
k8s_version: ${{ matrix.k8s_version }}
using: ${{ matrix.cabledriver }} ${{ matrix.deploytool }}
working-directory: ./${{ matrix.project }}
- name: Post mortem
if: failure()
uses: ./gh-actions/post-mortem
lint-consuming:
name: Lint
timeout-minutes: 15
runs-on: ubuntu-latest
if: |
( github.event.action == 'labeled' && github.event.label.name == 'lint-projects' )
|| ( github.event.action != 'labeled' && contains(github.event.pull_request.labels.*.name, 'lint-projects') )
strategy:
fail-fast: false
matrix:
project: [
'admiral', 'cloud-prepare', 'lighthouse',
'subctl', 'submariner', 'submariner-charts', 'submariner-operator'
]
steps:
- name: Check out the Shipyard repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- name: Build the latest Shipyard image
run: make images
- name: Check out the ${{ matrix.project }} repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
# This is replaced to stable branch by auto release process
ref: release-0.15
repository: submariner-io/${{ matrix.project }}
path: ${{ matrix.project }}
- name: Copy Shipyard resources
run: cp -n Dockerfile.* Makefile.dapper .dapper ${{ matrix.project }}/
- name: Make sure ${{ matrix.project }} is using the built Shipyard image
run: sed -i 's/shipyard-dapper-base:*.*/shipyard-dapper-base:dev/' ${{ matrix.project }}/Dockerfile.dapper
- name: Run golangci-lint
if: always()
run: make -C ${{ matrix.project }} golangci-lint
- name: Run markdownlint
if: always()
run: make -C ${{ matrix.project }} markdownlint
- name: Run packagedoc-lint
if: always()
run: make -C ${{ matrix.project }} packagedoc-lint
- name: Run shellcheck
if: always()
run: make -C ${{ matrix.project }} shellcheck
- name: Run yamllint
if: always()
run: make -C ${{ matrix.project }} yamllint
unit-consuming:
name: Unit Tests
timeout-minutes: 15
runs-on: ubuntu-latest
if: |
( github.event.action == 'labeled' && github.event.label.name == 'unit-projects' )
|| ( github.event.action != 'labeled' && contains(github.event.pull_request.labels.*.name, 'unit-projects') )
strategy:
fail-fast: false
matrix:
project: [
'admiral', 'cloud-prepare', 'lighthouse',
'subctl', 'submariner', 'submariner-charts', 'submariner-operator'
]
steps:
- name: Check out the Shipyard repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- name: Build the latest Shipyard image
run: make images
- name: Check out the ${{ matrix.project }} repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
# This is replaced to stable branch by auto release process
ref: release-0.15
repository: submariner-io/${{ matrix.project }}
path: ${{ matrix.project }}
- name: Copy Shipyard resources
run: cp -n Dockerfile.* Makefile.dapper .dapper ${{ matrix.project }}/
- name: Make sure ${{ matrix.project }} is using the built Shipyard image
run: sed -i 's/shipyard-dapper-base:*.*/shipyard-dapper-base:dev/' ${{ matrix.project }}/Dockerfile.dapper
- name: Run all unit tests
run: make -C ${{ matrix.project }} unit