Skip to content

Commit

Permalink
Merge pull request #53 from schmidtw/master
Browse files Browse the repository at this point in the history
Merge the Concourse build changes and Centos 7 update.
  • Loading branch information
schmidtw committed Jun 12, 2019
2 parents 22044e5 + fede8f6 commit e0fbbfb
Show file tree
Hide file tree
Showing 9 changed files with 272 additions and 6 deletions.
20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [v0.1.2]
Jack is very helpful.



## [v0.1.1] Tue Mar 28 2017 Weston Schmidt - 0.1.1
- initial creation


[Unreleased]: https://github.com/Comcast/talaria/compare/v0.1.2...HEAD
[v0.1.2]: https://github.com/Comcast/talaria/compare/v0.1.1...v0.1.2
[v0.1.1]: https://github.com/Comcast/talaria/compare/v0.1.0...v0.1.1
2 changes: 0 additions & 2 deletions ChangeLog

This file was deleted.

91 changes: 91 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
DEFAULT: build

GOPATH := ${CURDIR}
GOFMT ?= gofmt
APP := scytale
FIRST_GOPATH := $(firstword $(subst :, ,$(shell go env GOPATH)))
BINARY := $(FIRST_GOPATH)/bin/$(APP)

PROGVER = $(shell grep 'applicationVersion.*= ' src/$(APP)/$(APP).go | awk '{print $$3}' | sed -e 's/\"//g')
RELEASE = 1

.PHONY: glide-install
glide-install:
export GOPATH=$(GOPATH) && cd src && glide install --strip-vendor

.PHONY: build
build: glide-install
export GOPATH=$(GOPATH) && cd src/$(APP) && go build

rpm:
mkdir -p ./.ignore/SOURCES
tar -czf ./.ignore/SOURCES/$(APP)-$(PROGVER).tar.gz --transform 's/^\./$(APP)-$(PROGVER)/' --exclude ./keys --exclude ./.git --exclude ./.ignore --exclude ./conf --exclude ./deploy --exclude ./vendor --exclude ./src/vendor .
cp etc/systemd/$(APP).service ./.ignore/SOURCES/
cp etc/$(APP)/$(APP).yaml ./.ignore/SOURCES/
rpmbuild --define "_topdir $(CURDIR)/.ignore" \
--define "_ver $(PROGVER)" \
--define "_releaseno $(RELEASE)" \
-ba etc/systemd/$(APP).spec

.PHONY: version
version:
@echo $(PROGVER)


# If the first argument is "update-version"...
ifeq (update-version,$(firstword $(MAKECMDGOALS)))
# use the rest as arguments for "update-version"
RUN_ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))
# ...and turn them into do-nothing targets
$(eval $(RUN_ARGS):;@:)
endif

.PHONY: update-version
update-version:
@echo "Update Version $(PROGVER) to $(RUN_ARGS)"
sed -i "s/$(PROGVER)/$(RUN_ARGS)/g" src/$(APP)/$(APP).go


.PHONY: install
install:
echo go build -o $(BINARY) $(PROGVER)

.PHONY: release-artifacts
release-artifacts: glide-install
mkdir -p ./.ignore
export GOPATH=$(GOPATH) && cd src/$(APP) && GOOS=darwin GOARCH=amd64 go build -o ../../.ignore/$(APP)-$(PROGVER).darwin-amd64
export GOPATH=$(GOPATH) && cd src/$(APP) && GOOS=linux GOARCH=amd64 go build -o ../../.ignore/$(APP)-$(PROGVER).linux-amd64

.PHONY: docker
docker:
docker build -f ./deploy/Dockerfile -t $(APP):$(PROGVER) .

# build docker without running modules
.PHONY: local-docker
local-docker:
GOOS=linux GOARCH=amd64 go build -o $(APP)_linux_amd64
docker build -f ./deploy/Dockerfile.local -t $(APP):local .

.PHONY: style
style:
! gofmt -d $$(find . -path ./vendor -prune -o -name '*.go' -print) | grep '^'

.PHONY: test
test:
go test -o $(BINARY) -v -race -coverprofile=cover.out $(go list ./... | grep -v "/vendor/")

.PHONY: test-cover
test-cover: test
go tool cover -html=cover.out

.PHONY: codecov
codecov: test
curl -s https://codecov.io/bash | bash

.PHONEY: it
it:
./it.sh

.PHONY: clean
clean:
rm -rf ./$(APP) ./.ignore ./coverage.txt ./vendor ./src/vendor
48 changes: 46 additions & 2 deletions build_rpm.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,41 @@

NAME=scytale

RPM_BUILD_ROOT=/root
SIGN=1


usage()
{
echo "usage: build_rpm.sh [--rpm-build-root path] [--no-sign]"
echo " --rpm-build-root - the path where /rpmbuild exists for your user"
echo " --no-sign - don't try to sign the build"
}

while [ "$1" != "" ]; do
case $1 in
--rpm-build-root ) shift
RPM_BUILD_ROOT=$1
;;

--no-sign ) SIGN=0
;;

