From ee27a4f9f401b57e1cfd9b1bb18193f2a4596c8c Mon Sep 17 00:00:00 2001
From: Eric Chiang <eric.chiang@coreos.com>
Date: Thu, 9 Mar 2017 09:14:48 -0800
Subject: [PATCH] *: only use docker when releasing, update to Go 1.8, remove
 aci scripts

This change modifies our release process to only require Docker
when building a release and updates our released binary to use Go
1.8. It also removes our .aci scripts, which we've not been
regularly building.

A nice consequence is that OSX users can now build a release image.
---
 .dockerignore                 |  3 +++
 .travis.yml                   |  3 ++-
 Documentation/dev-releases.md | 22 ----------------------
 Makefile                      | 18 ++----------------
 scripts/build-aci             | 30 ------------------------------
 scripts/docker-build          | 15 +++++++++++++++
 scripts/rkt-build             | 13 -------------
 7 files changed, 22 insertions(+), 82 deletions(-)
 create mode 100644 .dockerignore
 delete mode 100755 scripts/build-aci
 create mode 100755 scripts/docker-build
 delete mode 100755 scripts/rkt-build

diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 00000000..1c99e92d
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,3 @@
+*
+!_output/bin
+!web
diff --git a/.travis.yml b/.travis.yml
index d5b1346f..710223eb 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,7 +1,8 @@
 language: go
 
 go:
-  - 1.7.4
+  - 1.7.5
+  - 1.8
 
 services:
   - postgresql
diff --git a/Documentation/dev-releases.md b/Documentation/dev-releases.md
index 5c989fe9..30adb4d6 100644
--- a/Documentation/dev-releases.md
+++ b/Documentation/dev-releases.md
@@ -4,20 +4,15 @@ Making a dex release involves:
 
 * Tagging a git commit and pushing the tag to GitHub.
 * Building and pushing a Docker image.
-* Building, signing, and hosting an ACI.
 
 This requires the following tools.
 
-* rkt
 * Docker
-* [docker2aci](https://github.com/appc/docker2aci)
-* [acbuild](https://github.com/containers/build) (must be in your sudo user's PATH)
 
 And the following permissions.
 
 * Push access to the github.com/coreos/dex git repo.
 * Push access to the quay.io/coreos/dex Docker repo.
-* Access to the CoreOS application signing key.
 
 ## Tagging the release
 
@@ -80,24 +75,7 @@ Build the Docker image and push to Quay.
 ```bash
 # checkout the tag
 git checkout tags/v2.1.0
-# rkt doesn't play nice with SELinux, see https://github.com/coreos/rkt/issues/1727
-sudo setenforce Permissive
 # will prompt for sudo password
 make docker-image
 sudo docker push quay.io/coreos/dex:v2.1.0
 ```
-
-## Building the ACI
-
-```bash
-# checkout the tag
-git checkout tags/v2.1.0
-# rkt doesn't play nice with SELinux, see https://github.com/coreos/rkt/issues/1727
-sudo setenforce Permissive
-# will prompt for sudo password
-make aci
-# aci will be built at _output/image/dex.aci
-```
-
-Sign the ACI using the CoreOS application signing key. Upload the ACI and
-signature to the GitHub release.
diff --git a/Makefile b/Makefile
index 43de44d9..851ccfd8 100644
--- a/Makefile
+++ b/Makefile
@@ -36,7 +36,7 @@ bin/grpc-client: check-go-version
 
 .PHONY: release-binary
 release-binary:
-	@go build -o _output/bin/dex -v -ldflags $(LD_FLAGS) $(REPO_PATH)/cmd/dex
+	@go build -o /go/bin/dex -v -ldflags $(LD_FLAGS) $(REPO_PATH)/cmd/dex
 
 .PHONY: revendor
 revendor:
@@ -63,23 +63,9 @@ lint:
 	done
 
 _output/bin/dex:
-	# Using rkt to build the dex binary.
-	@./scripts/rkt-build
+	@./scripts/docker-build
 	@sudo chown $(user):$(group) _output/bin/dex
 
-_output/images/library-alpine-3.4.aci:
-	@mkdir -p _output/images
-	# Using docker2aci to get a base ACI to build from.
-	@docker2aci docker://alpine:3.4
-	@mv library-alpine-3.4.aci _output/images/library-alpine-3.4.aci
-
-.PHONY: aci
-aci: clean-release _output/bin/dex _output/images/library-alpine-3.4.aci
-	# Using acbuild to build a application container image.
-	@sudo ./scripts/build-aci ./_output/images/library-alpine-3.4.aci
-	@sudo chown $(user):$(group) _output/images/dex.aci
-	@mv _output/images/dex.aci _output/images/dex-$(VERSION)-linux-amd64.aci
-
 .PHONY: docker-image
 docker-image: clean-release _output/bin/dex
 	@sudo docker build -t $(DOCKER_IMAGE) .
diff --git a/scripts/build-aci b/scripts/build-aci
deleted file mode 100755
index 03f232a7..00000000
--- a/scripts/build-aci
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-if [ "$EUID" -ne 0 ]; then
-    echo "This script uses functionality which requires root privileges"
-    exit 1
-fi
-
-# Start the build with an empty ACI
-acbuild --debug begin $1
-
-# In the event of the script exiting, end the build
-trap "{ export EXT=$?; sudo acbuild --debug end && exit $EXT; }" EXIT
-
-# Name the ACI
-acbuild --debug set-name coreos.com/dex
-
-# Add a version label
-acbuild --debug label add version $( ./scripts/git-version )
-
-acbuild --debug run -- apk add --update ca-certificates 
-
-acbuild --debug copy _output/bin/dex /usr/local/bin/dex
-
-acbuild --debug port add www tcp 5556
-acbuild --debug port add grcp tpc 5557
-
-acbuild --debug set-exec -- /usr/local/bin/dex
-acbuild --debug write --overwrite _output/images/dex.aci
diff --git a/scripts/docker-build b/scripts/docker-build
new file mode 100755
index 00000000..8c1c8d6e
--- /dev/null
+++ b/scripts/docker-build
@@ -0,0 +1,15 @@
+#!/bin/bash -e
+
+mkdir -p _output/bin
+
+sudo docker run \
+    --cidfile=cid \
+    -v $PWD:/go/src/github.com/coreos/dex:ro \
+    -w /go/src/github.com/coreos/dex \
+    golang:1.8.0-alpine \
+    /bin/sh -x -c \
+    'apk add --no-cache --update alpine-sdk && make release-binary'
+
+sudo docker cp $( cat cid ):/go/bin/dex _output/bin/dex
+sudo docker rm $( cat cid )
+sudo rm cid
diff --git a/scripts/rkt-build b/scripts/rkt-build
deleted file mode 100755
index d22674d5..00000000
--- a/scripts/rkt-build
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/bash
-
-mkdir -p _output/bin
-
-sudo rkt run \
-    --volume dex,kind=host,source=$PWD \
-    --mount volume=dex,target=/go/src/github.com/coreos/dex \
-    --dns=8.8.8.8 \
-    --net=host \
-    --insecure-options=image \
-    docker://golang:1.7.4-alpine \
-    --exec=/bin/sh -- -x -c \
-    'apk add --no-cache --update alpine-sdk && cd /go/src/github.com/coreos/dex && make release-binary'
-- 
GitLab