Skip to content

Bump the actions group across 1 directory with 10 updates #158

Bump the actions group across 1 directory with 10 updates

Bump the actions group across 1 directory with 10 updates #158

Workflow file for this run

name: Test
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
smithy:
name: Smithy Verify
uses: ./.github/workflows/smithy-verify.yml
test-go:
name: Go
runs-on: ubuntu-latest
needs: smithy
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
with:
go-version: '1.26'
- name: Check service drift
run: ./scripts/check-service-drift.sh
- name: Check type freshness
run: |
cd go && go generate ./...
cd ..
test -z "$(git status --porcelain go/pkg/generated/)" || \
(echo "ERROR: Go generated types are stale. Run 'cd go && go generate ./...'" && git status --porcelain go/pkg/generated/ && exit 1)
- name: Check service freshness
run: |
cd go && go run ./cmd/generate-services/
cd ..
test -z "$(git status --porcelain go/pkg/fizzy/*_service.go)" || \
(echo "ERROR: Go generated services are stale" && git status --porcelain go/pkg/fizzy/*_service.go && exit 1)
- name: Test
run: cd go && go test ./pkg/fizzy/... -count=1 -race -coverprofile=coverage.out
- name: Coverage
run: |
cd go
COVERAGE=$(go tool cover -func=coverage.out | tail -1 | awk '{print $3}' | tr -d '%')
echo "Coverage: ${COVERAGE}%"
if (( $(echo "$COVERAGE < 15" | bc -l) )); then
echo "Coverage below 15% threshold"
exit 1
fi
test-typescript:
name: TypeScript
runs-on: ubuntu-latest
needs: smithy
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: '22'
- name: Install
run: cd typescript && npm ci
- name: Check service drift
run: ./scripts/check-ts-service-drift.sh
- name: Check service freshness
run: |
cd typescript && npx tsx scripts/generate-services.ts
cd ..
test -z "$(git status --porcelain typescript/src/generated/services/)" || \
(echo "ERROR: TypeScript generated services are stale. Run 'make ts-generate-services'" && git status --porcelain typescript/src/generated/services/ && exit 1)
- name: Lint
run: cd typescript && npm run lint
- name: Typecheck
run: cd typescript && npm run typecheck
- name: Test
run: cd typescript && npm test
- name: Build
run: cd typescript && npm run build
- name: Verify root pack
run: npm pack --dry-run
test-ruby:
name: Ruby (${{ matrix.ruby }})
runs-on: ubuntu-latest
needs: smithy
strategy:
matrix:
ruby: ['3.2', '3.3', '3.4', '4.0', 'head']
fail-fast: false
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- uses: ruby/setup-ruby@4c56a21280b36d862b5fc31348f463d60bdc55d5 # v1.301.0
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
working-directory: ruby
- name: Check service drift
if: matrix.ruby == '3.3'
run: ./scripts/check-rb-service-drift.sh
- name: Check service freshness
if: matrix.ruby == '3.3'
run: |
ruby ruby/scripts/generate-services.rb
test -z "$(git status --porcelain ruby/lib/fizzy/generated/services/)" || \
(echo "ERROR: Ruby generated services are stale. Run 'make rb-generate-services'" && git status --porcelain ruby/lib/fizzy/generated/services/ && exit 1)
- name: Lint
if: matrix.ruby == '3.3'
run: cd ruby && bundle exec rubocop
- name: Test
run: cd ruby && bundle exec rake test
test-swift:
name: Swift
runs-on: macos-15
needs: smithy
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Build
run: cd swift && swift build
- name: Check service drift
run: ./scripts/check-swift-service-drift.sh
- name: Check service freshness
run: |
cd swift && swift run FizzyGenerator --openapi ../openapi.json --behavior ../behavior-model.json --output Sources/Fizzy/Generated
cd ..
test -z "$(git status --porcelain swift/Sources/Fizzy/Generated/)" || \
(echo "ERROR: Swift generated services are stale. Run 'make swift-generate'" && git status --porcelain swift/Sources/Fizzy/Generated/ && exit 1)
- name: Test
run: cd swift && swift test
test-kotlin:
name: Kotlin
runs-on: ubuntu-latest
needs: smithy
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
distribution: corretto
java-version: '17'
- name: Build
run: cd kotlin && ./gradlew :fizzy-sdk:compileKotlinJvm
- name: Check service drift
run: ./scripts/check-kotlin-service-drift.sh
- name: Check service freshness
run: |
cd kotlin && ./gradlew :generator:run
cd ..
test -z "$(git status --porcelain kotlin/sdk/src/commonMain/kotlin/com/basecamp/fizzy/generated/)" || \
(echo "ERROR: Kotlin generated services are stale. Run 'make kt-generate-services'" && git status --porcelain kotlin/sdk/src/commonMain/kotlin/com/basecamp/fizzy/generated/ && exit 1)
conformance-go:
name: Conformance (Go)
needs: test-go
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
with:
go-version: '1.26'
- name: Build runner
run: cd conformance/runner/go && go build -o conformance-runner .
- name: Run conformance
run: cd conformance/runner/go && ./conformance-runner ../../tests/
conformance-typescript:
name: Conformance (TypeScript)
needs: test-typescript
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: '22'
- run: cd typescript && npm ci && npm run build
- run: cd conformance/runner/typescript && npm ci
- run: cd conformance/runner/typescript && npx vitest run
conformance-ruby:
name: Conformance (Ruby)
needs: test-ruby
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- uses: ruby/setup-ruby@4c56a21280b36d862b5fc31348f463d60bdc55d5 # v1.301.0
with:
ruby-version: '3.3'
bundler-cache: true
working-directory: conformance/runner/ruby
- run: cd conformance/runner/ruby && bundle exec ruby runner.rb ../../tests/
conformance-kotlin:
name: Conformance (Kotlin)
needs: test-kotlin
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
distribution: corretto
java-version: '17'
- run: cd kotlin && ./gradlew :conformance:run
lint-go:
name: Go Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
with:
go-version: '1.26'
- uses: golangci/golangci-lint-action@1e7e51e771db61008b38414a730f564565cf7c20 # v9.2.0
with:
working-directory: go
lint-actions:
name: GitHub Actions audit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Run actionlint
uses: rhysd/actionlint@914e7df21a07ef503a81201c76d2b11c789d3fca # v1.7.12
- name: Run zizmor
uses: zizmorcore/zizmor-action@b1d7e1fb5de872772f31590499237e7cce841e8e # v0.5.3
with:
advanced-security: false
provenance:
name: Provenance Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Check provenance sync
run: diff -q spec/api-provenance.json go/pkg/fizzy/api-provenance.json
rubric-check:
name: Rubric Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Check rubric audit
run: make audit-check