Skip to content

Commit

Permalink
Merge pull request #1773 from Nordix/lentzi90/release-0.5-pipeline
Browse files Browse the repository at this point in the history
🌱 [backport] workflow pipeline with unit tests
  • Loading branch information
metal3-io-bot authored Jun 7, 2024
2 parents 083df70 + 7eebeb0 commit 3d81425
Show file tree
Hide file tree
Showing 7 changed files with 91 additions and 56 deletions.
25 changes: 10 additions & 15 deletions .github/workflows/e2e-fixture-test.yml
Original file line number Diff line number Diff line change
@@ -1,24 +1,11 @@
name: E2E Fixture Test

on:
pull_request:
branches:
- 'release-0.5'
paths-ignore:
- '**/*.md'
- 'docs/**'
- '.gitignore'
- 'hack/*.sh'
- 'LICENSE'
- 'SECURITY_CONTACTS'
- 'DCO'
- 'OWNERS'

permissions:
contents: read
workflow_call:

jobs:
test:
name: E2E fixture test
runs-on: ubuntu-latest

steps:
Expand All @@ -34,3 +21,11 @@ jobs:
E2E_CONF_FILE: ${GITHUB_WORKSPACE}/test/e2e/config/fixture.yaml
USE_EXISTING_CLUSTER: "false"
run: make test-e2e

- name: Upload artifacts
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: artifacts-fixture.tar.gz
path: test/e2e/_artifacts
if-no-files-found: error
overwrite: false
2 changes: 0 additions & 2 deletions .github/workflows/e2e-test-periodic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,3 @@ jobs:
uses: ./.github/workflows/e2e-test.yml
with:
bmc-protocol: ${{ matrix.bmc-protocol }}
permissions:
contents: read
32 changes: 0 additions & 32 deletions .github/workflows/e2e-test-pull.yaml

This file was deleted.

16 changes: 11 additions & 5 deletions .github/workflows/e2e-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,24 @@ on:
runner:
type: string
default: "ubuntu-latest-4-cores"
ginkgo-focus:
type: string
default: ""
ref:
type: string
default: ${{ github.ref }}

permissions: {}

jobs:
test:
name: e2e test
name: E2E test
runs-on: ${{ inputs.runner }}

permissions:
contents: read

steps:
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
with:
ref: ${{ inputs.ref }}

- name: Install libvirt
run: |
Expand All @@ -31,12 +36,13 @@ jobs:
- name: Run BMO e2e Tests
env:
BMC_PROTOCOL: ${{ inputs.bmc-protocol }}
GINKGO_FOCUS: "${{ inputs.ginkgo-focus }}"
# We need a new shell to pick up the new group. That is why we do the sudo -s -u $USER ...
# Remove the pre-installed go version. We install the exact version we need.
run: |
sudo usermod -a -G libvirt $USER
sudo rm /usr/bin/go
sudo -s -u $USER bash ${{ github.workspace }}/hack/ci-e2e.sh
sudo -s -u $USER --preserve-env bash ${{ github.workspace }}/hack/ci-e2e.sh
- name: Upload artifacts
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/golangci-lint.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
name: golangci-lint

on:
pull_request:
types: [opened, edited, synchronize, reopened]
workflow_call:

# Remove all permissions from GITHUB_TOKEN except metadata.
permissions: {}
Expand Down
44 changes: 44 additions & 0 deletions .github/workflows/pipeline.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: E2E Test pipeline

on:
pull_request:
types: [opened, edited, synchronize, reopened, ready_for_review]
branches:
- 'main'
- 'release-*'
paths-ignore:
- '**/*.md'
- 'docs/**'
- '.gitignore'
- 'LICENSE'
- 'SECURITY_CONTACTS'
- 'DCO'
- 'OWNERS'

permissions: {}

jobs:
golangci-lint:
if: github.event.pull_request.draft == false
uses: ./.github/workflows/golangci-lint.yml

unit:
if: github.event.pull_request.draft == false
uses: ./.github/workflows/unit.yml

e2e-fixture-test:
needs: [golangci-lint, unit]
uses: ./.github/workflows/e2e-fixture-test.yml

e2e-test:
needs: [golangci-lint, unit]
strategy:
# Avoid wasting CI resources
fail-fast: true
matrix:
bmc-protocol:
- redfish-virtualmedia
- ipmi
uses: ./.github/workflows/e2e-test.yml
with:
bmc-protocol: ${{ matrix.bmc-protocol }}
25 changes: 25 additions & 0 deletions .github/workflows/unit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: unit

on:
workflow_call:

# Remove all permissions from GITHUB_TOKEN except metadata.
permissions: {}

jobs:
golangci:
name: unit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
- name: Calculate go version
id: vars
run: echo "go_version=$(make go-version)" >> $GITHUB_OUTPUT
- name: Set up Go
uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 # v5.0.1
with:
go-version: ${{ steps.vars.outputs.go_version }}
- name: Run unit tests
run: make -e unit-cover
env:
TEST_FLAGS: "-v"

0 comments on commit 3d81425

Please sign in to comment.