Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate CI to use swiftlang / SwiftNIO common GitHub Actions. #2105

Merged
merged 1 commit into from
Nov 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .github/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
changelog:
categories:
- title: SemVer Major
labels:
- ⚠️ semver/major
- title: SemVer Minor
labels:
- semver/minor
- title: SemVer Patch
labels:
- semver/patch
- title: Other Changes
labels:
- semver/none
82 changes: 0 additions & 82 deletions .github/workflows/ci.yaml

This file was deleted.

26 changes: 26 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Main

on:
push:
branches: [main]
schedule:
- cron: "0 8,20 * * *"

jobs:
unit-tests:
name: Unit tests
uses: apple/swift-nio/.github/workflows/unit_tests.yml@main
with:
linux_5_9_enabled: false
linux_5_10_enabled: false
linux_6_0_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
linux_nightly_6_0_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"

benchmarks:
name: Benchmarks
uses: apple/swift-nio/.github/workflows/benchmarks.yml@main
with:
benchmark_package_path: "IntegrationTests/Benchmarks"
linux_5_9_enabled: false
linux_5_10_enabled: false
51 changes: 51 additions & 0 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: PR

on:
pull_request:
branches: [main]
types: [opened, reopened, synchronize]

jobs:
soundness:
name: Soundness
uses: swiftlang/github-workflows/.github/workflows/soundness.yml@main
with:
license_header_check_project_name: "gRPC"

grpc-soundness:
name: Soundness
uses: ./.github/workflows/soundness.yml

unit-tests:
name: Unit tests
uses: apple/swift-nio/.github/workflows/unit_tests.yml@main
with:
linux_5_9_enabled: false
linux_5_10_enabled: false
linux_6_0_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
linux_nightly_6_0_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"

examples:
name: Examples
uses: apple/swift-nio/.github/workflows/swift_matrix.yml@main
with:
name: "Examples"
matrix_linux_5_9_enabled: false
matrix_linux_5_10_enabled: false
matrix_linux_command: "./dev/build-examples.sh"

benchmarks:
name: Benchmarks
uses: apple/swift-nio/.github/workflows/benchmarks.yml@main
with:
benchmark_package_path: "IntegrationTests/Benchmarks"
linux_5_9_enabled: false
linux_5_10_enabled: false

cxx-interop:
name: Cxx interop
uses: apple/swift-nio/.github/workflows/cxx_interop.yml@main
with:
linux_5_9_enabled: false
linux_5_10_enabled: false
18 changes: 18 additions & 0 deletions .github/workflows/pull_request_label.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: PR

on:
pull_request:
types: [labeled, unlabeled, opened, reopened, synchronize]

jobs:
semver-label-check:
name: Semantic version label check
runs-on: ubuntu-latest
timeout-minutes: 1
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Check for Semantic Version label
uses: apple/swift-nio/.github/actions/pull_request_semver_label_checker@main
37 changes: 37 additions & 0 deletions .github/workflows/soundness.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Soundness

on:
workflow_call:

jobs:
swift-license-check:
name: Swift license headers check
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Mark the workspace as safe
run: git config --global --add safe.directory ${GITHUB_WORKSPACE}
- name: Run license check
run: |
./dev/license-check.sh

check-generated-code:
name: Check generated code
runs-on: ubuntu-latest
container:
image: swift:latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Mark the workspace as safe
run: git config --global --add safe.directory ${GITHUB_WORKSPACE}
- name: Install protoc
run: apt update && apt install -y protobuf-compiler
- name: Run soundness checks
run: |
./dev/check-generated-code.sh
13 changes: 13 additions & 0 deletions .license_header_template
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
@@ Copyright YEARS, gRPC Authors All rights reserved.
@@
@@ Licensed under the Apache License, Version 2.0 (the "License");
@@ you may not use this file except in compliance with the License.
@@ You may obtain a copy of the License at
@@
@@ http://www.apache.org/licenses/LICENSE-2.0
@@
@@ Unless required by applicable law or agreed to in writing, software
@@ distributed under the License is distributed on an "AS IS" BASIS,
@@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ See the License for the specific language governing permissions and
@@ limitations under the License.
42 changes: 42 additions & 0 deletions .licenseignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
.gitignore
**/.gitignore
.licenseignore
.gitattributes
.git-blame-ignore-revs
.gitmodules
.mailfilter
.mailmap
.spi.yml
.swift-format
.editorconfig
.github/*
*.md
*.txt
*.yml
*.yaml
*.json
Package.swift
**/Package.swift
Package@-*.swift
**/Package@-*.swift
Package.resolved
**/Package.resolved
Makefile
*.modulemap
**/*.modulemap
**/*.docc/*
*.xcprivacy
**/*.xcprivacy
*.symlink
**/*.symlink
Dockerfile
**/Dockerfile
Snippets/*
dev/git.commit.template
dev/version-bump.commit.template
.unacceptablelanguageignore
.swiftformatignore
LICENSE
**/*.swift
dev/protos/**/*.proto
Examples/hello-world/Protos/HelloWorld.proto
2 changes: 2 additions & 0 deletions .swiftformatignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*.grpc.swift
*.pb.swift
3 changes: 3 additions & 0 deletions .unacceptablelanguageignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
**/*.pb.swift
**/*.grpc.swift
dev/protos/upstream/**/*.proto
4 changes: 4 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,7 @@ In order to protect both you and ourselves, you will need to sign the

Please see the [main gRPC repository](https://github.com/grpc/grpc) for
more information about gRPC.

### Run CI checks locally

You can run the GitHub Actions workflows locally using [act](https://github.com/nektos/act) or in some cases calling scripts directly. For detailed steps on how to do this please see [https://github.com/swiftlang/github-workflows?tab=readme-ov-file#running-workflows-locally](https://github.com/swiftlang/github-workflows?tab=readme-ov-file#running-workflows-locally).
37 changes: 0 additions & 37 deletions Examples/hello-world/Protos

This file was deleted.

1 change: 1 addition & 0 deletions Examples/hello-world/Protos/HelloWorld.proto
42 changes: 21 additions & 21 deletions IntegrationTests/Benchmarks/Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,25 +17,25 @@
import PackageDescription

let package = Package(
name: "benchmarks",
platforms: [
.macOS(.v13),
],
dependencies: [
.package(path: "../../"),
.package(url: "https://github.com/ordo-one/package-benchmark", from: "1.11.2")
],
targets: [
.executableTarget(
name: "GRPCSwiftBenchmark",
dependencies: [
.product(name: "Benchmark", package: "package-benchmark"),
.product(name: "GRPCCore", package: "grpc-swift")
],
path: "Benchmarks/GRPCSwiftBenchmark",
plugins: [
.plugin(name: "BenchmarkPlugin", package: "package-benchmark")
]
),
]
name: "benchmarks",
platforms: [
.macOS(.v13)
],
dependencies: [
.package(path: "../../"),
.package(url: "https://github.com/ordo-one/package-benchmark", from: "1.11.2"),
],
targets: [
.executableTarget(
name: "GRPCSwiftBenchmark",
dependencies: [
.product(name: "Benchmark", package: "package-benchmark"),
.product(name: "GRPCCore", package: "grpc-swift"),
],
path: "Benchmarks/GRPCSwiftBenchmark",
plugins: [
.plugin(name: "BenchmarkPlugin", package: "package-benchmark")
]
)
]
)
Loading
Loading