Skip to content

Commit f1eb165

Browse files
committed
feat: initial release
1 parent bd221b9 commit f1eb165

File tree

20 files changed

+1018
-1
lines changed

20 files changed

+1018
-1
lines changed

.checkov.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
framework:
2+
- dockerfile
3+
4+
skip-check:
5+
# Skip root user check - required for Docker-in-Docker GitHub Actions runner
6+
- CKV_DOCKER_3
7+
8+
# Custom rule exclusions
9+
check:
10+
- DS002 # Also skip Trivy equivalent of the root user check

.devcontainer/devcontainer.json

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"name": "Ubuntu",
3+
"image": "mcr.microsoft.com/devcontainers/base:noble",
4+
"features": {
5+
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
6+
"ghcr.io/devcontainers/features/github-cli:1": {},
7+
"ghcr.io/devcontainers/features/node:1": {},
8+
"ghcr.io/guiyomh/features/vim:0": {}
9+
},
10+
"customizations": {
11+
"vscode": {
12+
"extensions": [
13+
"Mattickx.copilotignore-vscode",
14+
"GitHub.copilot-chat",
15+
"GitHub.copilot"
16+
]
17+
}
18+
}
19+
}

.github/linters/.hadolint.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
ignored:
2+
- DL3006 # Use USER to switch to non-root when possible
3+
- DL3008 # Pin versions in apt-get install
4+
- DL3013 # Use WORKDIR to switch to a directory
5+
6+
# You can add additional rules or custom configuration here

.github/linters/.shellcheckrc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Shellcheck configuration for docker-runner project
2+
3+
# Ignore SC1091 for logger.sh sourcing - file exists at runtime but not during linting
4+
disable=SC1091

.github/workflows/build.yml

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
name: Build Image
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- main
7+
release:
8+
types: [released]
9+
10+
concurrency:
11+
group: ${{ github.workflow }}-${{ github.ref }}
12+
cancel-in-progress: false
13+
14+
permissions: {}
15+
16+
jobs:
17+
docker:
18+
name: Docker
19+
runs-on: ubuntu-latest
20+
permissions:
21+
contents: read
22+
packages: write
23+
steps:
24+
- name: Checkout
25+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
26+
with:
27+
persist-credentials: false
28+
- name: Docker meta
29+
id: meta
30+
uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5.8.0
31+
with:
32+
images: |
33+
ghcr.io/${{ github.repository }}
34+
tags: |
35+
type=schedule
36+
type=semver,pattern={{version}}
37+
type=semver,pattern={{major}}.{{minor}}
38+
type=semver,pattern={{major}}
39+
type=ref,event=branch
40+
type=ref,event=pr
41+
type=sha
42+
- name: Set up Docker Buildx
43+
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
44+
- name: Login to Docker Hub
45+
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0
46+
with:
47+
registry: ghcr.io
48+
username: ${{ github.repository_owner }}
49+
password: ${{ secrets.GITHUB_TOKEN }}
50+
- name: Build and push
51+
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
52+
with:
53+
context: docker
54+
push: true
55+
tags: ${{ steps.meta.outputs.tags }}
56+
labels: ${{ steps.meta.outputs.labels }}
57+
cache-from: type=gha
58+
cache-to: type=gha,mode=max

.github/workflows/release.yml

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: Release Application
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
branches:
9+
- main
10+
workflow_dispatch:
11+
12+
concurrency:
13+
group: ${{ github.workflow }}-${{ github.ref }}
14+
cancel-in-progress: false
15+
16+
permissions: {}
17+
18+
jobs:
19+
lint:
20+
name: Lint
21+
runs-on: ubuntu-latest
22+
permissions:
23+
contents: read
24+
packages: read
25+
statuses: write
26+
steps:
27+
- name: Checkout code
28+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
29+
with:
30+
fetch-depth: 0
31+
persist-credentials: false
32+
- name: Lint
33+
uses: super-linter/super-linter@ffde3b2b33b745cb612d787f669ef9442b1339a6 # v8.1.0
34+
env:
35+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
36+
FILTER_REGEX_EXCLUDE: CHANGELOG.md
37+
38+
release:
39+
name: Release
40+
runs-on: ubuntu-latest
41+
needs:
42+
- lint
43+
permissions:
44+
contents: read
45+
steps:
46+
- name: Checkout
47+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
48+
with:
49+
persist-credentials: false
50+
- uses: actions/create-github-app-token@a8d616148505b5069dccd32f177bb87d7f39123b # v2.1.1
51+
id: token
52+
with:
53+
app-id: ${{ vars.APP_ID_SEMREL }}
54+
private-key: ${{ secrets.APP_KEY_SEMREL }}
55+
- name: Semantic release
56+
id: semrel
57+
uses: cycjimmy/semantic-release-action@9cc899c47e6841430bbaedb43de1560a568dfd16 # v5.0.0
58+
with:
59+
dry_run: ${{ github.event_name != 'push' }}
60+
ci: true
61+
env:
62+
GITHUB_TOKEN: ${{ steps.token.outputs.token }}

.gitignore

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# dev
2+
.copilot
3+
.dev
4+
5+
# superlinter
6+
# Super-linter outputs
7+
super-linter-output
8+
super-linter.log
9+
10+
# GitHub Actions leftovers
11+
github_conf

.releaserc.json

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"branches": ["main"],
3+
"tagFormat": "${version}",
4+
"plugins": [
5+
"@semantic-release/commit-analyzer",
6+
"@semantic-release/release-notes-generator",
7+
[
8+
"@semantic-release/changelog",
9+
{
10+
"changelogFile": "CHANGELOG.md"
11+
}
12+
],
13+
[
14+
"@semantic-release/git",
15+
{
16+
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}",
17+
"assets": ["CHANGELOG.md"]
18+
}
19+
],
20+
"@semantic-release/github"
21+
]
22+
}

.shellcheckrc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Shellcheck configuration for docker-runner project
2+
3+
# Ignore SC1091 for logger.sh sourcing - file exists at runtime but not during linting
4+
disable=SC1091

.trivyignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Skip root user check - required for Docker-in-Docker GitHub Actions runner
2+
AVD-DS-0002

0 commit comments

Comments
 (0)