teleport/build.assets
Cam Hutchison 8f43fdbcf5
render-tests: Remove test output from flaky test reporter (#27919)
* render-tests: Remove test output from flaky test reporter

Remove the output from the summary output by render-tests in the
flakiness reporting mode. Sometimes this output is very large depending
on the test that failed, and we fail to post it to Slack due to the
length. This only changes what is written to the summary file. Stdout
still contains the failed test output.

When posted to Slack, the message will have a link to the run logs which
will contain the failed test output. This output will be sorted
alphabetically by package/test name and not by failure rate, as it was
before.

* render-tests: Print number of failure, not percentage

Print the number of failures from the total number of tests in the
flakiness report instead of percentages. Since we run less than 100 test
runs, the percentage is not that useful. It is more useful to see that a
test failed only once, for example, not 14.1% of the time.

* render-tests: Fix expected/actual ordering in tests

Fix the tests for render-tests where expected/actual params were
backwards.

* render-tests: Dont collect test output against package

Keep individual test output separate from package-level output.
Previously, all individual test output was recorded against a package
too and only the package output was printed if no tests in the package
failed. This meant we lost output for package-level failures such as
data races and crashes (segfaults) when there was an individual test
failure too.

There was no reason I could tell why it was done this way, so remove it.
This should now print all test failures.

* render-tests: Include packages in top flakiness summary

Include packages as well as individual tests in the flakiness summary,
as packages can have failures where no individual tests failed, such as
data races or crashes - both of these are recorded as a package-level
failure and not against individual tests. Without these in the summary,
we miss some failures.

* Change (M from N) to (M/N) in flaky summary
2023-06-21 05:23:02 +00:00
..
charts Updates distroless Dockerfile to handle fips realeases (#25449) 2023-05-02 03:29:03 +00:00
flake Make devbox sandbox friendly, add devbox CI. (#27728) 2023-06-14 20:58:45 +00:00
gpg Add docker cli to buildbox (#25729) 2023-05-10 08:44:19 +00:00
macos Update version in tsh.app Info.plist (#25616) 2023-05-15 22:42:54 +00:00
pam add PAM environment with interpolation support 2021-03-30 18:23:38 +02:00
pkgconfig chore: Bump OpenSSL to 3.0.9 (#27109) 2023-05-30 14:43:29 +00:00
rpm rpm: Don't include build-id artifacts in packages (#7080) 2021-05-31 09:52:30 -07:00
rpm-sign rpm: Don't include build-id artifacts in packages (#7080) 2021-05-31 09:52:30 -07:00
tooling render-tests: Remove test output from flaky test reporter (#27919) 2023-06-21 05:23:02 +00:00
windows Create ToolchainDir if does not exist (#25693) 2023-05-08 09:10:37 +00:00
.bashrc
.dockerignore Add node and yarn to the buildboxes in preparation for the webapps merge (#20339) 2023-01-18 17:56:04 +00:00
.gitignore pam: trigger pam_authenticate on login (#3966) 2020-07-10 20:28:33 +00:00
build-common.sh release: Prepare for MacOS builds on GitHub Actions (#23407) 2023-03-27 03:11:35 +00:00
build-fido2-macos.sh chore: Bump OpenSSL to 3.0.9 (#27109) 2023-05-30 14:43:29 +00:00
build-package.sh build: Support arm64 and universal binaries for MacOS (#25460) 2023-05-04 20:47:49 +00:00
build-pkg-tsh.sh build: Support arm64 and universal binaries for MacOS (#25460) 2023-05-04 20:47:49 +00:00
build-test-compat.sh Adds CI hooks for GLibc compatibility check (#15547) 2022-08-23 10:02:35 +10:00
build-webassets-if-changed.sh (Buddy) Removed node from multiarch buildbox, added i386 and amd64 targets (#22979) 2023-03-14 18:00:20 +00:00
Dockerfile chore: Bump golangci-lint to v1.53.3 (#27898) 2023-06-15 19:12:08 +00:00
Dockerfile-arm Update buildbox to push to ECR (#15058) 2022-08-16 21:07:07 +00:00
Dockerfile-centos7 Update Docker images to use v14 (#27189) 2023-06-01 19:47:51 +00:00
Dockerfile-centos7-assets Unify x86/ARM64 build process (#21660) 2023-02-15 15:38:59 +00:00
Dockerfile-centos7-fips Update Docker images to use v14 (#27189) 2023-06-01 19:47:51 +00:00
Dockerfile-connect Move Connect build to a new Docker container (#27175) 2023-06-06 15:28:20 +00:00
Dockerfile-grpcbox Allow overriding docker in make grpc (#27268) 2023-06-02 16:02:40 +00:00
Dockerfile-multiarch Speedup OpenSSL build (#27056) 2023-05-30 19:17:38 +00:00
Dockerfile-multiarch-base (Buddy) Removed node from multiarch buildbox, added i386 and amd64 targets (#22979) 2023-03-14 18:00:20 +00:00
Dockerfile-multiarch-clang (Buddy) Removed node from multiarch buildbox, added i386 and amd64 targets (#22979) 2023-03-14 18:00:20 +00:00
genproto.sh Add a few convenience toggles to genproto.sh (#26642) 2023-05-22 12:35:43 +00:00
grpcbox.mk Allow overriding docker in make grpc (#27268) 2023-06-02 16:02:40 +00:00
images.mk Remove unused FIPS build boxes (#26859) 2023-06-14 23:44:38 +00:00
install provide starting message for tar ball install (#25851) 2023-05-09 13:50:36 +00:00
keychain-setup.sh release: Update build for product signing (#23820) 2023-04-03 00:30:48 +00:00
locale.gen
Makefile Remove further unused fips infrastructure (#27900) 2023-06-20 15:21:19 +00:00
profile
README.md Refer to tsh apps subcommand (#21431) 2023-02-10 21:40:55 +00:00

Dockerized Teleport Build

This directory is used to produce a containerized production Teleport build. No need to have Golang. Only Docker is required.

It is a part of Gravitational CI/CD pipeline. To build Teleport type:

make

Safely updating build box Dockerfiles

The build box images are used in Drone pipelines and GitHub Actions. The resulting image is pushed to Amazon ECR and ghcr.io. This means that to safely introduce changes to Dockerfiles, those changes should be split into two stages:

  1. First you open a PR which updates a Dockerfile and get the PR merged.
  2. Once it's merged, Drone is going to pick it up, build a new build box image and push it to Amazon ECR.
  3. Then you can open another PR which starts using the new build box image.

DynamoDB static binary docker build

The static binary will be built along with all nodejs assets inside the container. From the root directory of the source checkout run:

docker build -f build.assets/Dockerfile.dynamodb -t teleportbuilder .

Then you can upload the result to an S3 bucket for release.

docker run -it -e AWS_ACL=public-read -e S3_BUCKET=my-teleport-releases -e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY teleportbuilder

Or simply copy the binary out of the image using a volume (it will be copied to current directory/build/teleport.

docker run -v $(pwd)/build:/builds -it teleportbuilder cp /gopath/src/github.com/gravitational/teleport/teleport.tgz /builds

OS package repo migrations

An OS package repo migration is semi-manually publishing specific releases to the new APT and YUM repos. This is required in several situations:

Multiple migrations can be performed at once. To run a migration do the following:

  1. Clone https://github.com/gravitational/teleport.git.
  2. Change to the directory the repo was cloned to.
  3. Create a new branch from master.
  4. Add the Teleport versions you wish to migration as demonstrated here: 151a2f489e (diff-2e3a64c97d186491e06fb2c7ead081b7ace2b67c4a4d974a563daf7c117a2c50).
  5. Set the migrationBranch variable to the name of the branch you created in (3) as demonstrated here: 151a2f489e (diff-2e3a64c97d186491e06fb2c7ead081b7ace2b67c4a4d974a563daf7c117a2c50).
  6. Get your Drone credentials from here: https://drone.platform.teleport.sh/account.
  7. Export your drone credentials as shown under "Example CLI Usage" on the Drone account page
  8. Open a new terminal.
  9. Run tsh apps login drone and follow any prompts.
  10. Run tsh proxy app drone and copy the printed socket. This should look something like 127.0.0.1:60982
  11. Switch back to your previous terminal.
  12. Run export DRONE_SERVER=http://{host:port}, replacing {host:port} with the data you copied in (10)
  13. Run make dronegen
  14. Commit the two changed files and push/publish the branch
  15. Open a PR merging your changes into master via https://github.com/gravitational/teleport/compare
  16. Under the "checks" section, click "details" on the check labeled "continuous-integration/drone/push"
  17. Once the pipelines complete, comment out the versions you added and blank out the migrationBranch string set in (4, 5) as demonstrated here: 9095880560 (diff-2e3a64c97d186491e06fb2c7ead081b7ace2b67c4a4d974a563daf7c117a2c50)
  18. Run make dronegen
  19. Commit and push the changes.
  20. Merge the PR and backport if required.