Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI: Update v2 branch CI to be on par with v3 #286

Merged
merged 2 commits into from
Aug 27, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .github/actions/build-gosop/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ name: 'build-gosop'
description: 'Build gosop from the current branch'

inputs:

gopenpgp-ref:
description: 'gopenpgp branch tag or commit to build from'
required: true
Expand All @@ -21,6 +20,12 @@ runs:
with:
ref: ${{ inputs.gopenpgp-ref }}
path: gopenpgp
- name: Set env
run: echo "GOSOP_BRANCH_REF=$(./.github/test-suite/determine_gosop_branch.sh)" >> $GITHUB_ENV
shell: bash
- name: Print gosop branch
run: echo ${{ env.GOSOP_BRANCH_REF}}
shell: bash
# Build gosop
- name: Set up latest golang
uses: actions/setup-go@v3
Expand All @@ -30,6 +35,7 @@ runs:
uses: actions/checkout@v3
with:
repository: ProtonMail/gosop
ref: ${{ env.GOSOP_BRANCH_REF}}
path: gosop
- name: Cache go modules
uses: actions/cache@v3
Expand Down
6 changes: 4 additions & 2 deletions .github/test-suite/build_gosop.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
VERSION=$(awk '/^module github.com\/ProtonMail\/gopenpgp\/v[0-9]+/ {print $NF}' gopenpgp/go.mod | awk -F'v' '{print $2}')

