Skip to content

Commit

Permalink
ci: Update CI to be on par with v3
Browse files Browse the repository at this point in the history
  • Loading branch information
lubux committed Jun 27, 2024
1 parent 2a07a34 commit 38e83de
Show file tree
Hide file tree
Showing 9 changed files with 54 additions and 47 deletions.
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
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

0 comments on commit 38e83de

Please sign in to comment.