Skip to content

Commit

Permalink
Nightly: Also update hackage-src.json and stackage-src.json
Browse files Browse the repository at this point in the history
  • Loading branch information
rvl committed Apr 2, 2019
1 parent fedbc8e commit b12e3b3
Show file tree
Hide file tree
Showing 5 changed files with 72 additions and 15 deletions.
13 changes: 13 additions & 0 deletions .buildkite/updates.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ steps:
- nix-build -I nixpkgs=channel:nixos-18.09 -A maintainer-scripts.update-hackage -o update-hackage.sh
- echo "+++ Updating hackage.nix"
- ./update-hackage.sh
artifact_paths:
- "hackage-src.json"
agents:
system: x86_64-linux

Expand All @@ -12,5 +14,16 @@ steps:
- nix-build -I nixpkgs=channel:nixos-18.09 -A maintainer-scripts.update-stackage -o update-stackage.sh
- echo "+++ Updating stackage.nix"
- ./update-stackage.sh
artifact_paths:
- "stackage-src.json"
agents:
system: x86_64-linux

- wait: ~
continue_on_failure: true

- label: 'Update pins'
command:
- 'buildkite-agent artifact download "*.json" .'
- nix-build -A maintainer-scripts.update-pins -o update-pins.sh
- ./update-pins.sh
1 change: 1 addition & 0 deletions default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ let
maintainer-scripts = {
update-hackage = self.callPackage ./scripts/update-hackage.nix {};
update-stackage = self.callPackage ./scripts/update-stackage.nix {};
update-pins = self.callPackage ./scripts/update-pins.nix {};
};
});

Expand Down
25 changes: 25 additions & 0 deletions scripts/git.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Env variables and functions for updating git repos

export GIT_COMMITTER_NAME="IOHK"
export GIT_COMMITTER_EMAIL="[email protected]"
export GIT_AUTHOR_NAME="$GIT_COMMITTER_NAME"
export GIT_AUTHOR_EMAIL="$GIT_COMMITTER_EMAIL"

use_ssh_key() {
sshkey=$1
if [ -e $sshkey ]
then
echo "Authenticating using SSH with $sshkey"
export GIT_SSH_COMMAND="ssh -i $sshkey -F /dev/null"
else
echo "There is no SSH key at $sshkey"
echo "Git push may not work."
fi
}

check_staged() {
if git diff-index --cached --quiet HEAD --; then
echo "No changes to commit, exiting."
exit 0
fi
}
22 changes: 7 additions & 15 deletions scripts/update-external.nix
Original file line number Diff line number Diff line change
Expand Up @@ -19,27 +19,19 @@ in
${script}
source ${./git.env}
echo "Committing changes..."
export GIT_COMMITTER_NAME="IOHK"
export GIT_COMMITTER_EMAIL="[email protected]"
export GIT_AUTHOR_NAME="$GIT_COMMITTER_NAME"
export GIT_AUTHOR_EMAIL="$GIT_COMMITTER_EMAIL"
git add .
git commit --allow-empty --message "Automatic update for $(date)"
rev=$(git rev-parse HEAD)
check_staged
git commit --message "Automatic update for $(date)"
if [ -e ${sshKey} ]
then
echo "Authenticating using SSH with ${sshKey}"
export GIT_SSH_COMMAND="ssh -i ${sshKey} -F /dev/null"
else
echo "There is no SSH key at ${sshKey}"
echo "Git push may not work."
fi
use_ssh_key ${sshKey}
git push ${repoSSH}
rev=$(git rev-parse HEAD)
cd ..
nix-prefetch-git ${repoHTTPS} --rev "$rev" | tee ${name}-src.json
Expand Down
26 changes: 26 additions & 0 deletions scripts/update-pins.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{ stdenv, writeScript, coreutils, glibc, git, openssh }@args:

with stdenv.lib;

let
repo = "[email protected]:input-output-hk/haskell.nix.git";
sshKey = "/run/keys/buildkite-haskell-nix-ssh-private";
in
writeScript "update-pins.sh" ''
#!${stdenv.shell}
set -euo pipefail
export PATH="${makeBinPath [ coreutils glibc git openssh ]}"
source ${./git.env}
git add *.json
check_staged
echo "Committing changes..."
git commit --message "Update Hackage and Stackage"
use_ssh_key ${sshKey}
git push ${repo}
''

0 comments on commit b12e3b3

Please sign in to comment.