-
Notifications
You must be signed in to change notification settings - Fork 1
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
Refactor project structure to improve build and release processes #78
Merged
Conversation
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
Updated nuget.config to include a packageSourceMapping section. This section maps all packages (*) to the nuget.org source, enhancing configuration for managing multiple package sources and ensuring correct package retrieval.
Restructured CI workflow by splitting the original `ci.yml` into multiple YAML files, each targeting different parts of the project. Removed the original `ci.yml` file and created new CI workflow files: - `ci-obfuscator-cli.yml`: For `src/Dax.Vpax.Obfuscator.CLI`, runs on `ubuntu-latest`. - `ci-obfuscator-common.yml`: For `src/Dax.Vpax.Obfuscator.Common`, runs on `ubuntu-latest`. - `ci-obfuscator.yml`: For `src/Dax.Vpax.Obfuscator` and `src/Dax.Tokenizer`, runs on `windows-latest`. Each workflow specifies the solution file and triggers, ensuring independent testing of specific project parts, enhancing modularity and maintainability.
- Change runner from `ubuntu-latest` to `windows-latest` in `ci-obfuscator-cli.yml` and `ci-obfuscator-common.yml` - Rename `release-*` files to `publish-*` - Update environment variables to more descriptive names in `publish-*` files - Update `dotnet publish`, `dotnet pack`, `dotnet nuget push`, and `gh release create` steps to use new variable names - Add condition to run `publish` job only if `github.ref` is `refs/heads/main` - Update `gh release create` command to use `RELEASE_TAG` directly
- Removed <RepositoryBranch>main</RepositoryBranch> line from the project file. - Added <TargetsForTfmSpecificBuildOutput> property to <PropertyGroup>. - Removed section including DLLs from project references for net472, net6.0, net8.0. - Added <None> item to include target path in the ref folder of the package. - Added new target IncludeProjectReferenceDlls to include project reference DLLs in the build output package.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request includes significant changes to the CI/CD workflows and project structure for the
Dax.Vpax.Obfuscator
solution. The changes involve renaming and restructuring workflow files, updating solution files, and modifying project configurations to improve build and release processes.CI/CD Workflow Updates:
.github/workflows/ci.yml
to.github/workflows/ci-obfuscator-cli.yml
and updated it to target themain
branch and paths related toDax.Vpax.Obfuscator.CLI
. Introduced theSOLUTION
environment variable for reuse in build steps. [1] [2].github/workflows/ci-obfuscator-common.yml
forDax.Vpax.Obfuscator.Common
and.github/workflows/ci-obfuscator.yml
for the main obfuscator and tokenizer projects, each with their respective paths and solution files. [1] [2].github/workflows/release-obfuscator-cli.yml
,.github/workflows/release-obfuscator-common.yml
, and.github/workflows/release-obfuscator.yml
to use more specific environment variables (PROJECT_NAME
,PROJECT_PATH
,PROJECT_FILE
) and streamlined the release process. [1] [2] [3] [4] [5] [6]Solution and Project File Changes:
Dax.Vpax.Obfuscator.CI.slnf
and created separate solution filter files for CLI, Common, and main projects (Dax.Vpax.Obfuscator.CLI.slnf
,Dax.Vpax.Obfuscator.Common.slnf
,Dax.Vpax.Obfuscator.slnf
). [1] [2] [3] [4]Dax.Vpax.Obfuscator.sln
toVpax-Obfuscator.sln
and updated project references and configurations accordingly. [1] [2]Configuration and Script Updates:
packageSourceMapping
tonuget.config
to ensure proper package source resolution.scripts/prepare-release.cmd
to automate the release preparation process using thenbgv
tool.Project Configuration Updates:
Dax.Tokenizer.csproj
andDax.Vpax.Obfuscator.CLI.csproj
to remove specific version numbers from package references, allowing for automatic updates. [1] [2]GlobalSuppressions.cs
inDax.Tokenizer
to handle code analysis suppressions.version.json
files to use the latest schema URL and refined release branch specifications. [1] [2]