1
Fork 0
hermetic_cc_toolchain/tools/releaser/main_test.go

37 lines
835 B
Go
Raw Normal View History

releaser This is a work in progress. Next steps: 1. Add instructions to the wiki. 2. Try the new tarball on a real repository. 3. Cut the actual release. Test output for an upcoming `v1.0.2`: $ bazel run //tools/releaser -- -skip_upgrades=true -tag v1.0.2 INFO: Analyzed target //tools/releaser:releaser (1 packages loaded, 29 targets configured). INFO: Found 1 target... Target //tools/releaser:releaser up-to-date: bazel-bin/tools/releaser/releaser_/releaser INFO: Elapsed time: 1.978s, Critical Path: 1.81s INFO: 3 processes: 1 internal, 2 linux-sandbox. INFO: Build completed successfully, 3 total actions INFO: Running command line: bazel-bin/tools/releaser/releaser_/releaser '-skip_upgrades=true' -tag v1.0.2 Running pre-release checks: - SKIPPING: go update commands - gazelle - checking if repository is clean Creating tag v1.0.2 Creating archive bazel-zig-cc-v1.0.2.tar Compressing bazel-zig-cc-v1.0.2.tar Written /code/bazel-zig-cc/bazel-zig-cc-v1.0.2.tar.gz Release boilerplate: ----- load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "bazel-zig-cc", sha256 = "b0e857f8b32062a112305931437c5a7e1762287e27379c6d2d7173f0fa74e270", urls = [ "https://mirror.bazel.build/github.com/uber/bazel-zig-cc/releases/download/v1.0.2/bazel-zig-cc-v1.0.2.tar.gz", "https://github.com/uber/bazel-zig-cc/releases/download/v1.0.2/bazel-zig-cc-v1.0.2.tar.gz", ], ) load("@bazel-zig-cc//toolchain:defs.bzl", zig_toolchains = "toolchains") # Argument-free will pick reasonable defaults. zig_toolchains() # version, url_formats and host_platform_sha256 are can be set for those who # wish to control their Zig SDK version and where it is downloaded from zig_toolchains( version = "<...>", url_formats = [ "https://example.org/zig/zig-{host_platform}-{version}.{_ext}", ], host_platform_sha256 = { ... }, )
2023-03-10 10:45:02 +02:00
// Copyright 2023 Uber Technologies, Inc.
// Licensed under the MIT License
releaser This is a work in progress. Next steps: 1. Add instructions to the wiki. 2. Try the new tarball on a real repository. 3. Cut the actual release. Test output for an upcoming `v1.0.2`: $ bazel run //tools/releaser -- -skip_upgrades=true -tag v1.0.2 INFO: Analyzed target //tools/releaser:releaser (1 packages loaded, 29 targets configured). INFO: Found 1 target... Target //tools/releaser:releaser up-to-date: bazel-bin/tools/releaser/releaser_/releaser INFO: Elapsed time: 1.978s, Critical Path: 1.81s INFO: 3 processes: 1 internal, 2 linux-sandbox. INFO: Build completed successfully, 3 total actions INFO: Running command line: bazel-bin/tools/releaser/releaser_/releaser '-skip_upgrades=true' -tag v1.0.2 Running pre-release checks: - SKIPPING: go update commands - gazelle - checking if repository is clean Creating tag v1.0.2 Creating archive bazel-zig-cc-v1.0.2.tar Compressing bazel-zig-cc-v1.0.2.tar Written /code/bazel-zig-cc/bazel-zig-cc-v1.0.2.tar.gz Release boilerplate: ----- load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "bazel-zig-cc", sha256 = "b0e857f8b32062a112305931437c5a7e1762287e27379c6d2d7173f0fa74e270", urls = [ "https://mirror.bazel.build/github.com/uber/bazel-zig-cc/releases/download/v1.0.2/bazel-zig-cc-v1.0.2.tar.gz", "https://github.com/uber/bazel-zig-cc/releases/download/v1.0.2/bazel-zig-cc-v1.0.2.tar.gz", ], ) load("@bazel-zig-cc//toolchain:defs.bzl", zig_toolchains = "toolchains") # Argument-free will pick reasonable defaults. zig_toolchains() # version, url_formats and host_platform_sha256 are can be set for those who # wish to control their Zig SDK version and where it is downloaded from zig_toolchains( version = "<...>", url_formats = [ "https://example.org/zig/zig-{host_platform}-{version}.{_ext}", ], host_platform_sha256 = { ... }, )
2023-03-10 10:45:02 +02:00
package main
import (
"fmt"
"testing"
)
func TestRegex(t *testing.T) {
tests := []struct {
tag string
good bool
}{
{good: true, tag: "v1.0.0"},
{good: true, tag: "v99.99.99"},
{good: true, tag: "v1.0.1-rc1"},
{good: true, tag: "v1.0.99-rc99"},
{good: false, tag: ""},
{good: false, tag: "v1.0"},
{good: false, tag: "1.0.0"},
{good: false, tag: "1.0.99-rc99"},
}
for _, tt := range tests {
t.Run(fmt.Sprintf("tag=%s good=%s", tt.tag, tt.good), func(t *testing.T) {
matched := tagRegexp.MatchString(tt.tag)
if tt.good && !matched {
t.Errorf("expected %s to be a valid tag, but it was not", tt.tag)
} else if !tt.good && matched {
t.Errorf("expected %s to be an invalida tag, but it was", tt.tag)
}
})
}
}