v1/internal: refactor GetComposeStatus
improve error handling
#4547
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tests | |
on: | |
pull_request: | |
branches: | |
- "*" | |
push: | |
branches: | |
- main | |
merge_group: | |
jobs: | |
lint: | |
name: "π Checks" | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up bootstrap Go 1.21 | |
uses: actions/[email protected] | |
with: | |
go-version: '1.21' | |
cache: false | |
id: go | |
- name: Check out code into the Go module directory | |
uses: actions/[email protected] | |
- name: Cache downloaded Go version | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/sdk | |
~/go/bin/go* | |
~/go/pkg/mod | |
~/.cache/go-build | |
~/.cache/golangci-lint/ | |
key: ${{ runner.os }}-go-sdk-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go-sdk | |
- name: Check that source has been prepared | |
run: | | |
./tools/prepare-source.sh | |
if [ -n "$(git status --porcelain)" ]; then | |
echo | |
echo "Please include these changes in your branch (only first 5k lines): " | |
git status -vv | head -n5000 | |
exit "1" | |
else | |
exit "0" | |
fi | |
- name: Build all binaries | |
run: make build | |
- name: golangci-lint | |
uses: golangci/golangci-lint-action@v4 | |
with: | |
version: v1.56.2 | |
skip-cache: true | |
- name: Run unit tests | |
run: make unit-tests | |
- name: Upload results to Codecov | |
uses: codecov/codecov-action@v4 | |
with: | |
files: ./coverage.txt | |
token: ${{ secrets.CODECOV_TOKEN }} | |
speccheck: | |
name: "π openapi spec check" | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/[email protected] | |
- name: Install openapi-spec-validator | |
run: pip install openapi-spec-validator | |
- name: Check v1 spec | |
run: make check-api-spec | |
shellcheck: | |
name: "π Shellcheck" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/[email protected] | |
- name: Run ShellCheck | |
uses: ludeeus/[email protected] | |
with: | |
ignore: vendor # We don't want to fix the code in vendored dependencies | |
env: | |
# don't check /etc/os-release sourcing and allow useless cats to live inside our codebase | |
# allow seemingly unreachable commands | |
SHELLCHECK_OPTS: -e SC1091 -e SC2002 -e SC2317 | |
db-test: | |
name: "π DB check" | |
runs-on: ubuntu-latest | |
services: | |
postgres: | |
image: postgres | |
env: | |
POSTGRES_USER: postgres | |
POSTGRES_PASSWORD: foobar | |
POSTGRES_DB: imagebuilder | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
ports: | |
- 5432:5432 | |
steps: | |
- uses: actions/[email protected] | |
- uses: actions/[email protected] | |
with: | |
go-version: '1.21' | |
- env: | |
MIGRATIONS_DIR: internal/db/migrations | |
TERN_MIGRATIONS_DIR: internal/db/migrations-tern | |
PGUSER: postgres | |
PGPASSWORD: foobar | |
PGDATABASE: imagebuilder | |
PGHOST: localhost | |
PGPORT: 5432 | |
run: | | |
go install github.com/jackc/tern@latest | |
tern migrate -m "$TERN_MIGRATIONS_DIR" | |
make image-builder-db-test | |
./image-builder-db-test | |
kube-linter: | |
name: "π kube-linter" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/[email protected] | |
- uses: redhat-actions/oc-installer@v1 | |
- name: Process template | |
run: | | |
mkdir processed-templates | |
oc process -f templates/image-builder.yml \ | |
-p IMAGE_TAG=image_tag \ | |
--local \ | |
-o yaml > processed-templates/image-builder.yml | |
oc process -f templates/iqe-trigger-integration.yml \ | |
-p IMAGE_TAG=image_tag \ | |
--local \ | |
-o yaml > processed-templates/iqe-trigger-integration.yml | |
- uses: stackrox/[email protected] | |
with: | |
directory: processed-templates | |
config: templates/.kube-linter-config.yml |