cd gosop
echo "replace github.com/ProtonMail/gopenpgp/v2 => ../gopenpgp" >> go.mod
go get github.com/ProtonMail/gopenpgp/v2/crypto
echo "replace github.com/ProtonMail/gopenpgp/v${VERSION} => ../gopenpgp" >> go.mod
go get github.com/ProtonMail/gopenpgp/v${VERSION}/crypto
go build .
8 changes: 2 additions & 6 deletions .github/test-suite/config.json.template
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
"path": "__GOSOP_BRANCH__"
},
{
"id": "gosop-main",
"path": "__GOSOP_MAIN__"
"id": "gosop-target",
"path": "__GOSOP_TARGET__"
},
{
"path": "__SQOP__"
Expand All @@ -17,10 +17,6 @@
{
"path": "__SOP_OPENPGPJS__"
},
{
"id": "gosop-v2",
"path": "__GOSOP_V2__"
},
{
"path": "__RNP_SOP__"
}
Expand Down
7 changes: 7 additions & 0 deletions .github/test-suite/determine_gosop_branch.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
VERSION=$(awk '/^module github.com\/ProtonMail\/gopenpgp\/v[0-9]+/ {print $NF}' gopenpgp/go.mod | awk -F'v' '{print $2}')

if [ "$VERSION" -eq 3 ]; then
echo "gosop-gopenpgp-v3"
else
echo "main"
fi
twiss marked this conversation as resolved.
Show resolved Hide resolved
7 changes: 3 additions & 4 deletions .github/test-suite/prepare_config.sh
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
CONFIG_TEMPLATE=$1
CONFIG_OUTPUT=$2
GOSOP_BRANCH=$3
GOSOP_MAIN=$4
GOSOP_TARGET=$4
cat $CONFIG_TEMPLATE \
| sed "s@__GOSOP_BRANCH__@${GOSOP_BRANCH}@g" \
| sed "s@__GOSOP_MAIN__@${GOSOP_MAIN}@g" \
| sed "s@__GOSOP_TARGET__@${GOSOP_TARGET}@g" \
| sed "s@__SQOP__@${SQOP}@g" \
| sed "s@__GPGME_SOP__@${GPGME_SOP}@g" \
| sed "s@__SOP_OPENPGPJS__@${SOP_OPENPGPJS}@g" \
| sed "s@__GOSOP_V2__@${GOSOP_DIR_V2}/gosop@g" \
| sed "s@__SOP_OPENPGPJS__@${SOP_OPENPGPJS_V2}@g" \
| sed "s@__RNP_SOP__@${RNP_SOP}@g" \
> $CONFIG_OUTPUT
4 changes: 2 additions & 2 deletions .github/workflows/android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
branches: [ main, v2 ]

jobs:
build:
name: Build library for Android with gomobile
runs-on: ubuntu-latest
runs-on: ubuntu-20.04

steps:
- name: Set up JDK 1.8
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/go.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
branches: [ main, v2 ]

jobs:
test:
Expand Down Expand Up @@ -36,7 +36,7 @@ jobs:

- name: Test
run: go test -v -race ./...

lint:
name: Lint
runs-on: ubuntu-latest
Expand All @@ -48,4 +48,4 @@ jobs:
- name: golangci-lint
uses: golangci/golangci-lint-action@v3
with:
version: v1.50.1
version: v1.50.1
9 changes: 3 additions & 6 deletions .github/workflows/ios.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,18 @@ on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
branches: [ main, v2 ]

jobs:
build:
name: Build library for iOS with gomobile
runs-on: macos-latest

steps:
- name: Set up xcode 14.2
- name: Set up xcode 14.3
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: 14.2
xcode-version: 14.3
id: xcode

- name: Set up Go 1.x
Expand All @@ -31,9 +31,6 @@ jobs:
env:
platform: ${{ 'iOS Simulator' }}
run: |
for d in $ANDROID_NDK_HOME/../23*; do
ANDROID_NDK_HOME=$d
done
./build.sh apple
find dist

Expand Down
46 changes: 23 additions & 23 deletions .github/workflows/sop-test-suite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: SOP interoperability test suite

on:
pull_request:
branches: [ main ]
branches: [ main, v2 ]

jobs:

Expand All @@ -23,49 +23,49 @@ jobs:
name: gosop-${{ github.sha }}
path: ./gosop-${{ github.sha }}

build-gosop-main:
name: Build gosop from main
build-gosop-target:
name: Build gosop from target
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Build gosop from branch
uses: ./.github/actions/build-gosop
with:
gopenpgp-ref: main
binary-location: ./gosop-main
gopenpgp-ref: ${{ github.base_ref }}
binary-location: ./gosop-target
# Upload as artifact
- name: Upload gosop-main artifact
- name: Upload gosop-target artifact
uses: actions/upload-artifact@v3
with:
name: gosop-main
path: ./gosop-main
name: gosop-target
path: ./gosop-target


test-suite:
name: Run interoperability test suite
runs-on: ubuntu-latest
container:
image: ghcr.io/protonmail/openpgp-interop-test-docker:v1.1.4
image: ghcr.io/protonmail/openpgp-interop-test-docker:v1.1.7
credentials:
username: ${{ github.actor }}
password: ${{ secrets.github_token }}
needs:
- build-gosop
- build-gosop-main
- build-gosop-target
steps:
- name: Checkout
uses: actions/checkout@v3
# Fetch gosop from main
- name: Download gosop-main
# Fetch gosop from target
- name: Download gosop-target
uses: actions/download-artifact@v3
with:
name: gosop-main
# Test gosop-main
- name: Make gosop-main executable
run: chmod +x gosop-main
- name: Print gosop-main version
run: ./gosop-main version --extended
name: gosop-target
# Test gosop-target
- name: Make gosop-target executable
run: chmod +x gosop-target
- name: Print gosop-target version
run: ./gosop-target version --extended
# Fetch gosop from branch
- name: Download gosop-branch
uses: actions/download-artifact@v3
Expand All @@ -80,7 +80,7 @@ jobs:
run: ./gosop-branch version --extended
# Run test suite
- name: Prepare test configuration
run: ./.github/test-suite/prepare_config.sh $CONFIG_TEMPLATE $CONFIG_OUTPUT $GITHUB_WORKSPACE/gosop-branch $GITHUB_WORKSPACE/gosop-main
run: ./.github/test-suite/prepare_config.sh $CONFIG_TEMPLATE $CONFIG_OUTPUT $GITHUB_WORKSPACE/gosop-branch $GITHUB_WORKSPACE/gosop-target
env:
CONFIG_TEMPLATE: .github/test-suite/config.json.template
CONFIG_OUTPUT: .github/test-suite/config.json
Expand All @@ -104,8 +104,8 @@ jobs:
name: test-suite-results.html
path: .github/test-suite/test-suite-results.html

compare-with-main:
name: Compare with main
compare-with-target:
name: Compare with target
runs-on: ubuntu-latest
needs: test-suite
steps:
Expand All @@ -117,9 +117,9 @@ jobs:
with:
name: test-suite-results.json
- name: Compare with baseline
uses: ProtonMail/openpgp-interop-test-analyzer@5d7f4b6868ebe3bfc909302828342c461f5f4940
uses: ProtonMail/openpgp-interop-test-analyzer@v2.0.0
with:
results: ${{ steps.download-test-results.outputs.download-path }}/test-suite-results.json
output: baseline-comparison.json
baseline: gosop-main
baseline: gosop-target
target: gosop-branch
Loading