Skip to content

Commit

Permalink
WIP testing
Browse files Browse the repository at this point in the history
  • Loading branch information
ps-jay committed May 20, 2024
1 parent be9158d commit d4d2b7a
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 58 deletions.
79 changes: 21 additions & 58 deletions .github/workflows/build-and-release.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
name: Build 🔨 and Release 🚀

on:
Expand All @@ -8,65 +9,27 @@ on:
- '**'

jobs:
test:
system-test:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- architecture: amd64
artifact: ebs-bootstrap-linux-x86_64
- architecture: arm64
artifact: ebs-bootstrap-linux-aarch64
name: Build and Test (${{ matrix.architecture }}) 🔨
steps:
- uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: ${{ matrix.architecture }}
- name: Build and Test 🔨
run: ./build/docker.sh --architecture ${{ matrix.architecture }}
- uses: actions/upload-artifact@v3
with:
name: ${{ matrix.artifact }}
path: ${{ matrix.artifact }}
if-no-files-found: error
retention-days: 1
- name: Checkout code
uses: actions/checkout@v4

release:
if: ${{ github.ref_name == github.event.repository.default_branch }} # Only release from the default branch
runs-on: ubuntu-latest
name: Release 🚀
needs:
- test
permissions:
contents: write
id-token: write
steps:
- uses: actions/checkout@v4
- name: Download all workflow run artifacts
uses: actions/download-artifact@v3
- id: version
name: Get next version
uses: reecetech/[email protected]
with:
scheme: semver
increment: patch
- id: github-release
name: Create Github Release 📦
uses: softprops/[email protected]
- name: Setup bats 🦇
uses: bats-core/[email protected]
with:
tag_name: ${{ steps.version.outputs.v-version }}
prerelease: false
draft: false
token: ${{ secrets.GITHUB_TOKEN }}
generate_release_notes: true
files: |
*/ebs-bootstrap-linux-*
- id: push-short-tag
name: Create release short tag 🏷
uses: richardsimko/[email protected]
with:
tag_name: ${{ steps.version.outputs.major-v-version }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
bats-version: 1.11.0

# - name: Download all workflow run artifacts
# uses: actions/download-artifact@v3

- name: Download
shell: bash
run: |
curl -fLsS https://github.com/reecetech/ebs-bootstrap/releases/download/v1.0.7/ebs-bootstrap-linux-x86_64 \
-o ebs-bootstrap
chmod +x ebs-bootstrap
- name: Setup Tests
run: bats bats/setup.bats
9 changes: 9 additions & 0 deletions bats/helper_print-info.bash
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/usr/bin/env bash
# vim: set ft=sh sw=4 :

# shellcheck disable=SC2154

function print_run_info() {
echo "status: ${status}"
echo "output: ${output}"
}
26 changes: 26 additions & 0 deletions bats/setup.bats
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/usr/bin/env bats
# vim: set ft=sh sw=4 :

load helper_print-info

setup() {
# get the containing directory of this file
# use $BATS_TEST_FILENAME instead of ${BASH_SOURCE[0]} or $0,
# as those will point to the bats executable's location or the preprocessed file respectively
DIR="$( cd "$( dirname "$BATS_TEST_FILENAME" )" >/dev/null 2>&1 && pwd )"
# make executables in root of the repo visible to PATH
PATH="$DIR/../:$PATH"
}

@test "setup loopback device" {
run bash -c '
dd if=/dev/zero of=/tmp/fs bs=4096 count=32768
&& sudo losetup -f /tmp/fs
&& losetup --associated /tmp/fs 2>&1 | tee /tmp/losetup
&& grep "/tmp/fs" /tmp/losetup | cut -d ':' -f 1 > /tmp/loopdev
'

print_run_info
[ "$status" -eq 0 ] &&
[[ "$output" = *"/tmp/fs"* ]]
}

0 comments on commit d4d2b7a

Please sign in to comment.