-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
Controls: Added metadata to the Controls project to enable publishing to NuGet #16611
Draft
Lamparter
wants to merge
38
commits into
files-community:main
Choose a base branch
from
Lamparter:nupkg
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from all commits
Commits
Show all changes
38 commits
Select commit
Hold shift + click to select a range
5dcdd5b
Add package metadata
Lamparter ef8576b
Add package README
Lamparter c5b9cb7
New package description
Lamparter 69c567f
Change package description in README
Lamparter f7e676a
Change authors to just "files-community"
Lamparter de27f30
Initial addition of CI
Lamparter 71de3ae
Add PR run for CI to test
Lamparter 6ed1008
Update cd-controls.yml
Lamparter a89dc6b
Update cd-controls.yml
Lamparter b40745c
Fix version script
Lamparter 00b55a2
Fix appxpackage reference
Lamparter f7fc57b
Fix reference to UI controls project
Lamparter 36e822a
Update cd-controls.yml
Lamparter fdb18d3
Update cd-controls.yml
Lamparter 86dd294
Move comma
Lamparter 5a1786a
Move comma in `README.md`
Lamparter 44cfa57
Add more tags
Lamparter 749eea7
Replace secret direct link with placeholder
Lamparter bd80e63
Update license header
Lamparter 7e63033
Rename potential deployment space to "NuGet"
Lamparter c399efb
Remove accidental space
Lamparter f948c70
Replace tab formatting with spaces
Lamparter c53aaec
Include README via `Include=` rather than `Update=`
Lamparter 2d9f49a
Add versioning file
Lamparter cc87f46
Remove 'extract version' step
Lamparter b7f2f13
Reference version in project
Lamparter 78a3fa3
New workflow
Lamparter 4dd6f35
Add PR creation step
Lamparter 0dff0a9
Remove ``
Lamparter 61a92d0
Remove `--body`
Lamparter e377cd4
`""` > `''`
Lamparter 1f7fb19
`GH_TOKEN`
Lamparter b9d656a
Example
Lamparter 7b13e70
Sample bot
Lamparter 9c7a67a
Fix custom actor
Lamparter b790413
Improve message
Lamparter c6e6eea
Change PR prefix
Lamparter 75f49a7
Remove CLI newline switch
Lamparter File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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,112 @@ | ||
# Copyright (c) Files Community | ||
# Licensed under the MIT License. | ||
|
||
# Abstract: | ||
# Bumps the version of the Files UI Controls library | ||
# | ||
# Workflow: | ||
# 1. Find the version of the Files UI Controls library | ||
# 2. Bump the version of the Files UI Controls library | ||
# 3. Commit the changes to a new branch in the repo | ||
# 4. Push the changes to the repo | ||
# 5. Create a pull request and request a review | ||
|
||
name: Bump Files UI Controls | ||
|
||
on: | ||
workflow_dispatch: | ||
pull_request: | ||
branches: [ "main" ] | ||
|
||
jobs: | ||
bump: | ||
runs-on: windows-latest | ||
strategy: | ||
fail-fast: false | ||
env: | ||
WORKING_DIR: '${{ github.workspace }}' # D:\a\Files\Files\ | ||
PROPS_PATH: '${{ github.workspace }}\src\Files.App.Controls\CurrentVersion.props' | ||
|
||
steps: | ||
- name: Checkout the repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Generate GitHub Apps token | ||
if: github.repository_owner == 'Lamparter' | ||
id: generate | ||
uses: actions/create-github-app-token@v1 | ||
with: | ||
app-id: ${{ secrets.BOT_APP_ID }} | ||
private-key: ${{ secrets.BOT_PRIVATE_KEY }} | ||
|
||
- name: Bump Version | ||
id: bump_version | ||
shell: pwsh | ||
run: | | ||
$xml = [xml](Get-Content $env:PROPS_PATH) | ||
$version = [int]$xml.Project.PropertyGroup.MicroVersion | ||
$newVersion = $version + 1 | ||
$xml.Project.PropertyGroup.MicroVersion = $newVersion | ||
$xml.Save($env:PROPS_PATH) | ||
Write-Output "Bumped version to $newVersion" | ||
echo "::set-output name=new_version::$newVersion" | ||
|
||
- name: Get version for PR message | ||
id: get_version | ||
shell: pwsh | ||
run: | | ||
$xml = [xml](Get-Content $env:PROPS_PATH) | ||
$microVersion = [int]$xml.Project.PropertyGroup.MicroVersion | ||
$minorVersion = [int]$xml.Project.PropertyGroup.MinorVersion | ||
$majorVersion = [int]$xml.Project.PropertyGroup.MajorVersion | ||
$fullVersion = "$majorVersion.$minorVersion.$microVersion" | ||
Write-Output "Found publish version, $fullVersion" | ||
echo "::set-output name=full_version::$fullVersion" | ||
|
||
- name: Add and commit changes | ||
uses: EndBug/add-and-commit@v9 | ||
with: | ||
# The arguments for the `git add` command | ||
# Default: '.' | ||
add: '${{ env.PROPS_PATH }}' | ||
|
||
# The name of the user that will be displayed as the author of the commit. | ||
# Default: depends on the default_author input | ||
author_name: files-community-bot[bot] | ||
|
||
# The email of the user that will be displayed as the author of the commit. | ||
# Default: depends on the default_author input | ||
author_email: 152337890+files-community-bot[bot]@users.noreply.github.com | ||
|
||
# Determines the way the action fills missing author name and email. Three options are available: | ||
# - github_actor -> UserName <[email protected]> | ||
# - user_info -> Your Display Name <[email protected]> | ||
# - github_actions -> github-actions <email associated with the github logo> | ||
# Default: github_actor | ||
default_author: github_actor | ||
|
||
# The message for the commit. | ||
# Default: 'Commit from GitHub Actions (name of the workflow)' | ||
message: 'Bump Files UI controls version to ${{ steps.get_version.outputs.full_version }}' | ||
|
||
# If this input is set, the action will push the commit to a new branch with this name. | ||
# Default: '' | ||
new_branch: 'files/ui-controls/${{ steps.get_version.outputs.full_version }}' | ||
|
||
# The way the action should handle pathspec errors from the add and remove commands. Three options are available: | ||
# - ignore -> errors will be logged but the step won't fail | ||
# - exitImmediately -> the action will stop right away, and the step will fail | ||
# - exitAtEnd -> the action will go on, every pathspec error will be logged at the end, the step will fail. | ||
# Default: ignore | ||
pathspec_error_handling: ignore | ||
|
||
# Whether to push the commit and, if any, its tags to the repo. It can also be used to set the git push arguments (see the paragraph below for more info) | ||
# Default: true | ||
push: true | ||
|
||
- name: Create Pull Request | ||
shell: pwsh | ||
env: | ||
GH_TOKEN: ${{ steps.generate.outputs.token }} | ||
run: | | ||
gh pr create --title "Controls: Bumped Controls version to ${{ steps.get_version.outputs.full_version }}" --body "This is an automated PR that bumps the version of the Files UI controls project." --base main --head files/ui-controls/${{ steps.get_version.outputs.full_version }} |
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,72 @@ | ||
# Copyright (c) Files Community | ||
# Licensed under the MIT License. | ||
|
||
# Abstract: | ||
# Deploys the Files UI Controls library to NuGet | ||
# | ||
# Workflow: | ||
# 1. Restore and build Files UI Controls | ||
# 2. Generate a NuGet package and symbols | ||
# 3. Publish the artifacts to NuGet | ||
|
||
name: Files CD (UI Controls) | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
workflow_dispatch: | ||
pull_request: | ||
branches: [ "main" ] | ||
|
||
jobs: | ||
build: | ||
runs-on: windows-latest | ||
#environment: NuGet | ||
strategy: | ||
fail-fast: false | ||
env: | ||
SOLUTION_NAME: 'Files.sln' | ||
CONFIGURATION: 'Release' # It's not necessary to use a matrix as the package method will always be Release | ||
PLATFORM: 'x64' | ||
WORKING_DIR: '${{ github.workspace }}' # D:\a\Files\Files\ | ||
PROJECT_DIR: '${{ github.workspace }}\src\Files.App.Controls' | ||
PACKAGE_PROJECT_PATH: '${{ github.workspace }}\src\Files.App.Controls\Files.App.Controls.csproj' | ||
|
||
steps: | ||
- name: Checkout the repository | ||
uses: actions/checkout@v4 | ||
- name: Setup MSBuild | ||
uses: microsoft/setup-msbuild@v2 | ||
- name: Setup NuGet | ||
uses: NuGet/setup-nuget@v2 | ||
- name: Setup .NET 8 | ||
uses: actions/setup-dotnet@v4 | ||
with: | ||
global-json-file: global.json | ||
|
||
- name: Use Windows SDK Preview | ||
shell: cmd | ||
run: | | ||
for /f %%a in ('dir /b /a:d %localappdata%\Microsoft\VisualStudio\17*') do echo UsePreviews=True>%localappdata%\Microsoft\VisualStudio\%%a\sdk.txt | ||
|
||
- name: Restore NuGet | ||
shell: pwsh | ||
run: | | ||
msbuild $env:PACKAGE_PROJECT_PATH ` | ||
-t:Restore ` | ||
-p:Platform=$env:PLATFORM ` | ||
-p:Configuration=$env:CONFIGURATION | ||
|
||
- name: Build Files UI Controls | ||
run: | | ||
msbuild "$env:PACKAGE_PROJECT_PATH" ` | ||
-t:Build ` | ||
-p:Platform=$env:PLATFORM ` | ||
-p:Configuration=$env:CONFIGURATION | ||
|
||
- name: Package Files UI Controls | ||
run: dotnet pack ${{ env.PACKAGE_PROJECT_PATH }} --configuration ${{ env.CONFIGURATION }} --no-build -o ./output | ||
|
||
- name: Publish package to NuGet | ||
run: dotnet nuget push ./output/*.nupkg --api-key (SECRET GOES HERE) --source https://api.nuget.org/v3/index.json |
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,15 @@ | ||
<!-- Copyright (c) Files Community. Licensed under the MIT License. --> | ||
<!-- READ ME BEFORE MODIFYING THIS FILE: | ||
This file is used to track the version of the Files UI Controls package online. | ||
The version is automatically bumped by the 'Bump Files UI Controls' action online. | ||
You can bump the version here in a PR and when it is merged the controls project | ||
will be automatically published to NuGet online. --> | ||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||
<PropertyGroup> | ||
<MajorVersion>1</MajorVersion> | ||
<MinorVersion>0</MinorVersion> | ||
<!-- This version is bumped automatically by CI. --> | ||
<MicroVersion>0</MicroVersion> | ||
<Version>$(MajorVersion).$(MinorVersion).$(MicroVersion)</Version> | ||
</PropertyGroup> | ||
</Project> |
Lamparter marked this conversation as resolved.
Show resolved
Hide resolved
|
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
yaira2 marked this conversation as resolved.
Show resolved
Hide resolved
|
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,12 @@ | ||
> These controls are provided "as is", with no guaranteed support, but we hope they prove useful to the developer community. | ||
# 📁 Files UI Controls | ||
|
||
##### Elevate your WinUI applications with our collection of custom-built controls, crafted specifically to address our needs in Files. | ||
|
||
--- | ||
|
||
This package contains various controls for the [Files app](https://files.community), including `ThemedIcon`, `Toolbar` and various storage controls. | ||
It is available [on NuGet](https://www.nuget.org/packages/Files.App.Controls), however is unlisted and can only be installed by manually typing the package name and version number into the MSBuild project file. | ||
|
||
Please do not open issues on the Files repository about this package, as it is not officially supported by the Files team and is kept online for reference. | ||
If you have questions about the design or implementation of these controls, please ask [on Discord](https://discord.gg/files). |
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you merge the workflows into a single action?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, because they have different types of activation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cd-controls.yml
: Upload to NuGet (automatic)bump-controls.yml
: Bump the version + open PR