Initial commit

This commit is contained in:
2022-03-19 18:20:30 +00:00
commit 44e52ce2cc
6 changed files with 122 additions and 0 deletions

8
.deepsource.toml Normal file
View File

@@ -0,0 +1,8 @@
version = 1
[[analyzers]]
name = "go"
enabled = true
[analyzers.meta]
import_root = "gitlab.com/luketainton/insultgen"

80
.gitlab-ci.yml Normal file
View File

@@ -0,0 +1,80 @@
stages:
- test
- build
- upload
- release
sast:
stage: test
include:
- template: Security/SAST.gitlab-ci.yml
build-docker:
stage: build
only:
- tags
image: docker:19.03.12
services:
- docker:19.03.12-dind
variables:
IMAGE_TAG: "$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG"
script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker build -t $CI_REGISTRY_IMAGE:latest -t $IMAGE_TAG .
- docker build -t $IMAGE_TAG -t $CI_REGISTRY_IMAGE:latest .
- docker push $IMAGE_TAG
- docker push $CI_REGISTRY_IMAGE:latest
build-binary:
stage: build
only:
- tags
image: golang:1.17.3
before_script:
- cd $GOPATH/src
- mkdir -p gitlab.com/$CI_PROJECT_NAMESPACE
- cd gitlab.com/$CI_PROJECT_NAMESPACE
- ln -s $CI_PROJECT_DIR
- cd $CI_PROJECT_NAME
script:
- CGO_ENABLED=0 GOARCH=amd64 GOOS=darwin go build -o bin/insultgen-${CI_COMMIT_TAG}-darwin-amd64
- CGO_ENABLED=0 GOARCH=arm64 GOOS=darwin go build -o bin/insultgen-${CI_COMMIT_TAG}-darwin-arm64
- CGO_ENABLED=0 GOARCH=amd64 GOOS=linux go build -o bin/insultgen-${CI_COMMIT_TAG}-linux-amd64
- CGO_ENABLED=0 GOARCH=amd64 GOOS=windows go build -o bin/insultgen-${CI_COMMIT_TAG}-win-amd64.exe
- CGO_ENABLED=0 GOARCH=386 GOOS=windows go build -o bin/insultgen-${CI_COMMIT_TAG}-win-x86.exe
artifacts:
paths:
- bin/
upload:
stage: upload
image: curlimages/curl:latest
rules:
- if: "$CI_COMMIT_TAG"
dependencies:
- build-binary
script:
- 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file bin/insultgen-${CI_COMMIT_TAG}-darwin-amd64
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/insultgen/${CI_COMMIT_TAG}/insultgen-${CI_COMMIT_TAG}-darwin-amd64"'
- 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file bin/insultgen-${CI_COMMIT_TAG}-darwin-arm64
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/insultgen/${CI_COMMIT_TAG}/insultgen-${CI_COMMIT_TAG}-darwin-arm64"'
- 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file bin/insultgen-${CI_COMMIT_TAG}-linux-amd64
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/insultgen/${CI_COMMIT_TAG}/insultgen-${CI_COMMIT_TAG}-linux-amd64"'
- 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file bin/insultgen-${CI_COMMIT_TAG}-win-amd64.exe
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/insultgen/${CI_COMMIT_TAG}/insultgen-${CI_COMMIT_TAG}-win-amd64.exe"'
- 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file bin/insultgen-${CI_COMMIT_TAG}-win-x86.exe
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/insultgen/${CI_COMMIT_TAG}/insultgen-${CI_COMMIT_TAG}-win-x86.exe"'
release:
stage: release
image: registry.gitlab.com/gitlab-org/release-cli:v0.4.0
rules:
- if: "$CI_COMMIT_TAG"
script:
- |
release-cli create --name "$CI_COMMIT_TAG" --tag-name $CI_COMMIT_TAG \
--assets-link "{\"name\":\"insultgen-${CI_COMMIT_TAG}-darwin-amd64\",\"url\":\"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/insultgen/${CI_COMMIT_TAG}/insultgen-${CI_COMMIT_TAG}-darwin-amd64\"}" \
--assets-link "{\"name\":\"insultgen-${CI_COMMIT_TAG}-darwin-arm64\",\"url\":\"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/insultgen/${CI_COMMIT_TAG}/insultgen-${CI_COMMIT_TAG}-darwin-arm64\"}" \
--assets-link "{\"name\":\"insultgen-${CI_COMMIT_TAG}-linux-amd64\",\"url\":\"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/insultgen/${CI_COMMIT_TAG}/insultgen-${CI_COMMIT_TAG}-linux-amd64\"}" \
--assets-link "{\"name\":\"insultgen-${CI_COMMIT_TAG}-win-amd64.exe\",\"url\":\"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/insultgen/${CI_COMMIT_TAG}/insultgen-${CI_COMMIT_TAG}-win-amd64.exe\"}" \
--assets-link "{\"name\":\"insultgen-${CI_COMMIT_TAG}-win-x86.exe\",\"url\":\"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/insultgen/${CI_COMMIT_TAG}/insultgen-${CI_COMMIT_TAG}-win-x86.exe\"}"

10
Dockerfile Normal file
View File

@@ -0,0 +1,10 @@
FROM golang:1.17-alpine as build
WORKDIR /go/src/app
COPY . /go/src/app
RUN CGO_ENABLED=0 go build -o /go/bin/app
FROM gcr.io/distroless/base-debian11
LABEL maintainer="Luke Tainton <luke@tainton.uk>"
LABEL org.opencontainers.image.source="https://gitlab.com/luketainton/insultgen"
COPY --from=build /go/bin/app /
CMD ["/app"]

21
Main.go Normal file
View File

@@ -0,0 +1,21 @@
package main
import (
"fmt"
"io/ioutil"
"net/http"
"os"
)
func main() {
var insultURL string = "https://evilinsult.com/generate_insult.php"
resp, err := http.Get(insultURL)
if err != nil {
fmt.Println("FATAL: Cannot get insult.")
os.Exit(1)
}
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}

3
go.mod Normal file
View File

@@ -0,0 +1,3 @@
module insultgen
go 1.17

BIN
insultgen Executable file

Binary file not shown.