Skip to content
name: Acceptance testing (using e2e framework and examples)
on:
push:
branches:
- master
pull_request:
branches:
- master
types: [opened, synchronize, closed]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check out slimtoolkit/slim repo
uses: actions/[email protected]
- name: Set up Go development environment
uses: actions/[email protected]
with:
go-version: '1.21.4'
- name: Build Slim (multi-arch)
run: make build
- name: Upload Slim app binaries (Linux, amd64)
uses: actions/[email protected]
with:
name: dist_linux
path: dist_linux
retention-days: 1
- name: Upload Slim app binaries (Linux, arm64)
uses: actions/[email protected]
with:
name: dist_linux_arm64
path: dist_linux_arm64
retention-days: 1
- name: Upload Slim app binaries (Linux, arm)
uses: actions/[email protected]
with:
name: dist_linux_arm
path: dist_linux_arm
retention-days: 1
- name: Upload Slim app binaries (macOS, amd64)
uses: actions/[email protected]
with:
name: dist_mac
path: dist_mac
retention-days: 1
# Run sensor tests using the e2e testing framework.
test-sensor-e2e:
needs: build
strategy:
matrix:
os:
# macos runners don't support docker yet
- ubuntu-latest
include:
- os: ubuntu-latest
bin_artifacts: dist_linux
runs-on: ${{ matrix.os }}
steps:
- name: Check out slimtoolkit/slim repo
uses: actions/[email protected]
- name: Set up Go development environment
uses: actions/[email protected]
with:
go-version: '1.21.4'
- name: Download Slim app binaries
uses: actions/[email protected]
with:
name: ${{ matrix.bin_artifacts }}
path: bin
- name: Fix Slim app binaries permissions
run: chmod a+x bin/*
- name: Add Slim bin folder to $PATH
run: echo "${GITHUB_WORKSPACE}/bin" >> $GITHUB_PATH
- name: Run sensor e2e tests
timeout-minutes: 60
run: make test-e2e-sensor
# Run full-cycle tests (ab)using the slimtoolkit/examples repository.
test-full-e2e:
needs: build
strategy:
matrix:
os:
# macos runners don't support docker yet
- ubuntu-latest
suite:
- compose
- distroless
- dotnet
- elixir
- golang
- haskell
- http-probe
- image-edit
- java
- node
- php
- python
- ruby
- rust
include:
- os: ubuntu-latest
bin_artifacts: dist_linux
runs-on: ${{ matrix.os }}
steps:
- name: Check out slimtoolkit/slim repo
uses: actions/[email protected]
- name: Check out slimtoolkit/examples repo
uses: actions/[email protected]
with:
repository: slimtoolkit/examples
path: e2e
- name: Download Slim app binaries
uses: actions/[email protected]
with:
name: ${{ matrix.bin_artifacts }}
path: bin
- name: Fix Slim app binaries permissions
run: chmod a+x bin/*
- name: Add Slim app bin folder to $PATH
run: echo "${GITHUB_WORKSPACE}/bin" >> $GITHUB_PATH
- name: Run all e2e tests from slimtoolkit/examples
timeout-minutes: 60
run: |
export DSLIM_LOG_LEVEL=debug
export DSLIM_SHOW_CLOGS=1
export DSLIM_EXAMPLES_DIR=e2e
make test-e2e-${{ matrix.suite }}