-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: Migrate to github actions and release-please.
- Loading branch information
1 parent
b4600d1
commit bbe2c45
Showing
14 changed files
with
346 additions
and
9 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
name: Build Documentation | ||
description: 'Build Documentation.' | ||
|
||
runs: | ||
using: composite | ||
steps: | ||
- name: Setup dotnet build tools | ||
uses: actions/setup-dotnet@v4 | ||
with: | ||
dotnet-version: 9.0 | ||
- name: Install docfx | ||
shell: bash | ||
run: dotnet tool update -g docfx | ||
|
||
# Note: in the docfx.json file, the 'Configuration' property is set to Debug so that we don't require | ||
# signing to happen just to build docs. | ||
- name: Build docs | ||
shell: bash | ||
run: | | ||
docfx metadata | ||
docfx build |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
name: CI | ||
description: Build and Test | ||
inputs: | ||
sdk: | ||
description: 'The dotnet SDK to use.' | ||
required: false | ||
default: '9' | ||
|
||
runs: | ||
using: composite | ||
steps: | ||
- uses: actions/setup-dotnet@v4 | ||
with: | ||
dotnet-version: ${{ inputs.sdk }} | ||
- run: dotnet restore src/LaunchDarkly.Logging | ||
shell: bash | ||
- run: dotnet build src/LaunchDarkly.Logging | ||
shell: bash | ||
- run: dotnet test test/LaunchDarkly.Logging.Tests | ||
shell: bash |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
name: Publish Documentation | ||
description: 'Publish the documentation to Github pages' | ||
inputs: | ||
dry_run: | ||
description: 'Is this a dry run. If so no package will be published.' | ||
required: true | ||
token: | ||
description: 'Token to use for publishing.' | ||
required: true | ||
|
||
runs: | ||
using: composite | ||
steps: | ||
- uses: launchdarkly/gh-actions/actions/[email protected] | ||
if: ${{ inputs.dry_run == 'false' }} | ||
name: 'Publish to Github pages' | ||
with: | ||
docs_path: docs | ||
github_token: ${{ inputs.token }} | ||
- name: Dry Run Publish | ||
if: ${{ inputs.dry_run == 'true' }} | ||
shell: bash | ||
run: | | ||
echo "This is a dry run and docs are not being published." |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
name: Publish Package | ||
description: 'Packs DLLs into unsigned Nuget package and publishes to Nuget.' | ||
inputs: | ||
dry_run: | ||
description: 'Is this a dry run. If so no package will be published.' | ||
required: true | ||
outputs: | ||
hashes: | ||
description: sha256sum hashes of built artifacts | ||
value: ${{ steps.hash.outputs.hashes }} | ||
|
||
runs: | ||
using: composite | ||
steps: | ||
- name: Setup dotnet build tools | ||
uses: actions/setup-dotnet@v4 | ||
with: | ||
dotnet-version: 9.0 | ||
|
||
- name: Create Nuget Package | ||
shell: bash | ||
run: | | ||
dotnet restore ./src/LaunchDarkly.Logging.CommonLogging/LaunchDarkly.Logging.CommonLogging.csproj | ||
dotnet pack --no-build --output nupkgs --configuration Release ./src/LaunchDarkly.Logging.CommonLogging/LaunchDarkly.Logging.CommonLogging.csproj | ||
- name: Publish Package | ||
if: ${{ inputs.dry_run == 'false' }} | ||
shell: bash | ||
run: | | ||
for pkg in $(find ./nupkgs -name '*.nupkg' -o -name '*.snupkg'); do | ||
echo "publishing ${pkg}" | ||
dotnet nuget push "${pkg}" --api-key ${{ env.NUGET_API_KEY }} --source https://www.nuget.org | ||
echo "published ${pkg}" | ||
done | ||
- name: Hash nuget packages | ||
id: hash | ||
if: ${{ inputs.dry_run == 'false' }} | ||
shell: bash | ||
run: | | ||
echo "hashes=$(sha256sum ./nupkgs/*.nupkg ./nupkgs/*.snupkg | base64 -w0)" >> "$GITHUB_OUTPUT" | ||
- name: Dry Run Publish | ||
if: ${{ inputs.dry_run == 'true' }} | ||
shell: bash | ||
run: | | ||
echo "This is a dry run and packages are not being published." | ||
for pkg in $(find ./nupkgs -name '*.nupkg' -o -name '*.snupkg'); do | ||
echo "detected package ${pkg}" | ||
done |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
name: Release Build | ||
description: 'Build in Release Configuration' | ||
|
||
runs: | ||
using: composite | ||
steps: | ||
- name: Setup dotnet build tools | ||
uses: actions/setup-dotnet@v4 | ||
with: | ||
dotnet-version: 9.0 | ||
|
||
- name: Restore Packages | ||
shell: bash | ||
run: dotnet restore | ||
|
||
- name: Build | ||
shell: bash | ||
run: dotnet build /p:Configuration=Release ./src/LaunchDarkly.Logging/LaunchDarkly.Logging.csproj |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
name: Build and Test | ||
|
||
on: | ||
push: | ||
branches: [main, 'feat/**'] | ||
paths-ignore: | ||
- '**.md' #Do not need to run CI for markdown changes. | ||
pull_request: | ||
branches: [main, 'feat/**'] | ||
paths-ignore: | ||
- '**.md' | ||
workflow_call: | ||
|
||
jobs: | ||
build-test-linux: | ||
strategy: | ||
matrix: | ||
os: ['ubuntu-latest', 'windows-latest'] | ||
dotnet: [{sdk: '8.x'}, {sdk: '9.x'}] | ||
runs-on: ${{ matrix.os }} | ||
name: Build ${{ matrix.os }} - ${{ matrix.dotnet.sdk }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: ./.github/actions/ci | ||
with: | ||
sdk: ${{ matrix.dotnet.sdk }} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
name: Publish Package | ||
|
||
on: | ||
workflow_dispatch: | ||
inputs: | ||
dry_run: | ||
description: 'Is this a dry run. If so no package will be published.' | ||
type: boolean | ||
required: true | ||
tag: | ||
description: 'Tag for provenance. For a dry run the value does not matter.' | ||
type: string | ||
required: true | ||
|
||
workflow_call: | ||
inputs: | ||
dry_run: | ||
description: 'Is this a dry run. If so no package will be published.' | ||
type: boolean | ||
required: true | ||
tag: | ||
description: 'Tag for provenance' | ||
type: string | ||
required: true | ||
|
||
jobs: | ||
publish: | ||
runs-on: ubuntu-latest | ||
permissions: | ||
id-token: write # Needed if using OIDC to get release secrets. | ||
contents: write # Contents and pull-requests are for release-please to make releases. | ||
pull-requests: write | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- uses: launchdarkly/gh-actions/actions/[email protected] | ||
name: Get secrets | ||
with: | ||
aws_assume_role: ${{ vars.AWS_ROLE_ARN }} | ||
ssm_parameter_pairs: '/production/common/releasing/digicert/host = DIGICERT_HOST, | ||
/production/common/releasing/digicert/api_key = DIGICERT_API_KEY, | ||
/production/common/releasing/digicert/client_cert_file_b64 = DIGICERT_CLIENT_CERT_FILE_B64, | ||
/production/common/releasing/digicert/client_cert_password = DIGICERT_CLIENT_CERT_PASSWORD, | ||
/production/common/releasing/digicert/code_signing_cert_sha1_hash = DIGICERT_CODE_SIGNING_CERT_SHA1_HASH, | ||
/production/common/releasing/nuget/api_key = NUGET_API_KEY' | ||
s3_path_pairs: 'launchdarkly-releaser/dotnet/LaunchDarkly.Logging.snk = LaunchDarkly.Logging.snk' | ||
|
||
|
||
- name: Build Release | ||
uses: ./.github/actions/release-build | ||
|
||
- name: Build Documentation | ||
uses: ./.github/actions/build-docs | ||
|
||
- name: Sign DLLs | ||
uses: launchdarkly/gh-actions/actions/[email protected] | ||
with: | ||
build_configuration_path: ./src/LaunchDarkly.Logging/bin/Release | ||
dll_name: LaunchDarkly.Logging.dll | ||
|
||
- name: Publish Nupkg | ||
id: publish | ||
uses: ./.github/actions/publish | ||
with: | ||
dry_run: ${{ inputs.dry_run }} | ||
|
||
- name: Publish Documentation | ||
uses: ./.github/actions/publish-docs | ||
with: | ||
token: ${{ secrets.GITHUB_TOKEN }} | ||
dry_run: ${{ inputs.dry_run }} | ||
|
||
provenance: | ||
permissions: | ||
actions: read | ||
id-token: write | ||
contents: write | ||
if: ${{ inputs.dry_run == 'false' }} | ||
needs: ['publish'] | ||
uses: slsa-framework/slsa-github-generator/.github/workflows/[email protected] | ||
with: | ||
base64-subjects: "${{ needs.publish.outputs.hashes }}" | ||
upload-assets: true | ||
upload-tag-name: ${{ inputs.tag }} | ||
provenance-name: ${{ format('LaunchDarkly.Logging-{0}_provenance.intoto.jsonl', inputs.tag) }} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
name: Release Please | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
|
||
jobs: | ||
release-please: | ||
outputs: | ||
releases_created: ${{ steps.release.outputs.releases_created }} | ||
tag_name: ${{ steps.release.outputs.tag_name }} | ||
runs-on: ubuntu-latest | ||
permissions: | ||
id-token: write # Needed if using OIDC to get release secrets. | ||
contents: write # Contents and pull-requests are for release-please to make releases. | ||
pull-requests: write | ||
|
||
steps: | ||
- uses: googleapis/release-please-action@v4 | ||
id: release | ||
with: | ||
token: ${{secrets.GITHUB_TOKEN}} | ||
default-branch: main | ||
|
||
ci: | ||
needs: ['release-please'] | ||
if: ${{ needs.release-please.outputs.releases_created == 'true' }} | ||
uses: ./.github/workflows/ci.yml | ||
publish: | ||
needs: ['release-please', 'ci'] | ||
if: ${{ needs.release-please.outputs.releases_created == 'true' }} | ||
uses: ./.github/workflows/publish.yml | ||
with: | ||
dry_run: false | ||
tag: ${{ needs.release-please.outputs.tag_name }} |
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
{ | ||
".": "2.0.0" | ||
} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
{ | ||
"metadata": [ | ||
{ | ||
"src": [ | ||
{ | ||
"src": "./src", | ||
"files": [ | ||
"**/*.csproj", | ||
"**/bin/**/**LaunchDarkly**.dll" | ||
] | ||
} | ||
], | ||
"dest": "./api", | ||
"properties" : { | ||
"Configuration": "Debug" | ||
} | ||
} | ||
], | ||
"build": { | ||
"content": [ | ||
{ | ||
"files": [ | ||
"**/*.{md,yml}" | ||
], | ||
"exclude": [ | ||
"docs/**" | ||
] | ||
} | ||
], | ||
"resource": [ | ||
{ | ||
"files": [ | ||
"images/**" | ||
] | ||
} | ||
], | ||
"output": "docs", | ||
"template": [ | ||
"default" | ||
], | ||
"globalMetadata": { | ||
"_appName": "LaunchDarkly Logging API for .NET", | ||
"_appTitle": "LaunchDarkly Logging API for .NET", | ||
"_enableSearch": true, | ||
"pdf": false | ||
} | ||
} | ||
} |
File renamed without changes.
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
{ | ||
"packages": { | ||
".": { | ||
"release-type": "simple", | ||
"bootstrap-sha": "b4600d1c993afecd737dad1c85da34908c7d7e50", | ||
"include-v-in-tag": false, | ||
"include-component-in-tag": false | ||
} | ||
} | ||
} |
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