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

appservice: Use vscode.workspace.findFiles rather than globby to get files to zip #1616

Merged
merged 8 commits into from
Oct 31, 2023

Conversation

nturinski
Copy link
Member

@nturinski nturinski commented Oct 27, 2023

In order to support the weird blob patterns array that we have in App Service, I had to do some weird stuff because it's not trivial (at least, I couldn't easily figure it out) how to combine multiple blob patterns that have embedded patterns in them.
See here for an example of what I mean: https://github.com/microsoft/vscode-azureappservice/wiki/Configuring-Zip-Deployment

globby would return everything in terms of relative paths, but vscode.workspace.findFiles gave the absolute, which is why I'm returning everything as a relative path so no changes would need to be made in runWithZipStream.

Another weird nuance is that workspace.findFiles looks for every file in every workspace that is currently opened. Since that is not behavior that we would want for deploying, I also filter out the results from other folders as well.

I found out that I can use a RelativePattern instead of limit search results to a specific workspace so using that instead.

@nturinski nturinski requested a review from a team as a code owner October 27, 2023 23:12
@nturinski nturinski changed the title Use vscode.workspace.findFiles rather than globby to get files to zip appservice: Use vscode.workspace.findFiles rather than globby to get files to zip Oct 27, 2023
async function getFilesFromGlob(folderPath: string, site: ParsedSite): Promise<string[]> {
const zipDeployConfig: vscode.WorkspaceConfiguration = vscode.workspace.getConfiguration(ext.prefix, vscode.Uri.file(folderPath));
const globOptions = { cwd: folderPath, followSymbolicLinks: true, dot: true };
export async function getFilesFromGlob(folderPath: string, resourceName: string): Promise<string[]> {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A lot of this weird new logics is because a lot of these previous assumptions will break the appservice package when running the tests.

bwateratmsft
bwateratmsft previously approved these changes Oct 30, 2023
alexweininger
alexweininger previously approved these changes Oct 30, 2023
@nturinski nturinski merged commit 436c702 into main Oct 31, 2023
4 checks passed
@nturinski nturinski deleted the appservice/nat/gitignore branch October 31, 2023 17:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants