Skip to content

Commit eceabf2

Browse files
committed
feat: initial release
0 parents  commit eceabf2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+2053
-0
lines changed

.github/CODEOWNERS

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Managed by modulesync - DO NOT EDIT
2+
# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/
3+
4+
# No matter which file got changed, request a review from the main developers
5+
* @OpenVoxProject/container-maintainers

.github/dependabot.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
# Managed by modulesync - DO NOT EDIT
3+
# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/
4+
5+
version: 2
6+
updates:
7+
# raise PRs for gem updates
8+
- package-ecosystem: bundler
9+
directory: "/"
10+
schedule:
11+
interval: daily
12+
time: "13:00"
13+
open-pull-requests-limit: 10
14+
15+
# Maintain dependencies for GitHub Actions
16+
- package-ecosystem: github-actions
17+
directory: "/"
18+
schedule:
19+
interval: daily
20+
time: "13:00"
21+
open-pull-requests-limit: 10
22+
23+
- package-ecosystem: "docker"
24+
directory: "/"
25+
schedule:
26+
interval: "daily"
27+
time: "13:00"
28+
open-pull-requests-limit: 10

.github/labeler.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
# Managed by modulesync - DO NOT EDIT
3+
# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/
4+
5+
skip-changelog:
6+
- head-branch: ['^release-*']

.github/release.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
---
2+
# Managed by modulesync - DO NOT EDIT
3+
# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/
4+
5+
# https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes
6+
7+
changelog:
8+
exclude:
9+
labels:
10+
- duplicate
11+
- invalid
12+
- modulesync
13+
- question
14+
- skip-changelog
15+
- wont-fix
16+
- wontfix
17+
18+
categories:
19+
- title: Breaking Changes 🛠
20+
labels:
21+
- backwards-incompatible
22+
23+
- title: New Features 🎉
24+
labels:
25+
- enhancement
26+
27+
- title: Bug Fixes 🐛
28+
labels:
29+
- bug
30+
31+
- title: Documentation Updates 📚
32+
labels:
33+
- documentation
34+
- docs
35+
36+
- title: Dependency Updates ⬆️
37+
labels:
38+
- dependencies
39+
40+
- title: Other Changes
41+
labels:
42+
- "*"

.github/workflows/build_docker.yml

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: Build and publish a 🛢️ container
2+
3+
on:
4+
push:
5+
branches:
6+
- 'main'
7+
tags:
8+
- '*'
9+
workflow_dispatch:
10+
11+
jobs:
12+
setup-matrix:
13+
runs-on: ubuntu-latest
14+
outputs:
15+
matrix: ${{ steps.set-matrix.outputs.matrix }}
16+
steps:
17+
- name: Source checkout
18+
uses: actions/checkout@v4
19+
20+
- id: set-matrix
21+
run: echo "matrix=$(cat build_versions.json | jq -c)" >> $GITHUB_OUTPUT
22+
23+
build-and-push-container:
24+
runs-on: ubuntu-latest
25+
permissions:
26+
contents: read
27+
packages: write
28+
needs: setup-matrix
29+
strategy:
30+
matrix: ${{ fromJson(needs.setup-matrix.outputs.matrix) }}
31+
steps:
32+
- name: Build OpenVox Server ${{ matrix.release }} container
33+
uses: voxpupuli/gha-build-and-publish-a-container@v2
34+
with:
35+
registry_password: ${{ secrets.GITHUB_TOKEN }}
36+
build_args: |
37+
OPENVOX_RELEASE=${{ matrix.release }}
38+
OPENVOXSERVER_VERSION=${{ matrix.server_version }}
39+
OPENVOXAGENT_VERSION=${{ matrix.agent_version }}
40+
OPENVOXDB_VERSION=${{ matrix.db_version }}
41+
R10K_VERSION=${{ matrix.r10k_version }}
42+
RUGGED_VERSION=${{ matrix.rugged_version }}
43+
build_arch: linux/amd64,linux/arm64
44+
build_context: openvoxserver
45+
buildfile: openvoxserver/Containerfile
46+
tags: |
47+
ghcr.io/OpenVoxProject/openvoxserver:${{ matrix.server_version }}-${{ github.ref_name }}
48+
ghcr.io/OpenVoxProject/openvoxserver:${{ matrix.server_version }}-latest
49+
ghcr.io/OpenVoxProject/openvoxserver:latest
50+
51+
# - name: Update Docker Hub Description for shortname
52+
# uses: peter-evans/dockerhub-description@v4
53+
# with:
54+
# username: voxpupulibot
55+
# password: ${{ secrets.DOCKERHUB_BOT_PASSWORD }}
56+
# repository: OpenVoxProject/openvoxserver

