Skip to content

feat: generate separate man pages for subcommands #982

feat: generate separate man pages for subcommands

feat: generate separate man pages for subcommands #982

Workflow file for this run

# SPDX-FileCopyrightText: 2023 Siemens AG
#
# SPDX-License-Identifier: Apache-2.0
#
# Author: Michael Adler <[email protected]>
---
name: CI
on: [push, pull_request, workflow_dispatch]
jobs:
build:
name: Build
runs-on: ubuntu-latest
container: golang:1.23.1@sha256:4f063a24d429510e512cc730c3330292ff49f3ade3ae79bda8f84a24fa25ecb0
strategy:
matrix:
# even though Windows is not officially supported, we want it to at least compile successfully
goos: [linux, windows]
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Setup Golang caches
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-golang-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-golang-
- name: Disable git security features
run: git config --global safe.directory '*'
- run: .ci/setup-build.sh
- name: build for ${{ matrix.goos }}
run: just build
env:
GOOS: ${{ matrix.goos }}
test:
name: Test
runs-on: ubuntu-latest
container: golang:1.23.1@sha256:4f063a24d429510e512cc730c3330292ff49f3ade3ae79bda8f84a24fa25ecb0
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Setup Golang caches
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-golang-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-golang-
- run: make test
- name: Upload coverage to Codecov
uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: coverage.out
test-postgres:
runs-on: ubuntu-latest
name: Test PostgreSQL
container: golang:1.23.1@sha256:4f063a24d429510e512cc730c3330292ff49f3ade3ae79bda8f84a24fa25ecb0
services:
postgres:
image: postgres:17@sha256:4ec37d2a07a0067f176fdcc9d4bb633a5724d2cc4f892c7a2046d054bb6939e5
env:
# see https://hub.docker.com/_/postgres
POSTGRES_HOST: postgres
POSTGRES_PORT: 5432
POSTGRES_DB: wfx
POSTGRES_USER: wfx
POSTGRES_PASSWORD: secret
POSTGRES_HOST_AUTH_METHOD: trust
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 3s
--health-timeout 5s
--health-retries 20
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Setup Golang caches
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-golang-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-golang-
- run: .ci/setup-postgres.sh
- run: just postgres-integration-test
env:
PGHOST: postgres
PGPORT: 5432
PGDATABASE: wfx
PGUSER: wfx
PGPASSWORD: secret
PGSSLMODE: disable
- name: Upload coverage to Codecov
# note: v4 is buggy and fails to upload this report
uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: coverage.out
test-mysql:
runs-on: ubuntu-latest
name: Test MySQL
container: golang:1.23.1@sha256:4f063a24d429510e512cc730c3330292ff49f3ade3ae79bda8f84a24fa25ecb0
services:
mysql:
image: mysql:8-debian@sha256:49f4fcb0087318aa1c222c7e8ceacbb541cdc457c6307d45e6ee4313f4902e33
env:
# see https://hub.docker.com/_/mysql
MYSQL_DATABASE: wfx
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: wfx
MYSQL_PASSWORD: secret
MYSQL_HOST: mysql
# Set health checks to wait until mysql has started
options: >-
--health-cmd="mysqladmin ping --silent"
--health-interval 3s
--health-timeout 5s
--health-retries 20
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Setup Golang caches
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-golang-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-golang-
- run: .ci/setup-mysql.sh
- run: just mysql-integration-test
env:
MYSQL_DATABASE: wfx
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: wfx
MYSQL_PASSWORD: secret
MYSQL_HOST: mysql
- name: Upload coverage to Codecov
# note: v4 is buggy and fails to upload this report
uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: coverage.out
cli-tests:
name: CLI Tests
runs-on: ubuntu-latest
container: golang:1.23.1@sha256:4f063a24d429510e512cc730c3330292ff49f3ade3ae79bda8f84a24fa25ecb0
services:
mysql:
image: mysql:8-debian@sha256:49f4fcb0087318aa1c222c7e8ceacbb541cdc457c6307d45e6ee4313f4902e33
env:
# see https://hub.docker.com/_/mysql
MYSQL_DATABASE: wfx
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: wfx
MYSQL_PASSWORD: secret
MYSQL_HOST: mysql
# Set health checks to wait until mysql has started
options: >-
--health-cmd="mysqladmin ping --silent"
--health-interval 3s
--health-timeout 5s
--health-retries 20
postgres:
image: postgres:17@sha256:4ec37d2a07a0067f176fdcc9d4bb633a5724d2cc4f892c7a2046d054bb6939e5
env:
# see https://hub.docker.com/_/postgres
POSTGRES_HOST: postgres
POSTGRES_PORT: 5432
POSTGRES_DB: wfx
POSTGRES_USER: wfx
POSTGRES_PASSWORD: secret
POSTGRES_HOST_AUTH_METHOD: trust
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 3s
--health-timeout 5s
--health-retries 20
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
with:
submodules: "true"
- name: Setup Golang caches
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-golang-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-golang-
- run: .ci/setup-cli-tests.sh
- name: Disable git security features
run: git config --global safe.directory '*'
- name: build wfx
run: make
- name: install wfx
run: make install
- name: run tests
env:
PGHOST: postgres
PGPORT: 5432
PGUSER: wfx
PGPASSWORD: secret
PGDATABASE: wfx
MYSQL_DATABASE: wfx
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: wfx
MYSQL_PASSWORD: secret
MYSQL_HOST: mysql
working-directory: test
run: bats .
lint:
runs-on: ubuntu-latest
name: Lint
container: golang:1.23.1@sha256:4f063a24d429510e512cc730c3330292ff49f3ade3ae79bda8f84a24fa25ecb0
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Disable git security features
run: git config --global safe.directory '*'
- run: .ci/setup-lint.sh
- run: just lint
reuse:
runs-on: ubuntu-latest
name: Reuse
container: fsfe/reuse:4.0.3@sha256:7e0ca22c55f73947d9ebc77deacc79357deff0c6abc63acdd87222f633718919
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- run: reuse lint || true # just a warning
generate:
name: Generate Code
runs-on: ubuntu-latest
container: golang:1.23.1@sha256:4f063a24d429510e512cc730c3330292ff49f3ade3ae79bda8f84a24fa25ecb0
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Install packages
run: .ci/setup-generate.sh
- name: Disable git security features
run: git config --global safe.directory '*'
- run: just generate
- run: git diff --exit-code