From 5c06582962a6364aa01c77e50443f4579da95f71 Mon Sep 17 00:00:00 2001 From: Jono Wenger <jono@elixxir.io> Date: Thu, 26 Jan 2023 10:13:58 -0800 Subject: [PATCH] Update .gitlab-ci.yml --- .gitlab-ci.yml | 106 ++++++++++++++++++++++++++++++++++--------------- 1 file changed, 74 insertions(+), 32 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e0e13707..43e8c1c9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -23,22 +23,13 @@ stages: - doc-update - version_check -build: - stage: build +go-test: + stage: test except: - tags script: - go mod vendor -v - - mkdir -p release - - GOOS=js GOARCH=wasm go build -ldflags '-w -s' -o release/xxdk.wasm main.go - - GOOS=js GOARCH=wasm go build -ldflags '-w -s' -trimpath -o release/xxdk-channelsIndexedDkWorker.wasm ./indexedDb/impl/channels/... - - GOOS=js GOARCH=wasm go build -ldflags '-w -s' -trimpath -o release/xxdk-dmIndexedDkWorker.wasm ./indexedDb/impl/dm/... - - cp wasm_exec.js release/ - - cp indexedDb/impl/channels/channelsIndexedDbWorker.js release/ - - cp indexedDb/impl/dm/dmIndexedDbWorker.js release/ - artifacts: - paths: - - release/ + - go test ./... -v wasm-test: stage: test @@ -47,35 +38,42 @@ wasm-test: script: - export PATH=/root/go/bin:$PATH - echo > utils/utils_js.s - - env - # - go install github.com/agnivade/wasmbrowsertest@latest - # - mv ~/go/bin/go_js_wasm_exec ~/go/bin/go_js_wasm_exec.old - # - ln -s ~/go/bin/wasmbrowsertest ~/go/bin/go_js_wasm_exec - go mod vendor - unset SSH_PRIVATE_KEY - unset $(env | grep '=' | awk -F= '{print $1}' | grep -v PATH | grep -v GO | grep -v HOME) - - GOOS=js GOARCH=wasm go test ./indexedDb/... -v - GOOS=js GOARCH=wasm go test ./... -v -go-test: - stage: test +build: + stage: build except: - tags script: - go mod vendor -v - - go test ./... -v + - mkdir -p release + - GOOS=js GOARCH=wasm go build -ldflags '-w -s' -trimpath -o release/xxdk.wasm main.go + - GOOS=js GOARCH=wasm go build -ldflags '-w -s' -trimpath -o release/xxdk-channelsIndexedDkWorker.wasm ./indexedDb/impl/channels/... + - GOOS=js GOARCH=wasm go build -ldflags '-w -s' -trimpath -o release/xxdk-dmIndexedDkWorker.wasm ./indexedDb/impl/dm/... + - cp wasm_exec.js release/ + - cp indexedDb/impl/channels/channelsIndexedDbWorker.js release/ + - cp indexedDb/impl/dm/dmIndexedDbWorker.js release/ + artifacts: + paths: + - release/ -version_check: - stage: version_check +build-workers: + stage: build except: - tags - only: - - master - image: $DOCKER_IMAGE script: - - GITTAG=$(git describe --tags) - - CODEVERS=$(cat storage/version.go | grep "const SEMVER =" | cut -d ' ' -f4 | tr -d '"') - - if [[ $GITTAG != $CODEVERS ]]; then echo "VERSION NUMBER BAD $GITTAG != $CODEVERS"; exit -1; fi + - go mod vendor -v + - mkdir -p release + - GOOS=js GOARCH=wasm go build -ldflags '-w -s' -trimpath -o release/xxdk-channelsIndexedDkWorker.wasm ./indexedDb/impl/channels/... + - GOOS=js GOARCH=wasm go build -ldflags '-w -s' -trimpath -o release/xxdk-dmIndexedDkWorker.wasm ./indexedDb/impl/dm/... + - cp indexedDb/impl/channels/channelsIndexedDbWorker.js release/ + - cp indexedDb/impl/dm/dmIndexedDbWorker.js release/ + artifacts: + paths: + - release/ tag: stage: build @@ -88,12 +86,44 @@ tag: - git tag $(sha256sum release/xxdk.wasm | awk '{ print $1 }') -f - git push origin_tags -f --tags +combine_artefacts: + stage: combine_artefacts + except: + - tags + image: $DOCKER_IMAGE + script: + - echo $CI_SERVER_URL/api/v4/projects/$CI_PROJECT_ID/pipelines/$CI_PIPELINE_ID/jobs + - 'PIPELINE_JOBS=$(curl --header "PRIVATE-TOKEN: $GITLAB_ACCESS_TOKEN" $CI_SERVER_URL/api/v4/projects/$CI_PROJECT_ID/pipelines/$CI_PIPELINE_ID/jobs)' + - echo $PIPELINE_JOBS + - BUILD_JOB_JSON=$(echo $PIPELINE_JOBS | jq '.[] | select(.name=="build")') + - BUILD_WORKERS_JOB_JSON=$(echo $PIPELINE_JOBS | jq '.[] | select(.name=="build-workers")') + + - BUILD_JOB_ID=$(echo $BUILD_JOB_JSON | jq -r '.["id"]') + - BUILD_WORKERS_JOB_ID=$(echo $BUILD_WORKERS_JOB_JSON | jq -r '.["id"]') + + - rm -rf release + - mkdir -p release + + - 'curl --header "PRIVATE-TOKEN: $GITLAB_ACCESS_TOKEN" --output release/wasm_exec.js $CI_SERVER_URL/api/v4/projects/$CI_PROJECT_ID/jobs/$BUILD_JOB_ID/artifacts/release/wasm_exec.js' + - 'curl --header "PRIVATE-TOKEN: $GITLAB_ACCESS_TOKEN" --output release/xxdk.wasm $CI_SERVER_URL/api/v4/projects/$CI_PROJECT_ID/jobs/$BUILD_JOB_ID/artifacts/release/xxdk.wasm' + - 'curl --header "PRIVATE-TOKEN: $GITLAB_ACCESS_TOKEN" --output release/xxdk-channelsIndexedDkWorker.wasm $CI_SERVER_URL/api/v4/projects/$CI_PROJECT_ID/jobs/$BUILD_WORKERS_JOB_ID/artifacts/release/xxdk-channelsIndexedDkWorker.json' + - 'curl --header "PRIVATE-TOKEN: $GITLAB_ACCESS_TOKEN" --output release/xxdk-dmIndexedDkWorker.wasm $CI_SERVER_URL/api/v4/projects/$CI_PROJECT_ID/jobs/$BUILD_WORKERS_JOB_ID/artifacts/release/xxdk-dmIndexedDkWorker.json' + - 'curl --header "PRIVATE-TOKEN: $GITLAB_ACCESS_TOKEN" --output release/channelsIndexedDbWorker.js $CI_SERVER_URL/api/v4/projects/$CI_PROJECT_ID/jobs/$BUILD_WORKERS_JOB_ID/artifacts/release/channelsIndexedDbWorker.js' + - 'curl --header "PRIVATE-TOKEN: $GITLAB_ACCESS_TOKEN" --output release/dmIndexedDbWorker.js $CI_SERVER_URL/api/v4/projects/$CI_PROJECT_ID/jobs/$BUILD_WORKERS_JOB_ID/artifacts/release/dmIndexedDbWorker.js' + + - ls release + artifacts: + paths: + - release/ + expose_as: "release" + # This pipeline job will attempt to have pkg.go.dev update docs for xxdk-wasm. # -# pkg.go.dev relies on the proxy.golang.org service (go module cache/proxy) to discover versions of -# Go modules to make docs of. The proxy keeps a list of all known versions of Go modules. The go -# mod proxy does cache pulls for about 30 minutes, so if quickly successive commits are done in -# master/release, this will fail to pull the latest client, and the docs will not update. +# pkg.go.dev relies on the proxy.golang.org service (go module cache/proxy) to +# discover versions of Go modules to make docs of. The proxy keeps a list of all +# known versions of Go modules. The go mod proxy does cache pulls for about 30 +# minutes, so if quickly successive commits are done in master/release, this +# will fail to pull the latest client, and the docs will not update. doc-update: stage: doc-update except: @@ -105,3 +135,15 @@ doc-update: only: - release - master + +version_check: + stage: version_check + except: + - tags + only: + - master + image: $DOCKER_IMAGE + script: + - GITTAG=$(git describe --tags) + - CODEVERS=$(cat storage/version.go | grep "const SEMVER =" | cut -d ' ' -f4 | tr -d '"') + - if [[ $GITTAG != $CODEVERS ]]; then echo "VERSION NUMBER BAD $GITTAG != $CODEVERS"; exit -1; fi \ No newline at end of file -- GitLab