.github/workflows/ci.yaml

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
---
2+
name: CI🚦
3+
4+
on:
5+
pull_request:
6+
branches:
7+
- 'main'
8+
workflow_dispatch:
9+
10+
jobs:
11+
setup-matrix:
12+
runs-on: ubuntu-latest
13+
outputs:
14+
matrix: ${{ steps.set-matrix.outputs.matrix }}
15+
steps:
16+
- name: Source checkout
17+
uses: actions/checkout@v4
18+
19+
- id: set-matrix
20+
run: echo "matrix=$(jq -c . build_versions.json)" >> $GITHUB_OUTPUT
21+
22+
general_ci:
23+
uses: voxpupuli/crafty/.github/workflows/general_ci.yaml@main
24+
with:
25+
shellcheck_scan_dir: './openvoxserver'
26+
27+
build_test_container:
28+
name: 'Build test container'
29+
runs-on: ubuntu-latest
30+
permissions:
31+
actions: read
32+
contents: read
33+
security-events: write
34+
pull-requests: write
35+
needs: setup-matrix
36+
strategy:
37+
matrix: ${{ fromJson(needs.setup-matrix.outputs.matrix) }}
38+
steps:
39+
- name: Checkout repository
40+
uses: actions/checkout@v4
41+
42+
- name: Build image
43+
uses: docker/build-push-action@v6
44+
with:
45+
tags: 'ci/openvoxserver:${{ matrix.server_version }}'
46+
context: openvoxserver
47+
file: openvoxserver/Containerfile
48+
push: false
49+
build-args: |
50+
OPENVOX_RELEASE=${{ matrix.release }}
51+
OPENVOXSERVER_VERSION=${{ matrix.server_version }}
52+
OPENVOXAGENT_VERSION=${{ matrix.agent_version }}
53+
OPENVOXDB_VERSION=${{ matrix.db_version }}
54+
R10K_VERSION=${{ matrix.r10k_version }}
55+
RUGGED_VERSION=${{ matrix.rugged_version }}
56+
57+
tests:
58+
needs:
59+
- general_ci
60+
- build_test_container
61+
runs-on: ubuntu-latest
62+
name: Test suite
63+
steps:
64+
- run: echo Test suite completed
65+
66+
dependabot:
67+
permissions:
68+
contents: write
69+
name: 'Dependabot auto-merge'
70+
needs:
71+
- tests
72+
runs-on: ubuntu-latest
73+
if: ${{ github.actor == 'dependabot[bot]' && github.event_name == 'pull_request'}}
74+
steps:
75+
- name: Dependabot metadata
76+
id: metadata
77+
uses: dependabot/[email protected]
78+
with:
79+
github-token: '${{ secrets.GITHUB_TOKEN }}'
80+
81+
- name: Enable auto-merge for Dependabot PRs
82+
run: gh pr merge --auto --merge "$PR_URL"
83+
env:
84+
PR_URL: ${{github.event.pull_request.html_url}}
85+
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

