Add github workflow (#1)

* Add github workflow
This commit is contained in:
Daniel Carrillo 2021-11-11 17:09:05 +01:00 committed by GitHub
parent c0d1143de6
commit 36f82eb6a7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 60 additions and 4 deletions

42
.github/workflows/main.yml vendored Normal file
View File

@ -0,0 +1,42 @@
name: CI
on:
push:
branches:
- main
tags:
- '*'
pull_request:
jobs:
tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: install go
uses: actions/setup-go@v2
with:
go-version: 1.17
- name: Lint
run: make lint
- name: Tests
run: make test
deploy:
runs-on: ubuntu-latest
needs: tests
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
steps:
- uses: actions/checkout@v2
- name: Set env
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Sign in to dockerhub
run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin
- name: Deploy image
run: make docker-build VERSION=$RELEASE_VERSION

View File

@ -1,10 +1,13 @@
FROM golang:1.17-alpine as builder FROM golang:1.17-alpine as builder
ARG ARG_VERSION
ENV VERSION $ARG_VERSION
WORKDIR /app WORKDIR /app
COPY . . COPY . .
RUN apk add make && make build RUN apk add make && make build VERSION=$VERSION
# Build final image # Build final image
FROM scratch FROM scratch

View File

@ -33,13 +33,24 @@ build:
.PHONY: docker-build .PHONY: docker-build
docker-build: docker-build:
docker build --tag ${DOCKER_URL}:${VERSION} . docker build --build-arg=ARG_VERSION="${VERSION}" --tag ${DOCKER_URL}:${VERSION} .
.PHONY: docker-push
docker-push: docker-build
ifneq (,$(findstring devel-,$(VERSION)))
@echo "VERSION is set to ${VERSION}, I can't push devel builds"
exit 1
else
docker push ${DOCKER_URL}:${VERSION}
docker tag ${DOCKER_URL}:${VERSION} ${DOCKER_URL}:latest
docker push ${DOCKER_URL}:latest
endif
.PHONY: docker-run .PHONY: docker-run
docker-run: docker-build docker-run: docker-build
docker run --tty --interactive --rm \ docker run --tty --interactive --rm \
-v $$PWD/test/GeoIP2-City-Test.mmdb:/tmp/GeoIP2-City-Test.mmdb:ro \ -v ${PWD}/test/GeoIP2-City-Test.mmdb:/tmp/GeoIP2-City-Test.mmdb:ro \
-v $$PWD/test/GeoLite2-ASN-Test.mmdb:/tmp/GeoLite2-ASN-Test.mmdb:ro -p 8080:8080 \ -v ${PWD}/test/GeoLite2-ASN-Test.mmdb:/tmp/GeoLite2-ASN-Test.mmdb:ro -p 8080:8080 \
${DOCKER_URL}:${VERSION} \ ${DOCKER_URL}:${VERSION} \
-geoip2-city /tmp/GeoIP2-City-Test.mmdb \ -geoip2-city /tmp/GeoIP2-City-Test.mmdb \
-geoip2-asn /tmp/GeoLite2-ASN-Test.mmdb \ -geoip2-asn /tmp/GeoLite2-ASN-Test.mmdb \