From 36f82eb6a7ac12e4dcc49878b82252232431bed3 Mon Sep 17 00:00:00 2001 From: dcarrillo Date: Thu, 11 Nov 2021 17:09:05 +0100 Subject: [PATCH] Add github workflow (#1) * Add github workflow --- .github/workflows/main.yml | 42 ++++++++++++++++++++++++++++++++++++++ Dockerfile | 5 ++++- Makefile | 17 ++++++++++++--- 3 files changed, 60 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..774ebf2 --- /dev/null +++ b/.github/workflows/main.yml @@ -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 diff --git a/Dockerfile b/Dockerfile index 7ee8d70..571010b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,13 @@ FROM golang:1.17-alpine as builder +ARG ARG_VERSION +ENV VERSION $ARG_VERSION + WORKDIR /app COPY . . -RUN apk add make && make build +RUN apk add make && make build VERSION=$VERSION # Build final image FROM scratch diff --git a/Makefile b/Makefile index 5242ad4..dcbdf06 100644 --- a/Makefile +++ b/Makefile @@ -33,13 +33,24 @@ build: .PHONY: 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 docker-run: docker-build docker run --tty --interactive --rm \ - -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/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 \ ${DOCKER_URL}:${VERSION} \ -geoip2-city /tmp/GeoIP2-City-Test.mmdb \ -geoip2-asn /tmp/GeoLite2-ASN-Test.mmdb \