Skip to content

Commit

Permalink
nix: change release scripts to use a version arg
Browse files Browse the repository at this point in the history
  • Loading branch information
steve-chavez committed Nov 8, 2020
1 parent 6efc89d commit 764c4ee
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 20 deletions.
4 changes: 2 additions & 2 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -140,13 +140,13 @@ jobs:
command: |
export GITHUB_USERNAME="$CIRCLE_PROJECT_USERNAME"
export GITHUB_REPONAME="$CIRCLE_PROJECT_REPONAME"
postgrest-release-github
postgrest-release-github $CIRCLE_TAG
- run:
name: Publish Docker images
command: |
export DOCKER_REPO=stevechavez
postgrest-docker-login
postgrest-release-dockerhub
postgrest-release-dockerhub $CIRCLE_TAG
postgrest-release-dockerhubdescription
# Build everything in default.nix, push to the Cachix binary cache and run tests
Expand Down
31 changes: 13 additions & 18 deletions nix/release/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -12,35 +12,28 @@ let
# Version from the postgrest.cabal file (gotten with callCabal2nix).
version = postgrest.version;

# Set of files that will be published in the GitHub release.
releaseFiles =
runCommand "postgrest-release-files"
{ inherit postgrest version; }
''
set -euo pipefail
mkdir -p $out
tar cvJf "$out"/postgrest-v"$version"-linux-x64-static.tar.xz \
-C "$postgrest"/bin postgrest
'';

# Script for publishing a new release on GitHub.
github =
writeShellScriptBin "postgrest-release-github"
''
set -euo pipefail
changes="$(sed -n "1,/${version}/d;/## \[/q;p" ${../../CHANGELOG.md})"
version=$1
changes="$(sed -n "1,/$version/d;/## \[/q;p" ${../../CHANGELOG.md})"
tar cvJf postgrest-$version-linux-x64-static.tar.xz \
-C ${postgrest}/bin postgrest
${ghr}/bin/ghr \
-t "$GITHUB_TOKEN" \
-u "$GITHUB_USERNAME" \
-r "$GITHUB_REPONAME" \
-b "$changes" \
--replace v${version} \
${releaseFiles}
--replace $version \
postgrest-$version-linux-x64-static.tar.xz
'';

# Wrapper for login with docker. $DOCKER_USER/$DOCKER_PASS vars come from CircleCI.
# The DOCKER_USER is not the same as DOCKER_REPO because we use the https://hub.docker.com/u/postgrestbot account for uploading to dockerhub.
dockerLogin =
Expand All @@ -57,13 +50,15 @@ let
''
set -euo pipefail
version=$1
docker load -i ${docker.image}
docker tag postgrest:latest "$DOCKER_REPO"/postgrest:latest
docker tag postgrest:latest "$DOCKER_REPO"/postgrest:v${version}
docker tag postgrest:latest "$DOCKER_REPO"/postgrest:$version
docker push "$DOCKER_REPO"/postgrest:latest
docker push "$DOCKER_REPO"/postgrest:v${version}
docker push "$DOCKER_REPO"/postgrest:$version
'';

# Script for updating the repository description on Docker Hub.
Expand Down

0 comments on commit 764c4ee

Please sign in to comment.