Migrate CI to GitLab, clean up Dockerfile and repo
This commit is contained in:
@@ -1,82 +0,0 @@
|
|||||||
name: Build and Push Docker Image
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
tags:
|
|
||||||
- '*'
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
- dev
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build_and_push:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Install Docker
|
|
||||||
run: |
|
|
||||||
apt-get update
|
|
||||||
apt-get install -y docker.io
|
|
||||||
|
|
||||||
- name: Checkout Repository
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set Kubernetes Context
|
|
||||||
uses: azure/k8s-set-context@v4
|
|
||||||
with:
|
|
||||||
method: kubeconfig
|
|
||||||
kubeconfig: ${{secrets.buildx_kubeconfig}}
|
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3
|
|
||||||
with:
|
|
||||||
driver: kubernetes
|
|
||||||
driver-opts: |
|
|
||||||
namespace=gitea
|
|
||||||
|
|
||||||
- name: Login to Docker Registry
|
|
||||||
uses: docker/login-action@v3
|
|
||||||
with:
|
|
||||||
registry: git.coopgo.io
|
|
||||||
username: ${{ secrets.REGISTRY_USER }}
|
|
||||||
password: ${{ secrets.REGISTRY_TOKEN }}
|
|
||||||
|
|
||||||
- name: Extract metadata (tags, labels) for Docker image
|
|
||||||
id: metadata
|
|
||||||
uses: docker/metadata-action@v3
|
|
||||||
with:
|
|
||||||
images: git.coopgo.io/${{gitea.repository}}
|
|
||||||
tags: |
|
|
||||||
type=ref,event=branch
|
|
||||||
type=ref,event=tag
|
|
||||||
type=ref,event=pr
|
|
||||||
flavor: |
|
|
||||||
latest=auto
|
|
||||||
|
|
||||||
- name: Build and push
|
|
||||||
uses: docker/build-push-action@v5
|
|
||||||
with:
|
|
||||||
context: .
|
|
||||||
push: true
|
|
||||||
tags: |
|
|
||||||
${{ steps.metadata.outputs.tags }}
|
|
||||||
build-args: |
|
|
||||||
ACCESS_TOKEN_USR=${{gitea.actor}}
|
|
||||||
ACCESS_TOKEN_PWD=${{gitea.token}}
|
|
||||||
|
|
||||||
# BUILD WITH KANIKO
|
|
||||||
# - name: Kaniko build and push
|
|
||||||
# uses: aevea/action-kaniko@master
|
|
||||||
# with:
|
|
||||||
# build_file: Dockerfile
|
|
||||||
# registry: git.coopgo.io
|
|
||||||
# username: ${{secrets.registry_user}}
|
|
||||||
# password: ${{secrets.registry_token}}
|
|
||||||
# image: ${{gitea.repository}}
|
|
||||||
# tag: ${{gitea.ref_name}}
|
|
||||||
# cache: true
|
|
||||||
# cache_registry: git.coopgo.io/${{gitea.repository}}/cache
|
|
||||||
# extra-args: |
|
|
||||||
# ACCESS_TOKEN_USR=${{gitea.actor}}
|
|
||||||
# ACCESS_TOKEN_PWD=${{gitea.token}}
|
|
||||||
|
|
||||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,4 +1,6 @@
|
|||||||
config.yaml
|
config.yaml
|
||||||
.vscode
|
.vscode
|
||||||
|
.idea/
|
||||||
__debug_bin
|
__debug_bin
|
||||||
mobility-accounts
|
mobility-accounts
|
||||||
|
build/
|
||||||
|
|||||||
31
.gitlab-ci.yml
Normal file
31
.gitlab-ci.yml
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
stages:
|
||||||
|
- test
|
||||||
|
- publish
|
||||||
|
|
||||||
|
variables:
|
||||||
|
GOLANG_VERSION: "1.24"
|
||||||
|
|
||||||
|
default:
|
||||||
|
image: golang:${GOLANG_VERSION}
|
||||||
|
|
||||||
|
test:
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- go test ./...
|
||||||
|
|
||||||
|
docker:
|
||||||
|
stage: publish
|
||||||
|
image: docker:latest
|
||||||
|
services:
|
||||||
|
- docker:dind
|
||||||
|
variables:
|
||||||
|
DOCKER_BUILDKIT: "1"
|
||||||
|
before_script:
|
||||||
|
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||||
|
script:
|
||||||
|
- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG .
|
||||||
|
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG
|
||||||
|
- docker tag $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG $CI_REGISTRY_IMAGE:latest
|
||||||
|
- docker push $CI_REGISTRY_IMAGE:latest
|
||||||
|
rules:
|
||||||
|
- if: $CI_COMMIT_TAG
|
||||||
8
.idea/.gitignore
generated
vendored
8
.idea/.gitignore
generated
vendored
@@ -1,8 +0,0 @@
|
|||||||
# Default ignored files
|
|
||||||
/shelf/
|
|
||||||
/workspace.xml
|
|
||||||
# Editor-based HTTP Client requests
|
|
||||||
/httpRequests/
|
|
||||||
# Datasource local storage ignored files
|
|
||||||
/dataSources/
|
|
||||||
/dataSources.local.xml
|
|
||||||
4
.idea/mobility-accounts.iml
generated
4
.idea/mobility-accounts.iml
generated
@@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<module version="4">
|
|
||||||
<component name="Go" enabled="true" />
|
|
||||||
</module>
|
|
||||||
6
.idea/vcs.xml
generated
6
.idea/vcs.xml
generated
@@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="VcsDirectoryMappings">
|
|
||||||
<mapping directory="" vcs="Git" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
25
Dockerfile
25
Dockerfile
@@ -1,28 +1,15 @@
|
|||||||
FROM golang:alpine as builder
|
FROM golang:alpine AS builder
|
||||||
|
|
||||||
ARG ACCESS_TOKEN_USR="nothing"
|
WORKDIR /app
|
||||||
ARG ACCESS_TOKEN_PWD="nothing"
|
|
||||||
|
|
||||||
RUN apk add --no-cache ca-certificates tzdata
|
|
||||||
|
|
||||||
WORKDIR /
|
|
||||||
|
|
||||||
# Create a netrc file using the credentials specified using --build-arg
|
|
||||||
RUN printf "machine git.coopgo.io\n\
|
|
||||||
login ${ACCESS_TOKEN_USR}\n\
|
|
||||||
password ${ACCESS_TOKEN_PWD}\n"\
|
|
||||||
>> ~/.netrc
|
|
||||||
RUN chmod 600 ~/.netrc
|
|
||||||
|
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|
||||||
RUN go mod download && CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o /server
|
RUN CGO_ENABLED=0 go build -o /server
|
||||||
|
|
||||||
|
FROM gcr.io/distroless/static:nonroot
|
||||||
|
|
||||||
FROM scratch
|
|
||||||
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
|
|
||||||
COPY --from=builder /usr/share/zoneinfo /usr/share/zoneinfo
|
|
||||||
COPY --from=builder /server /
|
COPY --from=builder /server /
|
||||||
COPY --from=builder /oidc-provider/web /oidc-provider/web
|
COPY --from=builder /app/oidc-provider/web /oidc-provider/web
|
||||||
|
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
|
|||||||
Reference in New Issue
Block a user