Compare commits

...

7 Commits

Author SHA1 Message Date
Jim McDonald
77df1bba43 Update documentation 2020-07-22 09:04:59 +01:00
Jim McDonald
1d4e52cb49 Update troubleshooting 2020-07-22 08:48:17 +01:00
Jim McDonald
c1e124fbd3 Defer relocking appropriately. 2020-07-21 19:00:24 +01:00
Jim McDonald
91bc6ec86d Update cross-compile 2020-07-21 18:38:06 +01:00
Jim McDonald
cd55abc9bf Fix release version 2020-07-21 18:16:53 +01:00
Jim McDonald
44478e147e Add tag-based version 2020-07-21 18:04:36 +01:00
Jim McDonald
61b73b0f61 Rename workflow 2020-07-21 17:52:29 +01:00
7 changed files with 51 additions and 42 deletions

View File

@@ -1,8 +1,7 @@
name: Go
name: Release
on:
push:
# branches: [ master ]
tags:
- 'v*'
@@ -29,12 +28,6 @@ jobs:
dep ensure
fi
- name: Build
run: go build -v .
- name: Test
run: go test -v .
- name: Set env
run: |
echo '::set-env name=GO111MODULE::on'
@@ -49,12 +42,18 @@ jobs:
echo "::set-env name=RELEASE_VERSION::${RELEASE_VERSION}"
echo "::set-output name=RELEASE_VERSION::${RELEASE_VERSION}"
- name: Build
run: go build -v -ldflags="-X github.com/wealdtech/ethdo/cmd.ReleaseVersion=${RELEASE_VERSION}" .
- name: Test
run: go test -v .
- name: Fetch xgo
run: |
go get github.com/suburbandad/xgo
- name: Cross-compile
run: xgo -v -x --targets="linux/amd64,linux/arm64,windows/amd64" github.com/wealdtech/ethdo
run: xgo -v -x -ldflags="-X github.com/wealdtech/ethdo/cmd.ReleaseVersion=${RELEASE_VERSION}" --targets="linux/amd64,linux/arm64,windows/amd64" github.com/wealdtech/ethdo
- name: Create windows zip file
run: |
@@ -71,7 +70,7 @@ jobs:
mv ethdo-linux-arm64 ethdo
tar zcf ethdo-${RELEASE_VERSION}-linux-arm64.tar.gz ethdo
- name: Create release
- name: Create draft release
id: create_release
uses: actions/create-release@v1
env:
@@ -80,7 +79,7 @@ jobs:
tag_name: ${{ github.ref }}
release_name: Release ${{ env.RELEASE_VERSION }}
draft: true
prerelease: true
prerelease: false
- name: Upload windows zip file
id: upload-release-asset-windows

View File

