Initial commit
This commit is contained in:
8
.deepsource.toml
Normal file
8
.deepsource.toml
Normal 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
80
.gitlab-ci.yml
Normal 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
10
Dockerfile
Normal 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
21
Main.go
Normal 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))
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user