Commit Graph

62 Commits

Author SHA1 Message Date
Michael McLoughlin
b2475ec56c ci: bump to go 1.22 (#426) 2024-02-09 13:07:06 -08:00
Michael McLoughlin
63eff7ea42 tests/thirdparty: add github.com/klauspost/compress/huff0 (#422)
Add the `huff0` package from the `github.com/klauspost/compress` module
to the third-party test suite.

https://github.com/klauspost/compress/tree/v1.17.5/huff0/_generate

Upgrade the version of `github.com/klauspost/compress` under test to
`v1.17.5`.

Closes #421
2024-01-26 18:29:34 -08:00
Michael McLoughlin
35f8322d68 tests/thirdparty: add bytedance/gopkg (#418)
Adds the https://github.com/bytedance/gopkg `xxhash3` package to the
third-party test suite.
2024-01-08 18:11:12 -08:00
Michael McLoughlin
77d43566e4 ci: bump to go 1.21 (#400) 2023-08-26 12:40:13 -07:00
Michael McLoughlin
5935b03afd ci: skip entire autoland job for non-bot users (#382)
In contributor PRs such as #372 we see that the pr/autoland job fails
due to permissions issues obtaining an app token from a fork.

This job is actually only required to auto-land bot PRs. Instead of
skipping just the auto-land setting step, we should be skipping the
entire thing.

Fixes #381
2023-03-05 20:32:25 -08:00
Michael McLoughlin
4e72ca720b tests/thirdparty: update golang/go tests to 1.20.1 (#378)
The Go third-party compatibility tests were pinned to the release
candidate version. This change uses the now official Go 1.20.1 release
tag.
2023-03-05 19:57:12 -08:00
Michael McLoughlin
1bba0bed7f ci: bump to go 1.20 (#375)
* Update CI Go version to 1.20/1.19
* Update `golangci-lint` to v1.51.2
* Update coverage collection to use new Go 1.20 tools
* Update coverage job to only run on latest Go version

Fixes #367
2023-03-05 14:22:23 -08:00
Michael McLoughlin
881df56d21 ci: remove "Configure Go Environment" step (#376)
No longer required given updates to `actions/setup-go`.
2023-03-05 12:32:52 -08:00
Michael McLoughlin
92f38ce96d .github/actions: fix bot author template (#357)
Many bot commits have landed with an incorrectly templated author name, for
example 67039b7ed9 has:

Co-authored-by: {{ steps.bot.outputs.login }} <104697117+cadobot[bot]@users.noreply.github.com>

This PR fixes the bad template.
2023-01-07 20:57:46 -08:00
Michael McLoughlin
d5e3835a60 .github: use app token for third-party metadata tests (#356)
Use bot app token for third-party metadata tests.

These tests have hit HTTP 403 errors, speculated due to hitting restrictive
rate limits. Github app tokens have much higher rate limits.
2023-01-07 20:14:32 -08:00
Michael McLoughlin
12b5abca55 tests/thirdparty: add crypto/internal/bigmod (#355)
Add test case for avo generator in standard library crypto/internal/bigmod.

https://github.com/golang/go/tree/go1.20rc2/src/crypto/internal/bigmod
https://golang.org/cl/452095
https://words.filippo.io/dispatches/go-1-20-cryptography/

Closes #354
2023-01-07 13:17:16 -08:00
Michael McLoughlin
fa3cfb0153 .github: exclude bot commits from auto-generated release notes (#342) 2022-11-26 19:59:21 -08:00
Michael McLoughlin
ef60a33bf0 ci: upgrade actions (#340) 2022-11-26 15:00:56 -08:00
Michael McLoughlin
8e371a3c87 ci: allow metadata workflow manual trigger (#338) 2022-11-26 14:13:37 -08:00
Michael McLoughlin
81aabe5ce6 ci: setup go env in metadata workflow (#337)
Fixes issue in metadata workflow where golangci-lint install fails because $GOPATH is not set.
2022-11-26 14:04:24 -08:00
Michael McLoughlin
429cf3cdbf ci: bump to go 1.19 (#330)
* Bump CI to Go 1.19
* Update golang/go edwards25519 test
* Apply formatting to printer stubs output (to get correct comment formatting)
* Bump gofumpt version
2022-09-05 22:15:01 -07:00
Michael McLoughlin
d76a0f6dd6 ci: reduce frequency of auto updates (#328)
Reduce frequency of auto-update jobs:
* Update third-party package metadata
* Bump dependency version
Both are now monthly rather than weekly.
2022-09-05 15:09:52 -07:00
Michael McLoughlin
223e8f57b9 ci: create pull request action (#288)
Refactor pull request creation into composite action.
2022-05-08 21:26:34 -07:00
Michael McLoughlin
62c71109a4 tests/thirdparty: use Suite type for configuration (#285) 2022-05-08 16:55:51 -07:00
Michael McLoughlin
5e6971cc7a script: metadata update (#283) 2022-05-08 16:10:23 -07:00
Michael McLoughlin
e3b49f1a29 ci: do not auto-merge draft pull requests (#282)
Provide a mechanism for testing workflows that create pull requests.
2022-05-08 15:50:22 -07:00
Michael McLoughlin
9eff2e4375 .github: replace dependabot with deps workflow (#277)
Dependabot ignores updates to Go modules that do not have semantic version
tags. See: https://github.com/dependabot/dependabot-core/issues/3017.

Therefore, this change replaces dependabot with a custom workflow with
upgrades Go dependencies using `go get -u ./...` and creates a PR. This PR
will be auto-merged using the existing logic for cadobot-generated PRs.
2022-05-01 14:59:48 -07:00
Michael McLoughlin
967e076788 .github: add "required" ci job (#276)
Github branch protection rules allow required checks to be specified, but they
must be mentioned by name. This is a little annoying for jobs with names that
change, such as test jobs that depend on the go version.

This PR fixes this by creating a stub job in the CI workflow that simply
depends on the test and lint workflows. This job can then be listed as a
required check, and has the effect of aggregating the dependent checks into
one.
2022-05-01 14:11:37 -07:00
Michael McLoughlin
a746f32c01 .github: remove unnecessary matrix parameters (#275)
Remove GitHub Actions job matrix parameters which only have one option.  These
parameters clutter the action names.
2022-05-01 13:41:32 -07:00
Michael McLoughlin
907500a407 .github: fix automerge (#273)
Use PR html_url rather than number.
2022-05-01 13:10:40 -07:00
Michael McLoughlin
b04c1d7a0f .github: auto-merge bot pull requests (#268)
Adds workflow to auto-merge cadobot pull requests.
2022-05-01 12:58:02 -07:00
Michael McLoughlin
f955ddf82a .github: workflow to update metadata (#257)
Provides a Github Actions Workflow which creates a PR to update third-party package metadata.

PR is created with a new "cadobot" Github App.
2022-04-30 15:14:49 -07:00
Michael McLoughlin
6a6b0bd11d tests/thirdparty: add cloudflare/circl (#264) 2022-04-24 22:18:26 -07:00
Michael McLoughlin
3e9461adf1 tests/thirdparty: add klauspost/compress/zstd (#263)
Upgrade test version of klauspost/compress. Fix s2 test and add zstd package.
2022-04-24 21:54:57 -07:00
Michael McLoughlin
84071ae4f9 tests/thirdparty: multiple packages per project (#262) 2022-04-24 20:20:11 -07:00
Michael McLoughlin
96c4d85995 script: yaml formatting (#261) 2022-04-24 12:54:07 -07:00
Michael McLoughlin
f1f7d93959 tests/thirdparty: standard library crypto/ed25519 (#225)
Fixes #226
2022-04-23 21:58:06 -07:00
Michael McLoughlin
b758297525 .github: upgrade setup-go action (#259)
Upgrade to v3.0.0. Set check-latest option.
2022-04-23 21:01:50 -07:00
Michael McLoughlin
956d98e549 .github: configure dependabot (#253) 2022-04-17 21:39:58 -07:00
Michael McLoughlin
77ce540158 tests/thirdparty: add mmcloughlin/md4 (#249) 2022-04-17 14:08:30 -07:00
Michael McLoughlin
a25e011a06 tests/thirdparty: add oasisprotocol/deoxysii (#247)
Fixes #246
2022-04-16 21:25:22 -07:00
Michael McLoughlin
b0c64b2e52 ci: bump to go 1.18 (#239) 2022-04-10 21:03:05 -07:00
Michael McLoughlin
af3e578ab4 tests/thirdparty: re-enable segmentio/asm (#232)
Fixes #229
2021-11-13 13:36:54 -08:00
Michael McLoughlin
68350e4e08 tests/thirdparty: add lukechampine/blake3 (#231)
Fixes #164
2021-11-12 22:22:50 -08:00
Michael McLoughlin
b76e849b5c all: AVX-512 (#217)
Extends avo to support most AVX-512 instruction sets.

The instruction type is extended to support suffixes. The K family of opmask
registers is added to the register package, and the operand package is updated
to support the new operand types. Move instruction deduction in `Load` and
`Store` is extended to support KMOV* and VMOV* forms.

Internal code generation packages were overhauled. Instruction database loading
required various messy changes to account for the additional complexities of the
AVX-512 instruction sets. The internal/api package was added to introduce a
separation between instruction forms in the database, and the functions avo
provides to create them. This was required since with instruction suffixes there
is no longer a one-to-one mapping between instruction constructors and opcodes.

AVX-512 bloated generated source code size substantially, initially increasing
compilation and CI test times to an unacceptable level. Two changes were made to
address this:

1.  Instruction constructors in the `x86` package moved to an optab-based
    approach. This compiles substantially faster than the verbose code
    generation we had before.

2.  The most verbose code-generated tests are moved under build tags and
    limited to a stress test mode. Stress test builds are run on
    schedule but not in regular CI.

An example of AVX-512 accelerated 16-lane MD5 is provided to demonstrate and
test the new functionality.

Updates #20 #163 #229

Co-authored-by: Vaughn Iverson <vsivsi@yahoo.com>
2021-11-12 19:02:39 -08:00
Michael McLoughlin
6c0ed1c4e8 tests/thirdparty: add filippo.io/edwards25519 (#227)
Updates #226
2021-11-07 18:29:47 -08:00
Michael McLoughlin
f355d27b13 tests/thirdparty: package metadata (#223)
Fetches third-party package metadata from Github.
2021-11-07 16:13:33 -08:00
Michael McLoughlin
afe2d539b8 tests/thirdparty: golang.org/x/crypto/curve25519 (#222) 2021-11-07 01:39:03 -07:00
Michael McLoughlin
14c87c7da2 tests/thirdparty: add oasisprotocol/curve25519-voi (#220)
Fixes #202
2021-11-06 22:42:31 -07:00
Michael McLoughlin
2ca6e5e9f6 tests/thirdparty: add ericlagergren/lwcrypto (#219)
Fixes #188
2021-11-06 22:30:43 -07:00
Michael McLoughlin
9c70781236 all: go 1.17 (#197)
Bump CI Go versions to 1.16 and 1.17.
Update build tags with `go:build` equivalents.
Upgrade asmfmt tool for new `go:build` support.

Updates #183
2021-10-29 01:18:34 -07:00
Michael McLoughlin
9c815a0581 tests/thirdparty: fix phoreproject-bls (#204)
This started failing under Go 1.17.2 due to a missing go mod tidy in the
root of the respository.
2021-10-27 23:03:23 -07:00
Michael McLoughlin
5e686673b2 tests/thirdparty: add segmentio/asm (#201)
Adds third-party test for https://github.com/segmentio/asm.

Fixes #200
2021-09-15 23:49:08 -07:00
Michael McLoughlin
8ff8e3b751 tests/thirdparty: fix and run as github workflow (#198)
As part of fixing failing third-party tests, this PR significantly
rearchitects their specification and execution.

Third-party tests are now specified in a much more flexible format allowing
more customization on a per-package level. In addition, third-party tests are
now used to auto-generate a Github Actions workflow to perform the tests in
parallel. This not only gives faster feedback on PRs, but will also allow us
to more quickly narrow down on which packages are failing. An additional
workflow also confirms that local execution of third-party tests is consistent
with the Github Actions version. This workflow only runs when tests/thirdparty
itself is changed.
2021-09-15 23:25:51 -07:00
Michael McLoughlin
b935256fa5 ci: upgrade codecov action (#196)
Upgrades codecov-action in order to fix codecov errors CI, for example:

https://github.com/mmcloughlin/avo/runs/3389170262?check_suite_focus=true#step:10:11

See codecov/codecov-action#322.
2021-08-21 14:56:26 -07:00