Skip to content
Open
55 changes: 48 additions & 7 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ concurrency:
jobs:
build-and-push:
runs-on: ubuntu-latest
outputs:
tag: ${{ steps.get-tag.outputs.tag }}
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Multiple jobs now use the tag so it is helpful to add it as output.

steps:
- uses: actions/checkout@v3
with:
Expand All @@ -23,39 +25,78 @@ jobs:
- run: make build-berserker-network

- name: Get tag
run: |
TAG="$(make tag)"
echo "TAG=$TAG" >> "$GITHUB_ENV"
id: get-tag
run: echo "tag=$(make tag)" >> "$GITHUB_OUTPUT"

- name: Retag and push builder to rhacs-eng
uses: stackrox/actions/images/retag-and-push@v1
with:
src-image: builder
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The builder is now pushed to make it easier to use for the unit tests.

dst-image: quay.io/rhacs-eng/qa:berserker-builder-${{ steps.get-tag.outputs.tag }}
username: ${{ secrets.QUAY_RHACS_ENG_RW_USERNAME }}
password: ${{ secrets.QUAY_RHACS_ENG_RW_PASSWORD }}

- name: Retag and push builder to stackrox-io
uses: stackrox/actions/images/retag-and-push@v1
with:
src-image: builder
dst-image: quay.io/stackrox-io/berserker:builder-${{ steps.get-tag.outputs.tag }}
username: ${{ secrets.QUAY_STACKROX_IO_RW_USERNAME }}
password: ${{ secrets.QUAY_STACKROX_IO_RW_PASSWORD }}

- name: Retag and push berserker to rhacs-eng
uses: stackrox/actions/images/retag-and-push@v1
with:
src-image: berserker
dst-image: quay.io/rhacs-eng/qa:berserker-${{ env.TAG }}
dst-image: quay.io/rhacs-eng/qa:berserker-${{ steps.get-tag.outputs.tag }}
username: ${{ secrets.QUAY_RHACS_ENG_RW_USERNAME }}
password: ${{ secrets.QUAY_RHACS_ENG_RW_PASSWORD }}

- name: Retag and push berserker to stackrox-io
uses: stackrox/actions/images/retag-and-push@v1
with:
src-image: berserker
dst-image: quay.io/stackrox-io/berserker:${{ env.TAG }}
dst-image: quay.io/stackrox-io/berserker:${{ steps.get-tag.outputs.tag }}
username: ${{ secrets.QUAY_STACKROX_IO_RW_USERNAME }}
password: ${{ secrets.QUAY_STACKROX_IO_RW_PASSWORD }}

- name: Retag and push berserker-network to rhacs-eng
uses: stackrox/actions/images/retag-and-push@v1
with:
src-image: berserker-network
dst-image: quay.io/rhacs-eng/qa:berserker-network-${{ env.TAG }}
dst-image: quay.io/rhacs-eng/qa:berserker-network-${{ steps.get-tag.outputs.tag }}
username: ${{ secrets.QUAY_RHACS_ENG_RW_USERNAME }}
password: ${{ secrets.QUAY_RHACS_ENG_RW_PASSWORD }}

- name: Retag and push berserker-network to stackrox-io
uses: stackrox/actions/images/retag-and-push@v1
with:
src-image: berserker-network
dst-image: quay.io/stackrox-io/berserker:network-${{ env.TAG }}
dst-image: quay.io/stackrox-io/berserker:network-${{ steps.get-tag.outputs.tag }}
username: ${{ secrets.QUAY_STACKROX_IO_RW_USERNAME }}
password: ${{ secrets.QUAY_STACKROX_IO_RW_PASSWORD }}

unit-tests:
name: unit-tests (${{ matrix.test-type.name }})
needs: build-and-push
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
test-type:
- name: standard
command: cargo test
- name: asan
command: |
curl --proto "=https" --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain nightly &&
source "${HOME}"/.cargo/env &&
rustup component add rust-src --toolchain nightly &&
TARGET=$(rustc --version --verbose | grep host | cut -d" " -f2) &&
RUSTFLAGS="-Z sanitizer=address" cargo +nightly test -Z build-std --target "$TARGET"
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tests are invoked from the image itself nowadays:
https://github.com/stackrox/berserker/blob/main/Dockerfile.build#L32

steps:
- name: Pull builder image
run: docker pull quay.io/stackrox-io/berserker:builder-${{ needs.build-and-push.outputs.tag }}

- name: Run ${{ matrix.test-type.name }} tests
run: docker run --rm quay.io/stackrox-io/berserker:builder-${{ needs.build-and-push.outputs.tag }} bash -c '${{ matrix.test-type.command }}'

Loading