@@ -10,7 +10,9 @@ A command-line tool for managing common tasks in Ethereum 2.
## Table of Contents
- [Install](#install)
- [Binaries](#binaries)
- [Docker](#docker)
- [Source](#source)
- [Usage](#usage)
- [Maintainers](#maintainers)
- [Contribute](#contribute)
@@ -18,6 +20,19 @@ A command-line tool for managing common tasks in Ethereum 2.
## Install
### Binaries
Binaries for the latest version of `ethdo` can be obtained from [the releases page](https://github.com/wealdtech/ethdo/releases).
### Docker
You can obtain the latest version of `ethdo` using docker with:
```
docker pull wealdtech/ethdo
```
### Source
`ethdo` is a standard Go program which can be installed with:
```sh
@@ -28,15 +43,7 @@ Note that `ethdo` requires at least version 1.13 of go to operate. The version
If this does not work please see the [troubleshooting](https://github.com/wealdtech/ethdo/blob/master/docs/troubleshooting.md) page.
### Docker
You can obtain the latest version of `ethdo` using docker with:
```
docker pull wealdtech/ethdo
```
Or build `ethdo` using docker:
The docker image can be build locally with:
```sh
docker build -t ethdo .
@@ -142,6 +149,8 @@ There is a [HOWTO](https://github.com/wealdtech/ethdo/blob/master/docs/howto.md)
Jim McDonald: [@mcdee](https://github.com/mcdee).
Special thanks to [@SuburbanDad](https://github.com/SuburbanDad) for updating xgo to allow for cross-compilation of `ethdo` releaes.
## Contribute
Contributions welcome. Please check out [the issues](https://github.com/wealdtech/ethdo/issues).

View File

@@ -55,7 +55,7 @@ In quiet mode this will return 0 if the key can be obtained, otherwise 1.`,
}
}
assert(unlocked, "Failed to unlock account to obtain private key")
defer errCheck(locker.Lock(context.Background()), "failed to re-lock account")
defer relockAccount(locker)
}
privateKey, err := privateKeyProvider.PrivateKey(ctx)
errCheck(err, "Failed to obtain private key")

View File

@@ -272,7 +272,7 @@ func accountFromPath(ctx context.Context, path string) (e2wtypes.Account, error)
if err != nil {
return nil, errors.New("invalid wallet passphrase")
}
defer errCheck(locker.Lock(context.Background()), "failed to re-lock account")
defer relockAccount(locker)
}
}
@@ -403,3 +403,8 @@ func openNamedWallet(walletName string) (e2wtypes.Wallet, error) {
}
return walletFromPath(walletName)
}
// relockAccount locks an account; generally called as a defer after an account is unlocked.
func relockAccount(locker e2wtypes.AccountLocker) {
errCheck(locker.Lock(context.Background()), "failed to re-lock account")
}

View File

@@ -1,4 +1,4 @@
// Copyright © 2019 Weald Technology Trading
// Copyright © 2019, 2020 Weald Technology Trading
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
@@ -22,15 +22,17 @@ import (
"github.com/spf13/viper"
)
var ReleaseVersion = "local build"
// versionCmd represents the version command
var versionCmd = &cobra.Command{
Use: "version",
Short: "Version of Ethdo",
Long: `Obtain the version of Ethdo. For example:
Short: "Version of ethdo",
Long: `Obtain the version of ethdo. For example:
ethdo version.`,
ethdo version`,
Run: func(cmd *cobra.Command, args []string) {
fmt.Println("1.5.0-prerelease")
fmt.Println(ReleaseVersion)
if viper.GetBool("verbose") {
buildInfo, ok := dbg.ReadBuildInfo()
if ok {

View File

@@ -2,19 +2,7 @@
## Installing ethdo
1. To install `ethdo`, issue the following command:
```sh
GO111MODULE=on go get github.com/wealdtech/ethdo@latest
```
2. Ensure `ethdo` is installed properly by issuing the command:
```sh
ethdo version
```
Ensure the output matches the most recent version listed on the repository's [release history](https://github.com/wealdtech/ethdo/releases/).
1. To install `ethdo`, use the instructions on the [main page](https://github.com/wealdtech/ethdo).
## Typical validating setups

View File

@@ -1,11 +1,11 @@
# Troubleshooting
## Compilation problems
## Compilation problems on Linux
### gcc not found
### cannot find -lstdc++
This is usually an error on linux systems. If you receive errors of this type your computer is missing some files to allow `ethdo` to build. To resolve this run the following command:
If you receive errors of this type your computer is missing some files to allow `ethdo` to build. To resolve this, run the following command:
```sh
sudo apt install build-essential libstdc++6
@@ -13,6 +13,12 @@ sudo apt install build-essential libstdc++6
and then try to install `ethdo` again.
## Compilation problems on Windows
### gcc not found
If you receive errors of this type your computer is missing some files to allow `ethdo` to build. To resolve this install gcc by following the instructions at http://mingw-w64.org/doku.php
## ethdo not found after installing
This is usually due to an incorrectly set path. Go installs its binaries (such as `ethdo`) in a particular location. The defaults are: