From 7b9819e5263203eb437dfa4889363ad67f96721e Mon Sep 17 00:00:00 2001 From: galargh Date: Thu, 2 Mar 2023 09:07:56 +0100 Subject: [PATCH 1/9] ci: remove circleci config --- .circleci/config.yml | 37 ---- .circleci/main.yml | 404 ------------------------------------------- 2 files changed, 441 deletions(-) delete mode 100644 .circleci/config.yml delete mode 100644 .circleci/main.yml diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 3da57d246..000000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,37 +0,0 @@ -version: 2.1 -setup: true -orbs: - continuation: circleci/continuation@0.2.0 -jobs: - generate-params: - executor: continuation/default - steps: - - checkout - - run: - name: Generate params - # for builds on the ipfs/kubo repo, use 2xlarge for faster builds - # but since this is not available for many contributors, we otherwise use medium - command: | - echo $CIRCLE_REPOSITORY_URL - if [ "$CIRCLE_REPOSITORY_URL" = 'git@github.com:ipfs/kubo.git' ]; then - resource_class=2xlarge - make_jobs=10 - else - resource_class=medium - make_jobs=3 - fi - cat \<<- EOF > params.json - { - "resource_class": "$resource_class", - "make_jobs": "$make_jobs" - } - EOF - cat params.json - - continuation/continue: - parameters: params.json - configuration_path: .circleci/main.yml -workflows: - version: 2 - setup-workflow: - jobs: - - generate-params diff --git a/.circleci/main.yml b/.circleci/main.yml deleted file mode 100644 index b6be1d914..000000000 --- a/.circleci/main.yml +++ /dev/null @@ -1,404 +0,0 @@ -version: 2.1 - -parameters: - resource_class: - type: string - default: medium - make_jobs: - type: string - default: 3 - -aliases: - make_out_dirs: &make_out_dirs - run: mkdir -p /tmp/circleci-artifacts /tmp/circleci-workspace /tmp/circleci-test-results/{unit,sharness} - restore_gomod: &restore_gomod - restore_cache: - keys: - - v5-dep-{{ .Branch }}-{{ checksum "~/ipfs/kubo/go.sum" }}-{{ .Environment.CIRCLE_JOB }} - - v5-dep-{{ .Branch }}-{{ checksum "~/ipfs/kubo/go.sum" }}- - - v5-dep-{{ .Branch }}- - - v5-dep-master- - store_gomod: &store_gomod - save_cache: - key: v5-dep-{{ .Branch }}-{{ checksum "~/ipfs/kubo/go.sum" }}-{{ .Environment.CIRCLE_JOB }} - paths: - - ~/go/pkg/mod - - ~/.cache/go-build/ - -default_environment: &default_environment - SERVICE: circle-ci - TRAVIS: 1 - CIRCLE: 1 - CIRCLE_TEST_REPORTS: /tmp/circleci-test-results - CIRCLE_ARTIFACTS: /tmp/circleci-artifacts - GIT_PAGER: cat - -executors: - golang: - docker: - - image: cimg/go:1.19.1 - working_directory: ~/ipfs/kubo - environment: - <<: *default_environment - TEST_NO_DOCKER: 1 - TEST_NO_FUSE: 1 - TEST_VERBOSE: 1 - node: - docker: - - image: circleci/node:14 - working_directory: ~/ipfs/kubo - environment: - <<: *default_environment - node-browsers: - docker: - - image: circleci/node:16.12.0-browsers - working_directory: ~/ipfs/kubo - environment: - <<: *default_environment - NO_SANDBOX: true - LIBP2P_TCP_REUSEPORT: false - LIBP2P_ALLOW_WEAK_RSA_KEYS: 1 - E2E_IPFSD_TYPE: go - dockerizer: - docker: - - image: cimg/go:1.19.1 - environment: - IMAGE_NAME: ipfs/kubo - WIP_IMAGE_TAG: wip - -jobs: - gobuild: - executor: golang - resource_class: 2xlarge+ - steps: - - checkout - - *make_out_dirs - - *restore_gomod - - run: - command: make cmd/ipfs-try-build - environment: - TEST_NO_FUSE: 0 - - run: - command: make cmd/ipfs-try-build - environment: - TEST_NO_FUSE: 1 - - *store_gomod - golint: - executor: golang - steps: - - checkout - - *make_out_dirs - - *restore_gomod - - run: | - make -O test_go_lint - - *store_gomod - gotest: - executor: golang - steps: - - checkout - - *make_out_dirs - - *restore_gomod - - - run: | - make -j 1 test/unit/gotest.junit.xml \ - && [[ ! $(jq -s -c 'map(select(.Action == "fail")) | .[]' test/unit/gotest.json) ]] - - run: - when: always - command: bash <(curl -s https://codecov.io/bash) -cF unittests -X search -f coverage/unit_tests.coverprofile - - run: - command: | - # we want to first test with the kubo version in the go.mod file - go test -v ./... - - # we also want to test the examples against the current version of kubo - # however, that version might be in a fork so we need to replace the dependency - - # backup the go.mod and go.sum files to restore them after we run the tests - cp go.mod go.mod.bak - cp go.sum go.sum.bak - - # make sure the examples run against the current version of kubo - go mod edit -replace github.com/ipfs/kubo=./../../.. - go mod tidy - - go test -v ./... - - # restore the go.mod and go.sum files to their original state - mv go.mod.bak go.mod - mv go.sum.bak go.sum - working_directory: ~/ipfs/kubo/docs/examples/kubo-as-a-library - - - run: - when: always - command: mv "test/unit/gotest.junit.xml" /tmp/circleci-test-results/unit - - - *store_gomod - - - store_test_results: - path: /tmp/circleci-test-results - # Save artifacts - - store_artifacts: - path: /tmp/circleci-artifacts - - store_artifacts: - path: /tmp/circleci-test-results - sharness: - machine: - image: ubuntu-2204:2022.10.1 - resource_class: << pipeline.parameters.resource_class >> - working_directory: ~/ipfs/kubo - environment: - <<: *default_environment - TEST_NO_DOCKER: 0 - TEST_NO_PLUGIN: 1 - TEST_NO_FUSE: 1 - TEST_VERBOSE: 1 - TEST_JUNIT: 1 - TEST_EXPENSIVE: 1 - steps: - - run: sudo apt update - - run: | - mkdir ~/localgo && cd ~/localgo - wget https://golang.org/dl/go1.19.1.linux-amd64.tar.gz - tar xfz go1.19.1.linux-amd64.tar.gz - echo "export PATH=$(pwd)/go/bin:\$PATH" >> ~/.bashrc - - run: go version - - run: sudo apt install socat net-tools fish libxml2-utils - - checkout - - - run: - mkdir rb-pinning-service-api && - cd rb-pinning-service-api && - git init && - git remote add origin https://github.com/ipfs-shipyard/rb-pinning-service-api.git && - git fetch --depth 1 origin 773c3adbb421c551d2d89288abac3e01e1f7c3a8 && - git checkout FETCH_HEAD - - run: - cd rb-pinning-service-api && - (for i in {1..3}; do docker-compose pull && break || sleep 5; done) && - docker-compose up -d - - - *make_out_dirs - - *restore_gomod - - - run: - name: Setup Environment Variables - # we need the docker host IP; all ports exported by child containers can be accessed there. - command: echo "export TEST_DOCKER_HOST=$(ip -4 addr show docker0 | grep -Po 'inet \K[\d.]+')" >> $BASH_ENV - - run: - echo TEST_DOCKER_HOST=$TEST_DOCKER_HOST && - make -O -j << pipeline.parameters.make_jobs >> test_sharness coverage/sharness_tests.coverprofile test/sharness/test-results/sharness.xml CONTINUE_ON_S_FAILURE=1 TEST_DOCKER_HOST=$TEST_DOCKER_HOST - - run: - when: always - command: bash <(curl -s https://codecov.io/bash) -cF sharness -X search -f coverage/sharness_tests.coverprofile - - - run: mv "test/sharness/test-results/sharness.xml" /tmp/circleci-test-results/sharness - # make sure we fail if there are test failures - - run: find test/sharness/test-results -name 't*-*.sh.*.counts' | test/sharness/lib/sharness/aggregate-results.sh | grep 'failed\s*0' - - - *store_gomod - - - store_test_results: - path: /tmp/circleci-test-results - # Save artifacts - - store_artifacts: - path: /tmp/circleci-artifacts - - store_artifacts: - path: /tmp/circleci-test-results - build: - executor: golang - steps: - - checkout - - *make_out_dirs - - *restore_gomod - - run: - name: Building - command: make build - - run: - name: Storing - command: | - mkdir -p /tmp/circleci-workspace/bin - cp cmd/ipfs/ipfs /tmp/circleci-workspace/bin - - persist_to_workspace: - root: /tmp/circleci-workspace - paths: - - bin/ipfs - - *store_gomod - interop: - docker: - - image: cimg/go:1.19.1-node - parallelism: 4 - resource_class: 2xlarge+ - steps: - - *make_out_dirs - - attach_workspace: - at: /tmp/circleci-workspace - - restore_cache: - keys: - - v2-interop-{{ .Branch }}-{{ .Revision }} - - v2-interop-{{ .Branch }}- - - v2-interop- - - run: - name: Installing dependencies - command: | - npm init -y - npm install ipfs@^0.66.0 - npm install kubo-rpc-client@^3.0.1 - npm install ipfs-interop@^10.0.1 - npm install mocha-circleci-reporter@0.0.3 - working_directory: ~/ipfs/kubo/interop - - run: - name: Running tests - command: | - mkdir -p /tmp/test-results/interop/ - export MOCHA_FILE="$(mktemp /tmp/test-results/interop/unit.XXXXXX.xml)" - npx ipfs-interop -- -t node -f $(sed -n -e "s|^import '\(.*\)'$|test/\1|p" node_modules/ipfs-interop/test/node.js | circleci tests split --split-by=timings) -- --reporter mocha-circleci-reporter - working_directory: ~/ipfs/kubo/interop - environment: - LIBP2P_TCP_REUSEPORT: false - LIBP2P_ALLOW_WEAK_RSA_KEYS: 1 - IPFS_GO_EXEC: /tmp/circleci-workspace/bin/ipfs - - store_test_results: - path: /tmp/test-results - - save_cache: - key: v2-interop-{{ .Branch }}-{{ .Revision }} - paths: - - ~/ipfs/kubo/interop/node_modules - go-ipfs-api: - executor: golang - steps: - - *make_out_dirs - - attach_workspace: - at: /tmp/circleci-workspace - - run: - name: Cloning - command: | - git clone https://github.com/ipfs/go-ipfs-api.git - git -C go-ipfs-api log -1 - - run: - name: Starting the daemon - command: /tmp/circleci-workspace/bin/ipfs daemon --init --enable-namesys-pubsub - background: true - - run: - name: Waiting for the daemon - no_output_timeout: 30s - command: | - while ! /tmp/circleci-workspace/bin/ipfs id --api=/ip4/127.0.0.1/tcp/5001 2>/dev/null; do - sleep 1 - done - - restore_cache: - keys: - - v1-go-api-{{ checksum "~/ipfs/kubo/go-ipfs-api/go.sum" }} - - v1-go-api- - - run: - command: go test -count=1 -v ./... - working_directory: ~/ipfs/kubo/go-ipfs-api - - save_cache: - key: v2-go-api-{{ checksum "~/ipfs/kubo/go-ipfs-api/go.sum" }} - paths: - - ~/go/pkg/mod - - ~/.cache/go-build/ - - run: - name: Stopping the daemon - command: /tmp/circleci-workspace/bin/ipfs shutdown - go-ipfs-http-client: - executor: golang - steps: - - *make_out_dirs - - attach_workspace: - at: /tmp/circleci-workspace - - run: - name: Cloning - command: | - git clone https://github.com/ipfs/go-ipfs-http-client.git -b bump-for-rcmgr-last-push - git -C go-ipfs-http-client log -1 - - restore_cache: - keys: - - v1-http-client-{{ checksum "~/ipfs/kubo/go-ipfs-http-client/go.sum" }} - - v1-http-client- - - run: - name: go test -count=1 -v ./... - command: | - export PATH=/tmp/circleci-workspace/bin:$PATH - go test -count=1 -v ./... - working_directory: ~/ipfs/kubo/go-ipfs-http-client - - save_cache: - key: v1-http-client-{{ checksum "~/ipfs/kubo/go-ipfs-http-client/go.sum" }} - paths: - - ~/go/pkg/mod - - ~/.cache/go-build/ - ipfs-webui: - executor: node-browsers - resource_class: 2xlarge+ - steps: - - *make_out_dirs - - attach_workspace: - at: /tmp/circleci-workspace - - run: - name: Cloning - command: | - git clone https://github.com/ipfs/ipfs-webui.git - git -C ipfs-webui log -1 - - restore_cache: - keys: - - v1-ipfs-webui-{{ checksum "~/ipfs/kubo/ipfs-webui/package-lock.json" }} - - v1-ipfs-webui- - - run: - name: Installing dependencies - command: | - npm ci --prefer-offline --no-audit --progress=false --cache ~/ipfs/kubo/.cache/npm - npx playwright install - working_directory: ~/ipfs/kubo/ipfs-webui - - run: - name: Run ipfs-webui@main build and smoke-test to confirm the upstream repo is not broken - command: | - npm test - working_directory: ~/ipfs/kubo/ipfs-webui - - run: - name: Test ipfs-webui@main E2E against the locally built Kubo binary - command: npm run test:e2e - working_directory: ~/ipfs/kubo/ipfs-webui - environment: - IPFS_GO_EXEC: /tmp/circleci-workspace/bin/ipfs - - save_cache: - key: v1-ipfs-webui-{{ checksum "~/ipfs/kubo/ipfs-webui/package-lock.json" }} - paths: - - ~/.cache/ms-playwright - - ~/ipfs/kubo/.cache/npm - # We only run build as a test here. DockerHub images are built and published - # by GitHub Action now: https://github.com/ipfs/kubo/pull/8467 - docker-build: - executor: dockerizer - steps: - - checkout - - setup_remote_docker: - version: "19.03.13" - - run: - name: Build Docker image - command: | - docker build -t $IMAGE_NAME:$WIP_IMAGE_TAG . - -workflows: - version: 2 - - # Runs for all branches, but not on tags - # see: https://circleci.com/docs/2.0/workflows/#executing-workflows-for-a-git-tag - test: - jobs: - - gobuild - - golint - - gotest - - sharness - - build - - interop: - requires: - - build - - go-ipfs-api: - requires: - - build - - go-ipfs-http-client: - requires: - - build - - ipfs-webui: - requires: - - build - - docker-build From ceed43ea0e4b402f8873f4bfe47ee8a191e99a5f Mon Sep 17 00:00:00 2001 From: galargh Date: Thu, 2 Mar 2023 09:11:48 +0100 Subject: [PATCH 2/9] chore: clean up after circleci removal --- README.md | 5 ++--- bin/get-docker-tags.sh | 5 +---- bin/mkreleaselog | 1 - bin/push-docker-tags.sh | 12 ++++-------- codecov.yml | 3 +-- 5 files changed, 8 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 94e5e42af..07f8a87c5 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,6 @@ [![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square&cacheSeconds=3600)](https://protocol.ai) [![GoDoc](https://img.shields.io/badge/godoc-reference-5272B4.svg?style=flat-square&cacheSeconds=3600)](https://godoc.org/github.com/ipfs/kubo) -[![CircleCI](https://img.shields.io/circleci/build/github/ipfs/kubo?style=flat-square&cacheSeconds=3600)](https://circleci.com/gh/ipfs/kubo) ## What is Kubo? @@ -33,7 +32,7 @@ Before opening an issue, consider using one of the following locations to ensure - Exploration of new ideas in [ipfs/notes issues](https://github.com/ipfs/notes/issues). - Ask questions and meet the rest of the community at the [IPFS Forum](https://discuss.ipfs.tech). - Or [chat with us](https://docs.ipfs.tech/community/chat/). - + [![YouTube Channel Subscribers](https://img.shields.io/youtube/channel/subscribers/UCdjsUXJ3QawK4O5L1kqqsew?label=Subscribe%20IPFS&style=social&cacheSeconds=3600)](https://www.youtube.com/channel/UCdjsUXJ3QawK4O5L1kqqsew) [![Follow @IPFS on Twitter](https://img.shields.io/twitter/follow/IPFS?style=social&cacheSeconds=3600)](https://twitter.com/IPFS) ## Next milestones @@ -68,7 +67,7 @@ Before opening an issue, consider using one of the following locations to ensure - [Unofficial MacOS packages](#unofficial-macos-packages) - [MacPorts](#macports) - [Nix](#nix-macos) - - [Homebrew](#homebrew) + - [Homebrew](#homebrew) - [Build from Source](#build-from-source) - [Install Go](#install-go) - [Download and Compile IPFS](#download-and-compile-ipfs) diff --git a/bin/get-docker-tags.sh b/bin/get-docker-tags.sh index e50ec69fa..e54da6482 100755 --- a/bin/get-docker-tags.sh +++ b/bin/get-docker-tags.sh @@ -6,16 +6,13 @@ # ./get-docker-tags.sh [git tag name] # # Example: -# +# # # get tag for the master branch # ./get-docker-tags.sh $(date -u +%F) testingsha master # # # get tag for a release tag # ./get-docker-tags.sh $(date -u +%F) testingsha release v0.5.0 # -# # Serving suggestion in circle ci - https://circleci.com/docs/2.0/env-vars/#built-in-environment-variables -# ./get-docker-tags.sh $(date -u +%F) "$CIRCLE_SHA1" "$CIRCLE_BRANCH" "$CIRCLE_TAG" -# set -euo pipefail if [[ $# -lt 1 ]] ; then diff --git a/bin/mkreleaselog b/bin/mkreleaselog index 1b31854a7..bd8d418b0 100755 --- a/bin/mkreleaselog +++ b/bin/mkreleaselog @@ -41,7 +41,6 @@ IGNORE_FILES=( "go.mod" "go.sum" ".github" - ".circleci" "*.pb.go" "cbor_gen.go" "ipldsch_*.go" diff --git a/bin/push-docker-tags.sh b/bin/push-docker-tags.sh index 00d314c07..af809b989 100755 --- a/bin/push-docker-tags.sh +++ b/bin/push-docker-tags.sh @@ -2,11 +2,10 @@ # push-docker-tags.sh # -# Run from ci to tag images based on the current branch or tag name. +# Run from ci to tag images based on the current branch or tag name. # A bit like dockerhub autobuild config, but somewhere we can version control it. -# -# The `docker-build` job in .circleci/config.yml builds the current commit -# in docker and tags it as ipfs/go-ipfs:wip +# +# The `docker-build` job builds the current commit in docker and tags it as ipfs/go-ipfs:wip # # Then the `docker-publish` job runs this script to decide what tag, if any, # to publish to dockerhub. @@ -17,16 +16,13 @@ # Example: # # dry run. pass a 5th arg to have it print what it would do rather than do it. # ./push-docker-tags.sh $(date -u +%F) testingsha master "" dryrun -# +# # # push tag for the master branch # ./push-docker-tags.sh $(date -u +%F) testingsha master # # # push tag for a release tag # ./push-docker-tags.sh $(date -u +%F) testingsha release v0.5.0 # -# # Serving suggestion in circle ci - https://circleci.com/docs/2.0/env-vars/#built-in-environment-variables -# ./push-docker-tags.sh $(date -u +%F) "$CIRCLE_SHA1" "$CIRCLE_BRANCH" "$CIRCLE_TAG" -# set -euo pipefail if [[ $# -lt 1 ]] ; then diff --git a/codecov.yml b/codecov.yml index f6d4fc05b..8405abb90 100644 --- a/codecov.yml +++ b/codecov.yml @@ -1,10 +1,9 @@ codecov: ci: - - "ci/circle-ci" - "!travis-ci.org" - "!ci.ipfs.team:8111" - "!ci.ipfs.team" - - "!github.com" + - "github.com" notify: require_ci_to_pass: no after_n_builds: 2 From be3bde6df9036aaf34ef25333943cc53dace5b25 Mon Sep 17 00:00:00 2001 From: galargh Date: Thu, 2 Mar 2023 09:13:27 +0100 Subject: [PATCH 3/9] ci: remove experimental tags from GHA workflows --- .github/workflows/build.yml | 2 +- .github/workflows/docker-build.yml | 2 +- .github/workflows/gobuild.yml | 2 +- .github/workflows/golint.yml | 2 +- .github/workflows/gotest.yml | 2 +- .github/workflows/runner.yml | 2 +- .github/workflows/sharness.yml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2994d7d1a..dfa876823 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: 'ci/gh-experiment: interop' +name: 'ci/gh: interop' on: workflow_dispatch: diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 23e29bf39..0dfedd74a 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -1,4 +1,4 @@ -name: 'ci/gh-experiment: docker-build' +name: 'ci/gh: docker-build' on: workflow_dispatch: diff --git a/.github/workflows/gobuild.yml b/.github/workflows/gobuild.yml index 532d34590..658da533d 100644 --- a/.github/workflows/gobuild.yml +++ b/.github/workflows/gobuild.yml @@ -1,4 +1,4 @@ -name: 'ci/gh-experiment: go build' +name: 'ci/gh: go build' on: workflow_dispatch: diff --git a/.github/workflows/golint.yml b/.github/workflows/golint.yml index a6593582d..2a6ebf3f5 100644 --- a/.github/workflows/golint.yml +++ b/.github/workflows/golint.yml @@ -1,4 +1,4 @@ -name: 'ci/gh-experiment: go lint' +name: 'ci/gh: go lint' on: workflow_dispatch: diff --git a/.github/workflows/gotest.yml b/.github/workflows/gotest.yml index e594b55ee..d9d9c5bc5 100644 --- a/.github/workflows/gotest.yml +++ b/.github/workflows/gotest.yml @@ -1,4 +1,4 @@ -name: 'ci/gh-experiment: go test' +name: 'ci/gh: go test' on: workflow_dispatch: diff --git a/.github/workflows/runner.yml b/.github/workflows/runner.yml index c8aef2256..73182ace4 100644 --- a/.github/workflows/runner.yml +++ b/.github/workflows/runner.yml @@ -1,4 +1,4 @@ -name: 'ci/gh-experiment: choose runner' +name: 'ci/gh: choose runner' on: workflow_call: diff --git a/.github/workflows/sharness.yml b/.github/workflows/sharness.yml index 8809f2a53..8def7933e 100644 --- a/.github/workflows/sharness.yml +++ b/.github/workflows/sharness.yml @@ -1,4 +1,4 @@ -name: 'ci/gh-experiment: sharness' +name: 'ci/gh: sharness' on: workflow_dispatch: From 337ddb122787fc5a7f152e072206ddea0776efd7 Mon Sep 17 00:00:00 2001 From: galargh Date: Thu, 2 Mar 2023 09:15:57 +0100 Subject: [PATCH 4/9] ci: remove ci/gh prefix from GHA workflows --- .github/workflows/build.yml | 2 +- .github/workflows/docker-build.yml | 2 +- .github/workflows/gobuild.yml | 2 +- .github/workflows/golint.yml | 2 +- .github/workflows/gotest.yml | 2 +- .github/workflows/runner.yml | 2 +- .github/workflows/sharness.yml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index dfa876823..db1e6880a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: 'ci/gh: interop' +name: 'interop' on: workflow_dispatch: diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 0dfedd74a..e0cbe75b7 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -1,4 +1,4 @@ -name: 'ci/gh: docker-build' +name: 'docker-build' on: workflow_dispatch: diff --git a/.github/workflows/gobuild.yml b/.github/workflows/gobuild.yml index 658da533d..3d1387ccb 100644 --- a/.github/workflows/gobuild.yml +++ b/.github/workflows/gobuild.yml @@ -1,4 +1,4 @@ -name: 'ci/gh: go build' +name: 'go build' on: workflow_dispatch: diff --git a/.github/workflows/golint.yml b/.github/workflows/golint.yml index 2a6ebf3f5..9a7ad81f9 100644 --- a/.github/workflows/golint.yml +++ b/.github/workflows/golint.yml @@ -1,4 +1,4 @@ -name: 'ci/gh: go lint' +name: 'go lint' on: workflow_dispatch: diff --git a/.github/workflows/gotest.yml b/.github/workflows/gotest.yml index d9d9c5bc5..e7ece897a 100644 --- a/.github/workflows/gotest.yml +++ b/.github/workflows/gotest.yml @@ -1,4 +1,4 @@ -name: 'ci/gh: go test' +name: 'go test' on: workflow_dispatch: diff --git a/.github/workflows/runner.yml b/.github/workflows/runner.yml index 73182ace4..7b609737a 100644 --- a/.github/workflows/runner.yml +++ b/.github/workflows/runner.yml @@ -1,4 +1,4 @@ -name: 'ci/gh: choose runner' +name: 'choose runner' on: workflow_call: diff --git a/.github/workflows/sharness.yml b/.github/workflows/sharness.yml index 8def7933e..b564d2177 100644 --- a/.github/workflows/sharness.yml +++ b/.github/workflows/sharness.yml @@ -1,4 +1,4 @@ -name: 'ci/gh: sharness' +name: 'sharness' on: workflow_dispatch: From 2d65120fd5352af9c057acc5eb79023838276409 Mon Sep 17 00:00:00 2001 From: galargh Date: Thu, 2 Mar 2023 09:54:48 +0100 Subject: [PATCH 5/9] ci: standarise gha names --- .github/workflows/build.yml | 4 ++-- .github/workflows/codeql-analysis.yml | 3 +-- .github/workflows/docker-build.yml | 4 ++-- .github/workflows/docker-image.yml | 4 ++-- .github/workflows/gobuild.yml | 4 ++-- .github/workflows/golang-analysis.yml | 4 ++-- .github/workflows/golint.yml | 4 ++-- .github/workflows/gotest.yml | 4 ++-- .github/workflows/runner.yml | 2 +- .github/workflows/sharness.yml | 4 ++-- .github/workflows/sync-release-assets.yml | 4 ++-- 11 files changed, 20 insertions(+), 21 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index db1e6880a..4a61e18b0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: 'interop' +name: Interop on: workflow_dispatch: @@ -38,7 +38,7 @@ jobs: with: name: kubo path: cmd/ipfs/ipfs - ipfs-interop: + interop: needs: [prepare] runs-on: ubuntu-latest timeout-minutes: 20 diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index e732a1148..d4b16857f 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -16,9 +16,8 @@ permissions: security-events: write # (github/codeql-action/autobuild) jobs: - analyze: + go: if: github.repository == 'ipfs/kubo' || github.event_name == 'workflow_dispatch' - name: Analyze runs-on: ubuntu-latest timeout-minutes: 20 diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index e0cbe75b7..2d76cc8eb 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -1,4 +1,4 @@ -name: 'docker-build' +name: Docker Build on: workflow_dispatch: @@ -8,7 +8,7 @@ on: - 'master' jobs: - docker-build: + head: if: github.repository == 'ipfs/kubo' || github.event_name == 'workflow_dispatch' runs-on: ubuntu-latest timeout-minutes: 10 diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index e612fba0c..47c375440 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -1,4 +1,4 @@ -name: Publish Docker image +name: Docker Push on: workflow_dispatch: @@ -13,7 +13,7 @@ permissions: contents: read # to fetch code (actions/checkout) jobs: - push_to_registry: + docker-hub: if: github.repository == 'ipfs/kubo' || github.event_name == 'workflow_dispatch' name: Push Docker image to Docker Hub runs-on: ubuntu-latest diff --git a/.github/workflows/gobuild.yml b/.github/workflows/gobuild.yml index 3d1387ccb..9fe883392 100644 --- a/.github/workflows/gobuild.yml +++ b/.github/workflows/gobuild.yml @@ -1,4 +1,4 @@ -name: 'go build' +name: Go Build on: workflow_dispatch: @@ -11,7 +11,7 @@ jobs: runner: if: github.repository == 'ipfs/kubo' || github.event_name == 'workflow_dispatch' uses: ipfs/kubo/.github/workflows/runner.yml@master - gobuild: + build: needs: [runner] runs-on: ${{ fromJSON(needs.runner.outputs.config).labels }} timeout-minutes: 20 diff --git a/.github/workflows/golang-analysis.yml b/.github/workflows/golang-analysis.yml index 982ab085f..b0eced941 100644 --- a/.github/workflows/golang-analysis.yml +++ b/.github/workflows/golang-analysis.yml @@ -1,4 +1,4 @@ -name: Go Checks +name: Go Check on: workflow_dispatch: @@ -11,7 +11,7 @@ permissions: contents: read # to fetch code (actions/checkout) jobs: - unit: + check: if: github.repository == 'ipfs/kubo' || github.event_name == 'workflow_dispatch' runs-on: ubuntu-latest timeout-minutes: 10 diff --git a/.github/workflows/golint.yml b/.github/workflows/golint.yml index 9a7ad81f9..524beb018 100644 --- a/.github/workflows/golint.yml +++ b/.github/workflows/golint.yml @@ -1,4 +1,4 @@ -name: 'go lint' +name: Go Lint on: workflow_dispatch: @@ -8,7 +8,7 @@ on: - 'master' jobs: - golint: + lint: if: github.repository == 'ipfs/kubo' || github.event_name == 'workflow_dispatch' runs-on: ubuntu-latest timeout-minutes: 10 diff --git a/.github/workflows/gotest.yml b/.github/workflows/gotest.yml index e7ece897a..76c090c2f 100644 --- a/.github/workflows/gotest.yml +++ b/.github/workflows/gotest.yml @@ -1,4 +1,4 @@ -name: 'go test' +name: Go Test on: workflow_dispatch: @@ -8,7 +8,7 @@ on: - 'master' jobs: - gotest: + test: if: github.repository == 'ipfs/kubo' || github.event_name == 'workflow_dispatch' runs-on: ubuntu-latest timeout-minutes: 20 diff --git a/.github/workflows/runner.yml b/.github/workflows/runner.yml index 7b609737a..74a8b41d7 100644 --- a/.github/workflows/runner.yml +++ b/.github/workflows/runner.yml @@ -1,4 +1,4 @@ -name: 'choose runner' +name: Runner on: workflow_call: diff --git a/.github/workflows/sharness.yml b/.github/workflows/sharness.yml index b564d2177..8e29386ff 100644 --- a/.github/workflows/sharness.yml +++ b/.github/workflows/sharness.yml @@ -1,4 +1,4 @@ -name: 'sharness' +name: Sharness on: workflow_dispatch: @@ -11,7 +11,7 @@ jobs: runner: if: github.repository == 'ipfs/kubo' || github.event_name == 'workflow_dispatch' uses: ipfs/kubo/.github/workflows/runner.yml@master - sharness: + test: needs: [runner] runs-on: ${{ fromJSON(needs.runner.outputs.config).labels }} timeout-minutes: 20 diff --git a/.github/workflows/sync-release-assets.yml b/.github/workflows/sync-release-assets.yml index 0c295d804..23bf90748 100644 --- a/.github/workflows/sync-release-assets.yml +++ b/.github/workflows/sync-release-assets.yml @@ -1,4 +1,4 @@ -name: Sync github release assets with dist.ipfs.tech +name: Sync GitHub Release Assets on: workflow_dispatch: @@ -13,7 +13,7 @@ permissions: contents: write # to upload release asset jobs: - sync-github-and-dist-ipfs-tech: + dist-ipfs-tech: if: github.repository == 'ipfs/kubo' || github.event_name == 'workflow_dispatch' runs-on: "ubuntu-latest" timeout-minutes: 5 From a8f2c12f71703a6fd840d82c65588a3fc9dde89e Mon Sep 17 00:00:00 2001 From: galargh Date: Thu, 2 Mar 2023 09:56:07 +0100 Subject: [PATCH 6/9] ci: rename gha workflow files to match workflow names --- .github/workflows/{codeql-analysis.yml => codeql.yml} | 0 .github/workflows/{docker-image.yml => docker-push.yml} | 0 .github/workflows/{gobuild.yml => go-build.yml} | 0 .github/workflows/{golang-analysis.yml => go-check.yml} | 0 .github/workflows/{golint.yml => go-lint.yml} | 0 .github/workflows/{gotest.yml => go-test.yml} | 0 .github/workflows/{build.yml => interop.yml} | 0 .../{sync-release-assets.yml => sync-github-release-assets.yml} | 0 8 files changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{codeql-analysis.yml => codeql.yml} (100%) rename .github/workflows/{docker-image.yml => docker-push.yml} (100%) rename .github/workflows/{gobuild.yml => go-build.yml} (100%) rename .github/workflows/{golang-analysis.yml => go-check.yml} (100%) rename .github/workflows/{golint.yml => go-lint.yml} (100%) rename .github/workflows/{gotest.yml => go-test.yml} (100%) rename .github/workflows/{build.yml => interop.yml} (100%) rename .github/workflows/{sync-release-assets.yml => sync-github-release-assets.yml} (100%) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql.yml similarity index 100% rename from .github/workflows/codeql-analysis.yml rename to .github/workflows/codeql.yml diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-push.yml similarity index 100% rename from .github/workflows/docker-image.yml rename to .github/workflows/docker-push.yml diff --git a/.github/workflows/gobuild.yml b/.github/workflows/go-build.yml similarity index 100% rename from .github/workflows/gobuild.yml rename to .github/workflows/go-build.yml diff --git a/.github/workflows/golang-analysis.yml b/.github/workflows/go-check.yml similarity index 100% rename from .github/workflows/golang-analysis.yml rename to .github/workflows/go-check.yml diff --git a/.github/workflows/golint.yml b/.github/workflows/go-lint.yml similarity index 100% rename from .github/workflows/golint.yml rename to .github/workflows/go-lint.yml diff --git a/.github/workflows/gotest.yml b/.github/workflows/go-test.yml similarity index 100% rename from .github/workflows/gotest.yml rename to .github/workflows/go-test.yml diff --git a/.github/workflows/build.yml b/.github/workflows/interop.yml similarity index 100% rename from .github/workflows/build.yml rename to .github/workflows/interop.yml diff --git a/.github/workflows/sync-release-assets.yml b/.github/workflows/sync-github-release-assets.yml similarity index 100% rename from .github/workflows/sync-release-assets.yml rename to .github/workflows/sync-github-release-assets.yml From 64d3c153cbe2c439513d7a972530cf6606fb87b8 Mon Sep 17 00:00:00 2001 From: galargh Date: Thu, 2 Mar 2023 10:14:30 +0100 Subject: [PATCH 7/9] Revert "ci: rename gha workflow files to match workflow names" This reverts commit d164129258f456fb70dc709b59d743a8aed57cc2. --- .github/workflows/{interop.yml => build.yml} | 0 .github/workflows/{codeql.yml => codeql-analysis.yml} | 0 .github/workflows/{docker-push.yml => docker-image.yml} | 0 .github/workflows/{go-build.yml => gobuild.yml} | 0 .github/workflows/{go-check.yml => golang-analysis.yml} | 0 .github/workflows/{go-lint.yml => golint.yml} | 0 .github/workflows/{go-test.yml => gotest.yml} | 0 .../{sync-github-release-assets.yml => sync-release-assets.yml} | 0 8 files changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{interop.yml => build.yml} (100%) rename .github/workflows/{codeql.yml => codeql-analysis.yml} (100%) rename .github/workflows/{docker-push.yml => docker-image.yml} (100%) rename .github/workflows/{go-build.yml => gobuild.yml} (100%) rename .github/workflows/{go-check.yml => golang-analysis.yml} (100%) rename .github/workflows/{go-lint.yml => golint.yml} (100%) rename .github/workflows/{go-test.yml => gotest.yml} (100%) rename .github/workflows/{sync-github-release-assets.yml => sync-release-assets.yml} (100%) diff --git a/.github/workflows/interop.yml b/.github/workflows/build.yml similarity index 100% rename from .github/workflows/interop.yml rename to .github/workflows/build.yml diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql-analysis.yml similarity index 100% rename from .github/workflows/codeql.yml rename to .github/workflows/codeql-analysis.yml diff --git a/.github/workflows/docker-push.yml b/.github/workflows/docker-image.yml similarity index 100% rename from .github/workflows/docker-push.yml rename to .github/workflows/docker-image.yml diff --git a/.github/workflows/go-build.yml b/.github/workflows/gobuild.yml similarity index 100% rename from .github/workflows/go-build.yml rename to .github/workflows/gobuild.yml diff --git a/.github/workflows/go-check.yml b/.github/workflows/golang-analysis.yml similarity index 100% rename from .github/workflows/go-check.yml rename to .github/workflows/golang-analysis.yml diff --git a/.github/workflows/go-lint.yml b/.github/workflows/golint.yml similarity index 100% rename from .github/workflows/go-lint.yml rename to .github/workflows/golint.yml diff --git a/.github/workflows/go-test.yml b/.github/workflows/gotest.yml similarity index 100% rename from .github/workflows/go-test.yml rename to .github/workflows/gotest.yml diff --git a/.github/workflows/sync-github-release-assets.yml b/.github/workflows/sync-release-assets.yml similarity index 100% rename from .github/workflows/sync-github-release-assets.yml rename to .github/workflows/sync-release-assets.yml From d45d8ecdad5600b72afc5da8591504b49a94c3aa Mon Sep 17 00:00:00 2001 From: galargh Date: Thu, 2 Mar 2023 10:27:25 +0100 Subject: [PATCH 8/9] ci: simplify codeql worfklow --- .github/workflows/codeql-analysis.yml | 10 +--------- .github/workflows/golang-analysis.yml | 1 - 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index d4b16857f..800741b2e 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -21,14 +21,6 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 20 - strategy: - fail-fast: false - matrix: - language: [ 'go' ] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] - # Learn more: - # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed - steps: - name: Checkout repository uses: actions/checkout@v2 @@ -37,7 +29,7 @@ jobs: - name: Initialize CodeQL uses: github/codeql-action/init@v2 with: - languages: ${{ matrix.language }} + languages: go - name: Autobuild uses: github/codeql-action/autobuild@v2 diff --git a/.github/workflows/golang-analysis.yml b/.github/workflows/golang-analysis.yml index b0eced941..5db740ee9 100644 --- a/.github/workflows/golang-analysis.yml +++ b/.github/workflows/golang-analysis.yml @@ -15,7 +15,6 @@ jobs: if: github.repository == 'ipfs/kubo' || github.event_name == 'workflow_dispatch' runs-on: ubuntu-latest timeout-minutes: 10 - name: All steps: - uses: actions/checkout@v2 with: From fb80af5180ec9e1d9700b7dafb1a79ec9fef2c66 Mon Sep 17 00:00:00 2001 From: galargh Date: Tue, 21 Mar 2023 15:26:07 +0100 Subject: [PATCH 9/9] fix: ensure unique job names across all GHA workflows --- .github/workflows/build.yml | 10 +++++----- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/docker-build.yml | 2 +- .github/workflows/gobuild.yml | 8 ++++---- .github/workflows/golang-analysis.yml | 2 +- .github/workflows/golint.yml | 2 +- .github/workflows/gotest.yml | 2 +- .github/workflows/sharness.yml | 20 ++++++++++---------- 8 files changed, 24 insertions(+), 24 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4a61e18b0..15f467f74 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,7 +11,7 @@ env: GO_VERSION: 1.19.1 jobs: - prepare: + interop-prep: if: github.repository == 'ipfs/kubo' || github.event_name == 'workflow_dispatch' runs-on: ubuntu-latest timeout-minutes: 5 @@ -39,7 +39,7 @@ jobs: name: kubo path: cmd/ipfs/ipfs interop: - needs: [prepare] + needs: [interop-prep] runs-on: ubuntu-latest timeout-minutes: 20 defaults: @@ -77,7 +77,7 @@ jobs: IPFS_GO_EXEC: ${{ github.workspace }}/cmd/ipfs/ipfs working-directory: interop go-ipfs-api: - needs: [prepare] + needs: [interop-prep] runs-on: ubuntu-latest timeout-minutes: 5 env: @@ -117,7 +117,7 @@ jobs: - run: cmd/ipfs/ipfs shutdown if: always() go-ipfs-http-client: - needs: [prepare] + needs: [interop-prep] runs-on: ubuntu-latest timeout-minutes: 5 env: @@ -151,7 +151,7 @@ jobs: - run: go test -count=1 -v ./... working-directory: go-ipfs-http-client ipfs-webui: - needs: [prepare] + needs: [interop-prep] runs-on: ubuntu-latest timeout-minutes: 20 env: diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 800741b2e..e2fa78bef 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -16,7 +16,7 @@ permissions: security-events: write # (github/codeql-action/autobuild) jobs: - go: + codeql: if: github.repository == 'ipfs/kubo' || github.event_name == 'workflow_dispatch' runs-on: ubuntu-latest timeout-minutes: 20 diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 2d76cc8eb..ea6c9d9b3 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -8,7 +8,7 @@ on: - 'master' jobs: - head: + docker-build: if: github.repository == 'ipfs/kubo' || github.event_name == 'workflow_dispatch' runs-on: ubuntu-latest timeout-minutes: 10 diff --git a/.github/workflows/gobuild.yml b/.github/workflows/gobuild.yml index 9fe883392..f80fb8205 100644 --- a/.github/workflows/gobuild.yml +++ b/.github/workflows/gobuild.yml @@ -8,12 +8,12 @@ on: - 'master' jobs: - runner: + go-build-runner: if: github.repository == 'ipfs/kubo' || github.event_name == 'workflow_dispatch' uses: ipfs/kubo/.github/workflows/runner.yml@master - build: - needs: [runner] - runs-on: ${{ fromJSON(needs.runner.outputs.config).labels }} + go-build: + needs: [go-build-runner] + runs-on: ${{ fromJSON(needs.go-build-runner.outputs.config).labels }} timeout-minutes: 20 env: TEST_NO_DOCKER: 1 diff --git a/.github/workflows/golang-analysis.yml b/.github/workflows/golang-analysis.yml index 5db740ee9..d3fead57c 100644 --- a/.github/workflows/golang-analysis.yml +++ b/.github/workflows/golang-analysis.yml @@ -11,7 +11,7 @@ permissions: contents: read # to fetch code (actions/checkout) jobs: - check: + go-check: if: github.repository == 'ipfs/kubo' || github.event_name == 'workflow_dispatch' runs-on: ubuntu-latest timeout-minutes: 10 diff --git a/.github/workflows/golint.yml b/.github/workflows/golint.yml index 524beb018..621a2807a 100644 --- a/.github/workflows/golint.yml +++ b/.github/workflows/golint.yml @@ -8,7 +8,7 @@ on: - 'master' jobs: - lint: + go-lint: if: github.repository == 'ipfs/kubo' || github.event_name == 'workflow_dispatch' runs-on: ubuntu-latest timeout-minutes: 10 diff --git a/.github/workflows/gotest.yml b/.github/workflows/gotest.yml index 76c090c2f..3867271ca 100644 --- a/.github/workflows/gotest.yml +++ b/.github/workflows/gotest.yml @@ -8,7 +8,7 @@ on: - 'master' jobs: - test: + go-test: if: github.repository == 'ipfs/kubo' || github.event_name == 'workflow_dispatch' runs-on: ubuntu-latest timeout-minutes: 20 diff --git a/.github/workflows/sharness.yml b/.github/workflows/sharness.yml index 8e29386ff..7b392bcd9 100644 --- a/.github/workflows/sharness.yml +++ b/.github/workflows/sharness.yml @@ -8,12 +8,12 @@ on: - 'master' jobs: - runner: + sharness-runner: if: github.repository == 'ipfs/kubo' || github.event_name == 'workflow_dispatch' uses: ipfs/kubo/.github/workflows/runner.yml@master - test: - needs: [runner] - runs-on: ${{ fromJSON(needs.runner.outputs.config).labels }} + sharness-test: + needs: [sharness-runner] + runs-on: ${{ fromJSON(needs.sharness-runner.outputs.config).labels }} timeout-minutes: 20 defaults: run: @@ -67,7 +67,7 @@ jobs: TEST_EXPENSIVE: 1 IPFS_CHECK_RCMGR_DEFAULTS: 1 CONTINUE_ON_S_FAILURE: 1 - PARALLEL: ${{ fromJSON(needs.runner.outputs.config).parallel }} + PARALLEL: ${{ fromJSON(needs.sharness-runner.outputs.config).parallel }} - name: Upload coverage report uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 # v3.1.0 if: failure() || success() @@ -96,12 +96,12 @@ jobs: - name: Upload one-page HTML report to S3 id: one-page uses: pl-strflt/tf-aws-gh-runner/.github/actions/upload-artifact@main - if: fromJSON(needs.runner.outputs.config).aws && (failure() || success()) + if: fromJSON(needs.sharness-runner.outputs.config).aws && (failure() || success()) with: source: kubo/test/sharness/test-results/sharness.html destination: sharness.html - name: Upload one-page HTML report - if: (! fromJSON(needs.runner.outputs.config).aws) && (failure() || success()) + if: (! fromJSON(needs.sharness-runner.outputs.config).aws) && (failure() || success()) uses: actions/upload-artifact@v3 with: name: sharness.html @@ -116,18 +116,18 @@ jobs: - name: Upload full HTML report to S3 id: full uses: pl-strflt/tf-aws-gh-runner/.github/actions/upload-artifact@main - if: fromJSON(needs.runner.outputs.config).aws && (failure() || success()) + if: fromJSON(needs.sharness-runner.outputs.config).aws && (failure() || success()) with: source: kubo/test/sharness/test-results/sharness-html destination: sharness-html/ - name: Upload full HTML report - if: (! fromJSON(needs.runner.outputs.config).aws) && (failure() || success()) + if: (! fromJSON(needs.sharness-runner.outputs.config).aws) && (failure() || success()) uses: actions/upload-artifact@v3 with: name: sharness-html path: kubo/test/sharness/test-results/sharness-html - name: Add S3 links to the summary - if: fromJSON(needs.runner.outputs.config).aws && (failure() || success()) + if: fromJSON(needs.sharness-runner.outputs.config).aws && (failure() || success()) run: echo "$MD" >> $GITHUB_STEP_SUMMARY env: MD: |