Skip to content

Commit 86f500d

Browse files
authored
Merge pull request #1021 from mozilla/develop
v3.7.2
2 parents 2395f07 + 3370591 commit 86f500d

20 files changed

Lines changed: 379 additions & 190 deletions

.circleci/config.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ workflows:
44
build-and-deploy:
55
jobs:
66
- build
7-
- push:
7+
- push:
88
filters:
99
tags:
10-
only: /^v.*/
10+
only: /^v.*/
1111
branches:
1212
ignore: /.*/
1313
jobs:
@@ -30,7 +30,7 @@ jobs:
3030
resource_class: large
3131
steps:
3232
- checkout
33-
- run:
33+
- run:
3434
name: semver check
3535
command: |
3636
MAJOR=$(echo ${CIRCLE_TAG#v} | cut -d"." -f1)
@@ -46,8 +46,8 @@ jobs:
4646
4747
This job uses the semver from the git TAG as the public version to publish.
4848
49-
- This should only run on workflows triggered by a tag.
50-
- The tag name should be a semver like 'v1.2.3'
49+
- This should only run on workflows triggered by a tag.
50+
- The tag name should be a semver like 'v1.2.3'
5151
- The version should follow conventions documented at https://github.com/fsaintjacques/semver-tool
5252
EOF
5353
exit 1

.github/workflows/cli.yml

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,26 @@ on:
1212

1313
jobs:
1414
build:
15-
name: Build and test ${{ matrix.os }}
15+
name: Build and test ${{ matrix.os }} ${{ matrix.arch }}
1616
runs-on: ubuntu-latest
1717
strategy:
1818
matrix:
1919
os: [linux, darwin, windows]
20+
arch: [amd64, arm64]
21+
exclude:
22+
- os: windows
23+
arch: arm64
2024
env:
2125
VAULT_VERSION: "1.1.3"
2226
VAULT_TOKEN: "root"
2327
VAULT_ADDR: "http://127.0.0.1:8200"
2428
steps:
2529
- name: Install dependencies
2630
run: sudo apt-get update && sudo apt-get install git -y
27-
- name: Set up Go 1.13
31+
- name: Set up Go 1.17
2832
uses: actions/setup-go@v2
2933
with:
30-
go-version: 1.13
34+
go-version: 1.17
3135
id: go
3236
- name: Check out code into the Go module directory
3337
uses: actions/checkout@v2
@@ -37,13 +41,24 @@ jobs:
3741
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
3842
restore-keys: |
3943
${{ runner.os }}-go-
40-
- name: Build
44+
- name: Build Linux and Darwin
45+
if: matrix.os != 'windows'
46+
run: GOOS=${{ matrix.os }} GOARCH=${{ matrix.arch }} go build -o sops-${{ matrix.os }}-${{ matrix.arch }}-${{ github.sha }} -v ./cmd/sops
47+
- name: Build Windows
48+
if: matrix.os == 'windows'
4149
run: GOOS=${{ matrix.os }} go build -o sops-${{ matrix.os }}-${{ github.sha }} -v ./cmd/sops
4250
- name: Import test GPG keys
4351
run: for i in 1 2 3 4 5; do gpg --import pgp/sops_functional_tests_key.asc && break || sleep 15; done
4452
- name: Test
4553
run: make test
46-
- name: Upload artifact
54+
- name: Upload artifact for Linux and Darwin
55+
if: matrix.os != 'windows'
56+
uses: actions/upload-artifact@v2
57+
with:
58+
name: sops-${{ matrix.os }}-${{ matrix.arch }}-${{ github.sha }}
59+
path: sops-${{ matrix.os }}-${{ matrix.arch }}-${{ github.sha }}
60+
- name: Upload artifact for Windows
61+
if: matrix.os == 'windows'
4762
uses: actions/upload-artifact@v2
4863
with:
4964
name: sops-${{ matrix.os }}-${{ github.sha }}
@@ -63,9 +78,9 @@ jobs:
6378
uses: actions/checkout@v2
6479
- uses: actions/download-artifact@v2
6580
with:
66-
name: sops-linux-${{ github.sha }}
81+
name: sops-linux-amd64-${{ github.sha }}
6782
- name: Move SOPS binary
68-
run: mv sops-linux-${{ github.sha }} ./functional-tests/sops
83+
run: mv sops-linux-amd64-${{ github.sha }} ./functional-tests/sops
6984
- name: Make SOPS binary executable
7085
run: chmod +x ./functional-tests/sops
7186
- name: Download Vault

.github/workflows/release.yml

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,15 @@ jobs:
1515
run: sudo apt-get update && sudo apt-get install git ruby rpm -y
1616
- name: Install fpm
1717
run: gem install fpm || sudo gem install fpm
18-
- name: Set up Go 1.15
18+
- name: Set up Go 1.17
1919
uses: actions/setup-go@v2
2020
with:
21-
go-version: 1.15
21+
go-version: 1.17
2222
id: go
2323
- name: Check out code into the Go module directory
2424
uses: actions/checkout@v2
25+
- name: Go vendor
26+
run: go mod vendor
2527
- name: Make release directory
2628
run: mkdir dist
2729
- name: Build deb and rpm
@@ -32,20 +34,32 @@ jobs:
3234
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
3335
- name: Set RELEASE_NUMBER
3436
run: echo "RELEASE_NUMBER=$(echo $RELEASE_VERSION | cut -c2-)" >> $GITHUB_ENV
35-
- name: Build darwin binary
36-
run: GOOS=darwin CGO_ENABLED=0 go build -mod vendor -o dist/sops-${{ env.RELEASE_VERSION }}.darwin go.mozilla.org/sops/v3/cmd/sops
37+
- name: Build linux arm64 binary
38+
run: GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -mod vendor -o dist/sops-${{ env.RELEASE_VERSION }}.linux.arm64 go.mozilla.org/sops/v3/cmd/sops
39+
- name: Build darwin amd64 binary
40+
run: GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 go build -mod vendor -o dist/sops-${{ env.RELEASE_VERSION }}.darwin.amd64 go.mozilla.org/sops/v3/cmd/sops
41+
- name: Copy darwin amd64 to have a no-architecture labeled version
42+
run: cp dist/sops-${{ env.RELEASE_VERSION }}.darwin.amd64 dist/sops-${{ env.RELEASE_VERSION }}.darwin
43+
- name: Build darwin arm64 binary
44+
run: GOOS=darwin GOARCH=arm64 CGO_ENABLED=0 go build -mod vendor -o dist/sops-${{ env.RELEASE_VERSION }}.darwin.arm64 go.mozilla.org/sops/v3/cmd/sops
3745
- name: Build windows binary
3846
run: GOOS=windows CGO_ENABLED=0 go build -mod vendor -o dist/sops-${{ env.RELEASE_VERSION }}.exe go.mozilla.org/sops/v3/cmd/sops
3947
- name: Copy already built linux binary
40-
run: cp tmppkg/usr/local/bin/sops dist/sops-${{ env.RELEASE_VERSION }}.linux
48+
run: cp tmppkg/usr/local/bin/sops dist/sops-${{ env.RELEASE_VERSION }}.linux && cp tmppkg/usr/local/bin/sops dist/sops-${{ env.RELEASE_VERSION }}.linux.amd64
4149
- name: Create release
4250
uses: "mozilla/action-automatic-releases@latest"
4351
with:
4452
repo_token: "${{ secrets.GITHUB_TOKEN }}"
4553
prerelease: true
4654
files: |
4755
dist/sops-${{ env.RELEASE_VERSION }}.exe
56+
dist/sops-${{ env.RELEASE_VERSION }}.darwin.amd64
57+
dist/sops-${{ env.RELEASE_VERSION }}.darwin.arm64
4858
dist/sops-${{ env.RELEASE_VERSION }}.darwin
59+
dist/sops-${{ env.RELEASE_VERSION }}.linux.amd64
60+
dist/sops-${{ env.RELEASE_VERSION }}.linux.arm64
4961
dist/sops-${{ env.RELEASE_VERSION }}.linux
5062
dist/sops_${{ env.RELEASE_NUMBER }}_amd64.deb
63+
dist/sops_${{ env.RELEASE_NUMBER }}_arm64.deb
5164
dist/sops-${{ env.RELEASE_NUMBER }}-1.x86_64.rpm
65+
dist/sops-${{ env.RELEASE_NUMBER }}-1.aarch64.rpm

CHANGELOG.rst

Lines changed: 68 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,123 +1,138 @@
11
Changelog
22
=========
33

4+
3.7.2
5+
-----
6+
Changes:
7+
8+
* README updates (#861, #860)
9+
* Various test fixes (#909, #906, #1008)
10+
* Added Linux and Darwin arm64 releases (#911, #891)
11+
* Upgrade to go v1.17 (#1012)
12+
* Support SOPS_AGE_KEY environment variable (#1006)
13+
14+
Bug fixes:
15+
16+
* Make sure comments in yaml files are not duplicated (#866)
17+
* Make sure configuration file paths work correctly relative to the config file in us (#853)
18+
419
3.7.1
520
-----
621
Changes:
722

8-
* Security fix
9-
* Add release workflow (#843)
10-
* Fix issue where CI wouldn't run against master (#848)
11-
* Trim extra whitespace around age keys (#846)
23+
* Security fix
24+
* Add release workflow (#843)
25+
* Fix issue where CI wouldn't run against master (#848)
26+
* Trim extra whitespace around age keys (#846)
1227

1328
3.7.0
1429
-----
1530
Features:
1631

17-
* Add support for age (#688)
18-
* Add filename to exec-file (#761)
32+
* Add support for age (#688)
33+
* Add filename to exec-file (#761)
1934

2035
Changes:
2136

22-
* On failed decryption with GPG, return the error returned by GPG to the sops user (#762)
23-
* Use yaml.v3 instead of modified yaml.v2 for handling YAML files (#791)
24-
* Update aws-sdk-go to version v1.37.18 (#823)
37+
* On failed decryption with GPG, return the error returned by GPG to the sops user (#762)
38+
* Use yaml.v3 instead of modified yaml.v2 for handling YAML files (#791)
39+
* Update aws-sdk-go to version v1.37.18 (#823)
2540

2641
Project Changes:
2742

28-
* Switch from TravisCI to Github Actions (#792)
43+
* Switch from TravisCI to Github Actions (#792)
2944

3045
3.6.1
3146
-----
3247
Features:
3348

34-
* Add support for --unencrypted-regex (#715)
49+
* Add support for --unencrypted-regex (#715)
3550

3651
Changes:
3752

38-
* Use keys.openpgp.org instead of gpg.mozilla.org (#732)
39-
* Upgrade AWS SDK version (#714)
40-
* Support --input-type for exec-file (#699)
53+
* Use keys.openpgp.org instead of gpg.mozilla.org (#732)
54+
* Upgrade AWS SDK version (#714)
55+
* Support --input-type for exec-file (#699)
4156

4257
Bug fixes:
4358

44-
* Fixes broken Vault tests (#731)
45-
* Revert "Add standard newline/quoting behavior to dotenv store" (#706)
59+
* Fixes broken Vault tests (#731)
60+
* Revert "Add standard newline/quoting behavior to dotenv store" (#706)
4661

4762

4863
3.6.0
4964
-----
5065
Features:
5166

52-
* Support for encrypting data through the use of Hashicorp Vault (#655)
53-
* `sops publish` now supports `--recursive` flag for publishing all files in a directory (#602)
54-
* `sops publish` now supports `--omit-extensions` flag for omitting the extension in the destination path (#602)
55-
* sops now supports JSON arrays of arrays (#642)
67+
* Support for encrypting data through the use of Hashicorp Vault (#655)
68+
* `sops publish` now supports `--recursive` flag for publishing all files in a directory (#602)
69+
* `sops publish` now supports `--omit-extensions` flag for omitting the extension in the destination path (#602)
70+
* sops now supports JSON arrays of arrays (#642)
5671

5772
Improvements:
5873

59-
* Updates and standardization for the dotenv store (#612, #622)
60-
* Close temp files after using them for edit command (#685)
74+
* Updates and standardization for the dotenv store (#612, #622)
75+
* Close temp files after using them for edit command (#685)
6176

6277
Bug fixes:
6378

64-
* AWS SDK usage now correctly resolves the `~/.aws/config` file (#680)
65-
* `sops updatekeys` now correctly matches config rules (#682)
66-
* `sops updatekeys` now correctly uses the config path cli flag (#672)
67-
* Partially empty sops config files don't break the use of sops anymore (#662)
68-
* Fix possible infinite loop in PGP's passphrase prompt call (#690)
79+
* AWS SDK usage now correctly resolves the `~/.aws/config` file (#680)
80+
* `sops updatekeys` now correctly matches config rules (#682)
81+
* `sops updatekeys` now correctly uses the config path cli flag (#672)
82+
* Partially empty sops config files don't break the use of sops anymore (#662)
83+
* Fix possible infinite loop in PGP's passphrase prompt call (#690)
6984

7085
Project changes:
7186

72-
* Dockerfile now based off of golang version 1.14 (#649)
73-
* Push alpine version of docker image to Dockerhub (#609)
74-
* Push major, major.minor, and major.minor.patch tagged docker images to Dockerhub (#607)
75-
* Removed out of date contact information (#668)
76-
* Update authors in the cli help text (#645)
87+
* Dockerfile now based off of golang version 1.14 (#649)
88+
* Push alpine version of docker image to Dockerhub (#609)
89+
* Push major, major.minor, and major.minor.patch tagged docker images to Dockerhub (#607)
90+
* Removed out of date contact information (#668)
91+
* Update authors in the cli help text (#645)
7792

7893

7994
3.5.0
8095
-----
8196
Features:
8297

83-
* `sops exec-env` and `sops exec-file`, two new commands for utilizing sops secrets within a temporary file or env vars
98+
* `sops exec-env` and `sops exec-file`, two new commands for utilizing sops secrets within a temporary file or env vars
8499

85100
Bug fixes:
86101

87-
* Sanitize AWS STS session name, as sops creates it based off of the machines hostname
88-
* Fix for `decrypt.Data` to support `.ini` files
89-
* Various package fixes related to switching to Go Modules
90-
* Fixes for Vault-related tests running locally and in CI.
102+
* Sanitize AWS STS session name, as sops creates it based off of the machines hostname
103+
* Fix for `decrypt.Data` to support `.ini` files
104+
* Various package fixes related to switching to Go Modules
105+
* Fixes for Vault-related tests running locally and in CI.
91106

92107
Project changes:
93108

94-
* Change to proper use of go modules, changing to primary module name to `go.mozilla.org/sops/v3`
95-
* Change tags to requiring a `v` prefix.
96-
* Add documentation for `sops updatekeys` command
109+
* Change to proper use of go modules, changing to primary module name to `go.mozilla.org/sops/v3`
110+
* Change tags to requiring a `v` prefix.
111+
* Add documentation for `sops updatekeys` command
97112

98113
3.4.0
99114
-----
100115
Features:
101116

102-
* `sops publish`, a new command for publishing sops encrypted secrets to S3, GCS, or Hashicorp Vault
103-
* Support for multiple Azure authentication mechanisms
104-
* Azure Keyvault support to the sops config file
105-
* `encrypted_regex` option to the sops config file
117+
* `sops publish`, a new command for publishing sops encrypted secrets to S3, GCS, or Hashicorp Vault
118+
* Support for multiple Azure authentication mechanisms
119+
* Azure Keyvault support to the sops config file
120+
* `encrypted_regex` option to the sops config file
106121

107122
Bug fixes:
108123

109-
* Return non-zero exit code for invalid CLI flags
110-
* Broken path handling for sops editing on Windows
111-
* `go lint/fmt` violations
112-
* Check for pgp fingerprint before slicing it
124+
* Return non-zero exit code for invalid CLI flags
125+
* Broken path handling for sops editing on Windows
126+
* `go lint/fmt` violations
127+
* Check for pgp fingerprint before slicing it
113128

114129
Project changes:
115130

116-
* Build container using golang 1.12
117-
* Switch to using go modules
118-
* Hashicorp Vault server in Travis CI build
119-
* Mozilla Publice License file to repo
120-
* Replaced expiring test gpg keys
131+
* Build container using golang 1.12
132+
* Switch to using go modules
133+
* Hashicorp Vault server in Travis CI build
134+
* Mozilla Publice License file to repo
135+
* Replaced expiring test gpg keys
121136

122137
3.3.1
123138
-----

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
FROM golang:1.15
1+
FROM golang:1.17
22

33
COPY . /go/src/go.mozilla.org/sops
44
WORKDIR /go/src/go.mozilla.org/sops
55

66
RUN CGO_ENABLED=1 make install
77
RUN apt-get update
8-
RUN apt-get install -y vim python-pip emacs
8+
RUN apt-get install -y vim python3-pip emacs
99
RUN pip install awscli
1010
ENV EDITOR vim

Dockerfile.alpine

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
FROM golang:1.12-alpine3.10 AS builder
2+
FROM golang:1.17-alpine3.15 AS builder
23

34
RUN apk --no-cache add make
45

@@ -8,7 +9,7 @@ WORKDIR /go/src/go.mozilla.org/sops
89
RUN CGO_ENABLED=1 make install
910

1011

11-
FROM alpine:3.10
12+
FROM alpine:3.15
1213

1314
RUN apk --no-cache add \
1415
vim ca-certificates

0 commit comments

Comments
 (0)