.github/workflows/labeler.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
# Managed by modulesync - DO NOT EDIT
3+
# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/
4+
5+
name: Labeler 🏷️
6+
7+
on:
8+
- pull_request_target
9+
10+
jobs:
11+
labeler:
12+
name: Labeler
13+
uses: voxpupuli/crafty/.github/workflows/labeler.yml@main
14+
with:
15+
allowed_owner: ${{ github.repository_owner }}

.github/workflows/release.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
# Managed by modulesync - DO NOT EDIT
3+
# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/
4+
5+
name: Release 🚀
6+
7+
on:
8+
push:
9+
tags:
10+
- '*'
11+
12+
jobs:
13+
release:
14+
name: Release
15+
uses: voxpupuli/crafty/.github/workflows/release.yml@main
16+
with:
17+
allowed_owner: voxpupuli
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
---
2+
name: Security Scanning 🕵️
3+
4+
on:
5+
push:
6+
branches:
7+
- main
8+
pull_request:
9+
branches:
10+
- main
11+
12+
jobs:
13+
setup-matrix:
14+
runs-on: ubuntu-latest
15+
outputs:
16+
matrix: ${{ steps.set-matrix.outputs.matrix }}
17+
steps:
18+
- name: Source checkout
19+
uses: actions/checkout@v4
20+
21+
- id: set-matrix
22+
run: echo "matrix=$(jq -c . build_versions.json)" >> $GITHUB_OUTPUT
23+
24+
scan_ci_container:
25+
name: 'Scan CI container'
26+
runs-on: ubuntu-latest
27+
permissions:
28+
actions: read
29+
contents: read
30+
security-events: write
31+
needs: setup-matrix
32+
strategy:
33+
matrix: ${{ fromJson(needs.setup-matrix.outputs.matrix) }}
34+
steps:
35+
- name: Checkout repository
36+
uses: actions/checkout@v4
37+
38+
- name: Build CI container
39+
uses: docker/build-push-action@v6
40+
with:
41+
tags: 'ci/openvoxserver:${{ matrix.server_version }}'
42+
context: openvoxserver
43+
file: openvoxserver/Containerfile
44+
push: false
45+
build-args: |
46+
OPENVOX_RELEASE=${{ matrix.release }}
47+
OPENVOXSERVER_VERSION=${{ matrix.server_version }}
48+
OPENVOXAGENT_VERSION=${{ matrix.agent_version }}
49+
OPENVOXDB_VERSION=${{ matrix.db_version }}
50+
R10K_VERSION=${{ matrix.r10k_version }}
51+
RUGGED_VERSION=${{ matrix.rugged_version }}
52+
53+
- name: Scan image with Anchore Grype
54+
uses: anchore/scan-action@v5
55+
id: scan
56+
with:
57+
image: 'ci/openvoxserver:${{ matrix.server_version }}'
58+
fail-build: false
59+
60+
- name: Inspect action SARIF report
61+
run: jq . ${{ steps.scan.outputs.sarif }}
62+
63+
- name: Upload Anchore scan SARIF report
64+
uses: github/codeql-action/upload-sarif@v3
65+
with:
66+
sarif_file: ${{ steps.scan.outputs.sarif }}

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Managed by modulesync - DO NOT EDIT
2+
# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/
3+
4+
.bundle/
5+
.vendor/
6+
vendor/
7+
Gemfile.lock

.markdownlint.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"default": true,
3+
"MD033": {
4+
"allowed_elements": [
5+
"br"
6+
]
7+
},
8+
"MD013": {
9+
"line_length": 210
10+
}
11+
}

Gemfile

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# frozen_string_literal: true
2+
3+
# Managed by modulesync - DO NOT EDIT
4+
# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/
5+
6+
source ENV['GEM_SOURCE'] || 'https://rubygems.org'
7+
8+
group :release do
9+
gem 'faraday-retry', '~> 2.1', require: false
10+
gem 'github_changelog_generator', '~> 1.16.4', require: false
11+
end

0 commit comments

Comments
 (0)