--build-number ) shift
BUILD_NUMBER=$1
;;

-h | --help ) usage
exit
;;

* ) usage
exit 1

esac
shift
done

echo "Adjusting build number..."

taglist=`git tag -l`
Expand All @@ -26,20 +61,29 @@ echo "Building the ${NAME} rpm..."
pushd ..
cp -r ${NAME} ${NAME}-$release
tar -czvf ${NAME}-$new_release.tar.gz ${NAME}-$release
mv ${NAME}-$new_release.tar.gz /root/rpmbuild/SOURCES
mv ${NAME}-$new_release.tar.gz ${RPM_BUILD_ROOT}/rpmbuild/SOURCES
rm -rf ${NAME}-$release
popd

# Merge the changelog into the spec file so we're consistent
cat ${NAME}.spec.in > ${NAME}.spec
cat ChangeLog >> ${NAME}.spec

yes "" | rpmbuild -ba --sign \
if [ 0 == $SIGN ]; then
yes "" | rpmbuild -ba \
--define "_ver $release" \
--define "_releaseno ${BUILD_NUMBER}" \
--define "_fullver $new_release" \
${NAME}.spec
else
yes "" | rpmbuild -ba --sign \
--define "_signature gpg" \
--define "_gpg_name Comcast Xmidt Team <CHQSV-Xmidt-Gpg@comcast.com>" \
--define "_ver $release" \
--define "_releaseno ${BUILD_NUMBER}" \
--define "_fullver $new_release" \
${NAME}.spec
fi

pushd ..
echo "$new_release" > versionno.txt
Expand Down
File renamed without changes.
17 changes: 17 additions & 0 deletions etc/systemd/scytale.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
[Unit]
Description=The Xmidt API interface server.
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=simple
PIDFile=/run/scytale.pid
ExecStartPre=/usr/bin/rm -f /run/scytale.pid
ExecStart=/usr/bin/scytale
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutStopSec=10
KillMode=process
PrivateTmp=true
Restart=always

[Install]
WantedBy=multi-user.target
94 changes: 94 additions & 0 deletions etc/systemd/scytale.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
%define debug_package %{nil}

Name: scytale
Version: %{_ver}
Release: %{_releaseno}%{?dist}
Summary: The Xmidt API interface server.

Group: System Environment/Daemons
License: ASL 2.0
URL: https://github.com/Comcast/%{name}
Source0: %{name}-%{version}.tar.gz

BuildRequires: golang >= 1.11

Provides: %{name}

%description
The Xmidt API interface server.

%prep
%setup -q

%build
export GOPATH=$(pwd)
pushd src
glide i --strip-vendor
cd %{name}
go build %{name}
popd

%install

# Install Binary
%{__install} -D -p -m 755 src/%{name}/%{name} %{buildroot}%{_bindir}/%{name}

# Install Service
%{__install} -D -p -m 644 etc/systemd/%{name}.service %{buildroot}%{_unitdir}/%{name}.service

# Install Configuration
%{__install} -D -p -m 644 etc/%{name}/%{name}.yaml %{buildroot}%{_sysconfdir}/%{name}/%{name}.yaml


# Create Logging Location
%{__install} -d %{buildroot}%{_localstatedir}/log/%{name}

# Create Runtime Details Location
%{__install} -d %{buildroot}%{_localstatedir}/run/%{name}

%files
%defattr(-, %{name}, %{name}, -)

# Binary
%attr(755, %{name}, %{name}) %{_bindir}/%{name}

# Configuration
%dir %{_sysconfdir}/%{name}
%config(noreplace) %{_sysconfdir}/%{name}/%{name}.yaml

# Service Files
%{_unitdir}/%{name}.service

# Logging Location
%dir %{_localstatedir}/log/%{name}

# Runtime Details Location
%dir %{_localstatedir}/run/%{name}

%pre
# If app user does not exist, create
id %{name} >/dev/null 2>&1
if [ $? != 0 ]; then
/usr/sbin/groupadd -r %{name} >/dev/null 2>&1
/usr/sbin/useradd -d /var/run/%{name} -r -g %{name} %{name} >/dev/null 2>&1
fi


%post
%systemd_post %{name}.service

%preun
%systemd_preun %{name}.service

%postun
%systemd_postun %{name}.service

# Do not remove anything if this is not an uninstall
if [ $1 = 0 ]; then
/usr/sbin/userdel -r %{name} >/dev/null 2>&1
/usr/sbin/groupdel %{name} >/dev/null 2>&1
# Ignore errors from above
true
fi

%changelog
1 change: 1 addition & 0 deletions release_notes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

5 changes: 3 additions & 2 deletions src/scytale/scytale.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,9 @@ const (
//DefaultKeyID is used to build JWT validators
DefaultKeyID = "current"

applicationName = "scytale"
release = "Developer"
applicationName = "scytale"
release = "Developer"
applicationVersion = "0.1.2"
)

// scytale is the driver function for Scytale. It performs everything main() would do,
Expand Down

0 comments on commit e0fbbfb

Please sign in to comment.