update crypto, bump to go 1.22 to fix CI #320
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- main | |
pull_request: | |
jobs: | |
ruby: | |
name: Ruby ${{ matrix.ruby }} ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
ruby: | |
- '3.1.2' | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: ${{ matrix.ruby }} | |
bundler-cache: true | |
- name: Install Libsodium on Windows | |
if: runner.os == 'Windows' | |
# this is a dependency of the ruby rbnacl library | |
# libsodium seems to be installed by default on macos and ubuntu runners | |
# https://github.com/RubyCrypto/rbnacl/wiki/Installing-libsodium#windows | |
run: | | |
cd "$env:temp" | |
Invoke-WebRequest "https://download.libsodium.org/libsodium/releases/libsodium-1.0.18-stable-msvc.zip" -OutFile "./libsodium.zip" | |
Expand-Archive ".\libsodium.zip" | |
Copy-Item ".\libsodium\libsodium\x64\Release\v142\dynamic\libsodium.dll" -Destination "C:\Windows\System32\sodium.dll" | |
shell: pwsh | |
- name: Lint | |
run: bundle exec rake standard | |
shell: bash | |
- name: Test | |
run: bundle exec rake test | |
shell: bash | |
go: | |
name: Go ${{ matrix.go }} ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
go: | |
- '1.22' | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ matrix.go }} | |
cache: true | |
- name: set windows cgo flags | |
if: runner.os == 'Windows' | |
shell: bash | |
run: | | |
echo "CGO_CFLAGS=-IC:\mingw64\opt\include" >> "$GITHUB_ENV" | |
echo "CGO_LDFLAGS=-LC:\mingw64\opt\lib" >> "$GITHUB_ENV" | |
- name: set macos cgo flags | |
if: runner.os == 'macos' | |
run: | | |
echo CGO_CFLAGS="-I$(brew --prefix openssl)/include" >> "$GITHUB_ENV" | |
echo CGO_LDFLAGS="-L$(brew --prefix openssl)/lib" >> "$GITHUB_ENV" | |
- name: Lint | |
uses: golangci/golangci-lint-action@v4 | |
- name: Test | |
run: go test $(go list ./... | grep -v cross_language_tests) -race -cover | |
shell: bash | |
cross: | |
name: Cross - Go ${{ matrix.go }} Ruby ${{ matrix.ruby }} ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
go: | |
- '1.22' | |
ruby: | |
- '3.1.2' | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ matrix.go }} | |
cache: true | |
- name: Set up Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: ${{ matrix.ruby }} | |
bundler-cache: true | |
- name: Install Libsodium on Windows | |
if: runner.os == 'Windows' | |
# this is a dependency of the ruby rbnacl library | |
# libsodium seems to be installed by default on macos and ubuntu runners | |
# https://github.com/RubyCrypto/rbnacl/wiki/Installing-libsodium#windows | |
run: | | |
cd "$env:temp" | |
Invoke-WebRequest "https://download.libsodium.org/libsodium/releases/libsodium-1.0.18-stable-msvc.zip" -OutFile "./libsodium.zip" | |
Expand-Archive ".\libsodium.zip" | |
Copy-Item ".\libsodium\libsodium\x64\Release\v142\dynamic\libsodium.dll" -Destination "C:\Windows\System32\sodium.dll" | |
shell: pwsh | |
- name: Set go C compiler on Windows | |
if: runner.os == 'Windows' | |
# the ruby installation adds a gcc and sets a path not compatible with tpm simulator | |
run: printf "CC=C:\ProgramData\chocolatey\bin\gcc.exe" >> "$GITHUB_ENV" | |
shell: bash | |
- name: Cross Language Tests | |
# ruby bundler leaves a `vendor` director here, which confuses go mod, so we need to explicitly disable it. | |
run: bundle exec go test ./cross_language_tests/... -mod=mod | |
shell: bash | |
mergeable: | |
runs-on: ubuntu-latest | |
steps: | |
- run: true | |
needs: | |
- ruby | |
- go | |
- cross |