From 764c4ee5ac751fe6fb0000e1f8128e08e52fbf3a Mon Sep 17 00:00:00 2001 From: steve-chavez Date: Sun, 8 Nov 2020 14:03:21 -0500 Subject: [PATCH] nix: change release scripts to use a version arg --- .circleci/config.yml | 4 ++-- nix/release/default.nix | 31 +++++++++++++------------------ 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index b9e95ea6b1..9c0fda71de 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -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 diff --git a/nix/release/default.nix b/nix/release/default.nix index c28125a597..d237ee541b 100644 --- a/nix/release/default.nix +++ b/nix/release/default.nix @@ -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 = @@ -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.