Compare commits
2 commits
5143c050a1
...
981852674a
Author | SHA1 | Date | |
---|---|---|---|
981852674a | |||
064c03c169 |
4 changed files with 167 additions and 0 deletions
95
.drone.yml
Normal file
95
.drone.yml
Normal file
|
@ -0,0 +1,95 @@
|
|||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: default
|
||||
|
||||
steps:
|
||||
- name: build:binary
|
||||
image: crystallang/crystal:1.10.1-alpine
|
||||
environment:
|
||||
PACKAGE_BASENAME: code-preloader_linux_amd64
|
||||
volumes:
|
||||
- name: cache
|
||||
path: /_cache
|
||||
commands:
|
||||
- pwd
|
||||
# - |
|
||||
# apt-get update && \
|
||||
# apt-get install -y \
|
||||
# cmake g++ \
|
||||
# libevent-dev libpcre3-dev \
|
||||
# libyaml-dev liblzma-dev
|
||||
- shards install
|
||||
- shards build --production --static
|
||||
- strip bin/code-preloader
|
||||
- ./bin/code-preloader --version
|
||||
- mkdir -p /_cache/bin
|
||||
- cp -r bin/code-preloader /_cache/bin/$PACKAGE_BASENAME
|
||||
|
||||
- name: publish:tag
|
||||
image: alpine
|
||||
environment:
|
||||
PACKAGE_UPLOAD_URL: https://code.apps.glenux.net/api/v1/packages/glenux/generic/code-preloader
|
||||
RELEASES_URL: https://code.apps.glenux.net/api/v1/repos/glenux/code-preloader/releases
|
||||
PACKAGE_BASENAME: code-preloader_linux_amd64
|
||||
RELEASE_UPLOAD_TOKEN:
|
||||
from_secret: RELEASE_UPLOAD_TOKEN
|
||||
PACKAGE_UPLOAD_TOKEN:
|
||||
from_secret: PACKAGE_UPLOAD_TOKEN
|
||||
when:
|
||||
ref:
|
||||
include:
|
||||
- refs/tags/**
|
||||
volumes:
|
||||
- name: cache
|
||||
path: /_cache
|
||||
commands:
|
||||
- apk add --update --no-cache curl jq
|
||||
- env |grep DRONE
|
||||
- |
|
||||
curl -H "Authorization: token $PACKAGE_UPLOAD_TOKEN" \
|
||||
--upload-file "/_cache/bin/$PACKAGE_BASENAME" \
|
||||
"$PACKAGE_UPLOAD_URL/$DRONE_TAG/$PACKAGE_BASENAME"
|
||||
- |
|
||||
set -x
|
||||
curl -X POST \
|
||||
-H "Authorization: token $RELEASE_UPLOAD_TOKEN" \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d "{\"body\": \"DRAFT\", \"draft\": true, \"name\": \"$DRONE_TAG - DRAFT\", \"prerelease\": false, \"tag_name\": \"$DRONE_TAG\", \"target_commitish\": \"$DRONE_COMMIT_SHA\"}" \
|
||||
"$RELEASES_URL"
|
||||
- |
|
||||
curl -X 'GET' \
|
||||
-H 'accept: application/json' \
|
||||
"$RELEASES_URL/tags/$DRONE_TAG"
|
||||
- |
|
||||
TAG_ID="$(curl -X 'GET' \
|
||||
-H 'accept: application/json' \
|
||||
"$RELEASES_URL/tags/$DRONE_TAG" | jq -r .id)"
|
||||
echo "TAG_ID=$TAG_ID"
|
||||
- |
|
||||
set -x
|
||||
curl -X POST \
|
||||
-H "Authorization: token $RELEASE_UPLOAD_TOKEN" \
|
||||
-H "accept: application/json" \
|
||||
-H "Content-Type: multipart/form-data" \
|
||||
-F "attachment=@/_cache/bin/$PACKAGE_BASENAME" \
|
||||
"$RELEASES_URL/$TAG_ID/assets?name=$PACKAGE_BASENAME"
|
||||
|
||||
|
||||
# FIXME: handle multi-arch
|
||||
# FIXME: publish only on tags
|
||||
services:
|
||||
- name: docker
|
||||
image: docker:dind
|
||||
privileged: true
|
||||
volumes:
|
||||
- name: dockersock
|
||||
path: /var/run
|
||||
|
||||
volumes:
|
||||
- name: cache
|
||||
temp: {}
|
||||
- name: dockersock
|
||||
temp: {}
|
||||
#
|
0
spec/config_data/complex_config.yml
Normal file
0
spec/config_data/complex_config.yml
Normal file
0
spec/config_data/simple_config.yml
Normal file
0
spec/config_data/simple_config.yml
Normal file
|
@ -0,0 +1,72 @@
|
|||
require "./spec_helper"
|
||||
require "../src/config"
|
||||
|
||||
CONFIG_FILE_SIMPLE = "spec/config_data/simple_config.yml"
|
||||
CONFIG_FILE_COMPLEX = "spec/config_data/complex_config.yml"
|
||||
|
||||
describe CodePreloader::Config do
|
||||
|
||||
context "Initialization" do
|
||||
it "initializes with default values" do
|
||||
config = CodePreloader::Config.new
|
||||
config.repository_path_list.should eq [] of String
|
||||
config.ignore_list.should eq [] of String
|
||||
config.output_file_path.should be_nil
|
||||
config.header_prompt_file_path.should be_nil
|
||||
config.footer_prompt_file_path.should be_nil
|
||||
end
|
||||
end
|
||||
|
||||
context "Parse Arguments" do
|
||||
it "parses repository paths correctly" do
|
||||
args = ["path/to/repo1", "path/to/repo2"]
|
||||
config = CodePreloader::Config.new
|
||||
config.parse_arguments(args)
|
||||
config.repository_path_list.should eq ["path/to/repo1", "path/to/repo2"]
|
||||
end
|
||||
|
||||
it "parses ignore paths correctly" do
|
||||
args = ["-i", "path/to/ignore", "path/to/repo"]
|
||||
config = CodePreloader::Config.new
|
||||
config.parse_arguments(args)
|
||||
config.ignore_list.should eq ["path/to/ignore"]
|
||||
end
|
||||
|
||||
it "parses output file path correctly" do
|
||||
args = ["-o", "output.txt", "path/to/repo"]
|
||||
config = CodePreloader::Config.new
|
||||
config.parse_arguments(args)
|
||||
config.output_file_path.should eq "output.txt"
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
context "Config File Loading" do
|
||||
it "loads settings from a simple config file" do
|
||||
config = CodePreloader::Config.new
|
||||
args = ["-c", CONFIG_FILE_SIMPLE, "path/to/repo"]
|
||||
config.parse_arguments(args)
|
||||
|
||||
# Assuming the simple_config.yml has specific settings
|
||||
config.repository_path_list.should eq ["simple/repo/path"]
|
||||
config.ignore_list.should eq ["simple/ignore"]
|
||||
config.output_file_path.should eq "simple_output.txt"
|
||||
# ... assertions for other properties if needed ...
|
||||
end
|
||||
|
||||
it "loads settings from a complex config file" do
|
||||
repo_path ="path/to/repo"
|
||||
config = CodePreloader::Config.new
|
||||
args = ["-c", CONFIG_FILE_COMPLEX, repo_path]
|
||||
config.parse_arguments(args)
|
||||
|
||||
# Assuming the complex_config.yml has specific settings
|
||||
config.repository_path_list.should eq [repo_path]
|
||||
config.ignore_list.should eq ["complex/ignore1", "complex/ignore2"]
|
||||
config.output_file_path.should eq "complex_output.txt"
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
Loading…
Reference in a new issue