diff --git a/.dockerignore b/.dockerignore
index 530d34bcf1..3347f8c4c5 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -4,7 +4,6 @@
**/.git/
artifacts/
tests/
-vsts/
**/github.com/
**/pkg/
**/bin/
diff --git a/.github/workflows/monitor-versions.yaml b/.github/workflows/monitor-versions.yaml
deleted file mode 100644
index 11b2e3558a..0000000000
--- a/.github/workflows/monitor-versions.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
-# This is a basic workflow that is manually triggered
-
-name: Manual workflow
-
-# Controls when the action will run. Workflow runs when manually triggered using the UI
-# or API.
-on:
- workflow_dispatch:
- # Inputs the workflow accepts.
- inputs:
- name:
- # Friendly description to be shown in the UI instead of 'name'
- description: 'Person to greet'
- # Default value if no value is explicitly provided
- default: 'World'
- # Input has to be provided for the workflow to run
- required: true
- # The data type of the input
- type: string
-
-# A workflow run is made up of one or more jobs that can run sequentially or in parallel
-jobs:
- # This workflow contains a single job called "greet"
- greet:
- # The type of runner that the job will run on
- runs-on: ubuntu-latest
-
- # Steps represent a sequence of tasks that will be executed as part of the job
- steps:
- # Runs a single command using the runners shell
- - name: Send greeting
- run: echo "Hello ${{ inputs.name }}"
diff --git a/CHANGELOG.md b/CHANGELOG.md
deleted file mode 100644
index afa498f48c..0000000000
--- a/CHANGELOG.md
+++ /dev/null
@@ -1,9 +0,0 @@
-
-[//]: # (This file contains all the changes that should be displayed in our releases.)
-[//]: # (In order to use it, add new lines below this comment session, above existing ones.)
-[//]: # (The build and release systems will only add the new lines to the release, so NEVER edit an existing line,)
-[//]: # (since it would make it appear again in the release.)
-[//]: # (Add meaningful description of your changes, and if relevant how to make use of a new feature you're adding,)
-[//]: # (as well as pointers to relevant documentation in our docs folder.)
-
-- Officially releasing on GitHub.
\ No newline at end of file
diff --git a/CodeMaid.config b/CodeMaid.config
deleted file mode 100644
index 7e5627380b..0000000000
--- a/CodeMaid.config
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- False
-
-
- True
-
-
- // --------------------------------------------------------------------------------------------
-// Copyright (c) Microsoft Corporation. All rights reserved.
-// Licensed under the MIT license.
-// --------------------------------------------------------------------------------------------
-
-
- \.Designer\.cs$||\.Designer\.vb$||\.resx$||\.min\.css$||\.min\.js$||\\ScaffoldingTemplates\\
-
-
- True
-
-
- True
-
-
-
-
\ No newline at end of file
diff --git a/Detector.sln b/Detector.sln
deleted file mode 100644
index 94ce35d641..0000000000
--- a/Detector.sln
+++ /dev/null
@@ -1,82 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.30104.148
-MinimumVisualStudioVersion = 15.0.26124.0
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{053E71DE-4A2B-4F3C-80D1-463BED307E67}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{62545858-848B-470F-B360-2D2AEEEEE89E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Detector", "src\Detector\Detector.csproj", "{C2C0E3A9-D965-47AC-9074-7001D0D2F3BF}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Detector.Tests", "tests\Detector.Tests\Detector.Tests.csproj", "{E3EF4BD1-BF7D-4587-AB4D-543BAA5C5F47}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CommonFiles", "CommonFiles", "{F5022807-80E0-433E-830E-48C86EBC343D}"
- ProjectSection(SolutionItems) = preProject
- src\CommonFiles\AssemblyVersion.proj = src\CommonFiles\AssemblyVersion.proj
- src\CommonFiles\General.targets = src\CommonFiles\General.targets
- src\CommonFiles\StyleCop.ruleset = src\CommonFiles\StyleCop.ruleset
- EndProjectSection
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common", "src\Oryx.Common\Common.csproj", "{E75BF716-72A0-4013-9673-751B9E5FAFD3}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Debug|x64 = Debug|x64
- Debug|x86 = Debug|x86
- Release|Any CPU = Release|Any CPU
- Release|x64 = Release|x64
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C2C0E3A9-D965-47AC-9074-7001D0D2F3BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C2C0E3A9-D965-47AC-9074-7001D0D2F3BF}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C2C0E3A9-D965-47AC-9074-7001D0D2F3BF}.Debug|x64.ActiveCfg = Debug|Any CPU
- {C2C0E3A9-D965-47AC-9074-7001D0D2F3BF}.Debug|x64.Build.0 = Debug|Any CPU
- {C2C0E3A9-D965-47AC-9074-7001D0D2F3BF}.Debug|x86.ActiveCfg = Debug|Any CPU
- {C2C0E3A9-D965-47AC-9074-7001D0D2F3BF}.Debug|x86.Build.0 = Debug|Any CPU
- {C2C0E3A9-D965-47AC-9074-7001D0D2F3BF}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C2C0E3A9-D965-47AC-9074-7001D0D2F3BF}.Release|Any CPU.Build.0 = Release|Any CPU
- {C2C0E3A9-D965-47AC-9074-7001D0D2F3BF}.Release|x64.ActiveCfg = Release|Any CPU
- {C2C0E3A9-D965-47AC-9074-7001D0D2F3BF}.Release|x64.Build.0 = Release|Any CPU
- {C2C0E3A9-D965-47AC-9074-7001D0D2F3BF}.Release|x86.ActiveCfg = Release|Any CPU
- {C2C0E3A9-D965-47AC-9074-7001D0D2F3BF}.Release|x86.Build.0 = Release|Any CPU
- {E3EF4BD1-BF7D-4587-AB4D-543BAA5C5F47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E3EF4BD1-BF7D-4587-AB4D-543BAA5C5F47}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E3EF4BD1-BF7D-4587-AB4D-543BAA5C5F47}.Debug|x64.ActiveCfg = Debug|Any CPU
- {E3EF4BD1-BF7D-4587-AB4D-543BAA5C5F47}.Debug|x64.Build.0 = Debug|Any CPU
- {E3EF4BD1-BF7D-4587-AB4D-543BAA5C5F47}.Debug|x86.ActiveCfg = Debug|Any CPU
- {E3EF4BD1-BF7D-4587-AB4D-543BAA5C5F47}.Debug|x86.Build.0 = Debug|Any CPU
- {E3EF4BD1-BF7D-4587-AB4D-543BAA5C5F47}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E3EF4BD1-BF7D-4587-AB4D-543BAA5C5F47}.Release|Any CPU.Build.0 = Release|Any CPU
- {E3EF4BD1-BF7D-4587-AB4D-543BAA5C5F47}.Release|x64.ActiveCfg = Release|Any CPU
- {E3EF4BD1-BF7D-4587-AB4D-543BAA5C5F47}.Release|x64.Build.0 = Release|Any CPU
- {E3EF4BD1-BF7D-4587-AB4D-543BAA5C5F47}.Release|x86.ActiveCfg = Release|Any CPU
- {E3EF4BD1-BF7D-4587-AB4D-543BAA5C5F47}.Release|x86.Build.0 = Release|Any CPU
- {E75BF716-72A0-4013-9673-751B9E5FAFD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E75BF716-72A0-4013-9673-751B9E5FAFD3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E75BF716-72A0-4013-9673-751B9E5FAFD3}.Debug|x64.ActiveCfg = Debug|Any CPU
- {E75BF716-72A0-4013-9673-751B9E5FAFD3}.Debug|x64.Build.0 = Debug|Any CPU
- {E75BF716-72A0-4013-9673-751B9E5FAFD3}.Debug|x86.ActiveCfg = Debug|Any CPU
- {E75BF716-72A0-4013-9673-751B9E5FAFD3}.Debug|x86.Build.0 = Debug|Any CPU
- {E75BF716-72A0-4013-9673-751B9E5FAFD3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E75BF716-72A0-4013-9673-751B9E5FAFD3}.Release|Any CPU.Build.0 = Release|Any CPU
- {E75BF716-72A0-4013-9673-751B9E5FAFD3}.Release|x64.ActiveCfg = Release|Any CPU
- {E75BF716-72A0-4013-9673-751B9E5FAFD3}.Release|x64.Build.0 = Release|Any CPU
- {E75BF716-72A0-4013-9673-751B9E5FAFD3}.Release|x86.ActiveCfg = Release|Any CPU
- {E75BF716-72A0-4013-9673-751B9E5FAFD3}.Release|x86.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {C2C0E3A9-D965-47AC-9074-7001D0D2F3BF} = {053E71DE-4A2B-4F3C-80D1-463BED307E67}
- {E3EF4BD1-BF7D-4587-AB4D-543BAA5C5F47} = {62545858-848B-470F-B360-2D2AEEEEE89E}
- {F5022807-80E0-433E-830E-48C86EBC343D} = {053E71DE-4A2B-4F3C-80D1-463BED307E67}
- {E75BF716-72A0-4013-9673-751B9E5FAFD3} = {053E71DE-4A2B-4F3C-80D1-463BED307E67}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {F442C500-179F-4CA9-93BB-5EC94596CD45}
- EndGlobalSection
-EndGlobal
diff --git a/Oryx.sln b/Oryx.sln
index 3b26065982..6fd0eb36cb 100644
--- a/Oryx.sln
+++ b/Oryx.sln
@@ -10,7 +10,6 @@ EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{33D6DAAC-19A1-43DC-A586-A5F18EE98718}"
ProjectSection(SolutionItems) = preProject
images\build\benv.sh = images\build\benv.sh
- images\build\Dockerfile = images\build\Dockerfile
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C0150C21-3EC8-4973-B57C-26BC27A4ED57}"
@@ -23,17 +22,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Oryx.BuildImage.Tests", "te
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{0FEBE7DD-10C0-4650-89E4-69DDB0930C56}"
ProjectSection(SolutionItems) = preProject
- build\buildBuildImageBases.sh = build\buildBuildImageBases.sh
- build\buildBuildImages.sh = build\buildBuildImages.sh
- build\buildBuildpacksImages.sh = build\buildBuildpacksImages.sh
- build\buildRunTimeImageBases.sh = build\buildRunTimeImageBases.sh
- build\buildRunTimeImages.sh = build\buildRunTimeImages.sh
- build\buildSln.sh = build\buildSln.sh
build\constants.yaml = build\constants.yaml
- build\testBuildImages.sh = build\testBuildImages.sh
- build\testBuildScriptGenerator.sh = build\testBuildScriptGenerator.sh
- build\testIntegration.sh = build\testIntegration.sh
- build\testRunTimeImages.sh = build\testRunTimeImages.sh
+ build\generateConstants.sh = build\generateConstants.sh
build\testStartupScriptGenerators.sh = build\testStartupScriptGenerators.sh
build\__variables.sh = build\__variables.sh
EndProjectSection
@@ -43,8 +33,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SolutionItems", "SolutionIt
.dockerignore = .dockerignore
.gitattributes = .gitattributes
.gitignore = .gitignore
- build.sh = build.sh
- CodeMaid.config = CodeMaid.config
README.md = README.md
EndProjectSection
EndProject
@@ -52,26 +40,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Oryx.Tests.Common", "tests\
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Oryx.RuntimeImage.Tests", "tests\Oryx.RuntimeImage.Tests\Oryx.RuntimeImage.Tests.csproj", "{2A6CBF09-2040-4FE2-BD60-0BB43B43E2E9}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vsts", "vsts", "{D7D9E386-B13E-45FA-8AE6-8FC20CB84974}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "pipelines", "pipelines", "{BDB3B191-6F72-4EC8-BD74-D2DEEFDAC99D}"
- ProjectSection(SolutionItems) = preProject
- vsts\pipelines\buildImageBases.yml = vsts\pipelines\buildImageBases.yml
- vsts\pipelines\ci.yml = vsts\pipelines\ci.yml
- vsts\pipelines\nightly.yml = vsts\pipelines\nightly.yml
- vsts\pipelines\validation.yml = vsts\pipelines\validation.yml
- EndProjectSection
-EndProject
+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BuildScriptGenerator.Tests", "tests\BuildScriptGenerator.Tests\BuildScriptGenerator.Tests.csproj", "{8D7BC3E8-37BE-4E59-8694-1364E314285A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BuildScriptGeneratorCli.Tests", "tests\BuildScriptGeneratorCli.Tests\BuildScriptGeneratorCli.Tests.csproj", "{16C061C3-3F6E-43C2-A9CC-3E905322E443}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "scripts", "scripts", "{4885C6A7-0C9A-406C-89E9-D06A3A03C52D}"
- ProjectSection(SolutionItems) = preProject
- vsts\scripts\cleanDocker.sh = vsts\scripts\cleanDocker.sh
- vsts\scripts\removeDockerArtifacts.sh = vsts\scripts\removeDockerArtifacts.sh
- EndProjectSection
-EndProject
+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CommonFiles", "CommonFiles", "{7475604B-12AC-4765-9259-505BF742FDEF}"
ProjectSection(SolutionItems) = preProject
src\CommonFiles\AssemblyVersion.proj = src\CommonFiles\AssemblyVersion.proj
@@ -196,11 +170,10 @@ Global
{D6446227-8F24-4EDC-B170-0A732C071D03} = {7515BF2B-C485-43A0-AB2F-DC761B6AB151}
{7F1935EF-4F1D-4A08-A1FD-AF2508ADFB53} = {7515BF2B-C485-43A0-AB2F-DC761B6AB151}
{2A6CBF09-2040-4FE2-BD60-0BB43B43E2E9} = {7515BF2B-C485-43A0-AB2F-DC761B6AB151}
- {D7D9E386-B13E-45FA-8AE6-8FC20CB84974} = {45542CEB-0A3B-42DF-95AE-D13A673D3183}
- {BDB3B191-6F72-4EC8-BD74-D2DEEFDAC99D} = {D7D9E386-B13E-45FA-8AE6-8FC20CB84974}
+
{8D7BC3E8-37BE-4E59-8694-1364E314285A} = {7515BF2B-C485-43A0-AB2F-DC761B6AB151}
{16C061C3-3F6E-43C2-A9CC-3E905322E443} = {7515BF2B-C485-43A0-AB2F-DC761B6AB151}
- {4885C6A7-0C9A-406C-89E9-D06A3A03C52D} = {D7D9E386-B13E-45FA-8AE6-8FC20CB84974}
+
{7475604B-12AC-4765-9259-505BF742FDEF} = {C0150C21-3EC8-4973-B57C-26BC27A4ED57}
{A563B2F8-26B1-4114-AE1C-C9E078BC7754} = {7515BF2B-C485-43A0-AB2F-DC761B6AB151}
{A7605A5F-9C7E-4BAF-BF13-949467DA9351} = {2AA826A1-5647-46B2-9885-20E89050653F}
diff --git a/README.md b/README.md
index 7488fed6bb..a768e16d3d 100644
--- a/README.md
+++ b/README.md
@@ -117,8 +117,7 @@ docker run --detach --rm \
## Build Server Invocation
1. Build the Oryx solution
1. 
-1. Create image with oryx and platform binaries
- 1. `time build/buildBuildImages.sh -t ltsversion`
+1. Create image with oryx and platform binaries (see [images/build/Dockerfiles](./images/build/Dockerfiles/))
1. Run docker to port map, volume mount a directory, specify the image with `oryx build`, and invoke BuildServer
1. ```bash
docker run -it -p 8086:80 \
diff --git a/actions/oryx-dockerfile/Dockerfile b/actions/oryx-dockerfile/Dockerfile
deleted file mode 100644
index edcfca66a0..0000000000
--- a/actions/oryx-dockerfile/Dockerfile
+++ /dev/null
@@ -1,5 +0,0 @@
-FROM mcr.microsoft.com/oryx/cli:cli-image-3-patch1
-
-COPY entrypoint.sh /entrypoint.sh
-
-ENTRYPOINT ["sh", "/entrypoint.sh"]
\ No newline at end of file
diff --git a/actions/oryx-dockerfile/README.md b/actions/oryx-dockerfile/README.md
deleted file mode 100644
index 81ce8d7460..0000000000
--- a/actions/oryx-dockerfile/README.md
+++ /dev/null
@@ -1,207 +0,0 @@
-# GitHub Action for generating a Dockerfile to build and run Azure Web Apps
-
-With the Azure App Service Actions for GitHub, you can automate your workflow to deploy [Azure Web Apps](https://azure.microsoft.com/en-us/services/app-service/web/) using GitHub Actions.
-
-Get started today with a [free Azure account](https://azure.com/free/open-source)!
-
-This repository contains the GitHub Action for [generating a Dockerfile to build and run Azure Web Apps](./action.yml) using the [Oryx](https://github.com/microsoft/Oryx) build system. Currently, the following platforms can be built using this GitHub Action:
-
-- .NET Core
-- Node
-- PHP
-- Python
-
-The generated Dockerfile follows a template similar to the following:
-
-```
-ARG RUNTIME=:
-
-FROM mcr.microsoft.com/oryx/build: as build
-WORKDIR /app
-COPY . .
-RUN oryx build /app
-
-FROM mcr.microsoft.com/oryx/${RUNTIME}
-COPY --from=build /app /app
-RUN cd /app && oryx
-ENTRYPOINT ["/app/run.sh"]
-```
-
-Once this Dockerfile is produced, it can be built and pushed to a registry, such as [Azure Container Registry](https://azure.microsoft.com/en-us/services/container-registry/), and used at a later time to deploy the Azure Web App.
-
-If you are looking for a GitHub Action to build your Azure Web App, consider using [`azure/appservice-build`](https://github.com/Azure/appservice-build).
-
-If you are looking for a GitHub Action to deploy your Azure Web App, consider using [`azure/webapps-deploy`](https://github.com/Azure/webapps-deploy).
-
-The definition of this GitHub Action is in [`action.yml`](./action.yml).
-
-# End-to-End Sample Workflows
-
-## Dependencies on other GitHub Actions
-
-- [`actions/checkout`](https://github.com/actions/checkout)
- - Checkout your Git repository content into the GitHub Actions agent
-
-## Other GitHub Actions
-
-- [`azure/login`](https://github.com/Azure/login)
- - Authenticate the current workflow to build, test, package, release and deploy to Azure
-- [`azure/docker-login`](https://github.com/Azure/docker-login)
- - Log in to a private container registry, such as [Azure Container registry](https://azure.microsoft.com/en-us/services/container-registry/)
-- [`azure/webapps-container-deploy`](https://github.com/Azure/webapps-container-deploy)
- - Deploy a web app container to Azure
-
-### Sample workflow to push an image using Azure CLI
-
-The following is an end-to-end sample of generating the Dockerfile, building the image, and pushing it to Azure Container Registry using Azure CLI whenever a commit is pushed:
-
-```
-on: push
-
-jobs:
- build-and-push:
- runs-on: ubuntu-latest
- steps:
- - name: Cloning repository
- uses: actions/checkout@v1
-
- - name: Running Oryx to generate a Dockerfile
- uses: microsoft/oryx/actions/oryx-dockerfile@master
- id: oryx
-
- - name: Azure authentication
- uses: azure/login@v1
- with:
- creds: ${{ secrets.AZURE_CREDENTIALS }}
-
- - name: Building image and pushing to ACR
- run: |
- az acr build -t : \
- -r \
- -f {{ steps.oryx.outputs.dockerfile-path }} \
- .
-```
-
-The following variables should be replaced in your workflow `.yaml` file:
-
-- ``
- - Name of the Azure Container Registry that you are pushing to
-- ``
- - Name of the image that will be pushed to your registry
-- ``
- - Name of the image tag
-
-The following variables should be set in the GitHub repository's secrets store:
-
-- `AZURE_CREDENTIALS`
- - Used to authenticate calls to Azure; for more information on setting this secret, please see the [`azure/actions/login`](https://github.com/Azure/actions) action
-
-### Sample workflow to push an image using Docker
-
-The following is an end-to-end sample of generating the Dockerfile, building the image, and pushing it to a registry using Docker whenever a commit is pushed:
-
-```
-on: push
-
-jobs:
- build-and-push:
- runs-on: ubuntu-latest
- steps:
- - name: Cloning repository
- uses: actions/checkout@v1
-
- - name: Running Oryx to generate a Dockerfile
- uses: microsoft/oryx/actions/oryx-dockerfile@master
- id: oryx
-
- - name: Logging into registry
- uses: azure/docker-login@master
- with:
- login-server:
- username: ${{ secrets.REGISTRY_USERNAME }}
- password: ${{ secrets.REGISTRY_PASSWORD }}
-
- - name: Building image and pushing to registry using Docker
- run: |
- docker build . -t /: -f {{ steps.oryx.outputs.dockerfile-path }}
- docker push /:
-
-```
-
-The following variables should be replaced in your workflow:
-
-- ``
- - Name of the registry that you are pushing to
-- ``
- - Name of the image that will be pushed to your registry
-- ``
- - Name of the image tag
-
-The following variables should be set in the GitHub repository's secrets store:
-
-- `REGISTRY_USERNAME`
- - The username for the container registry; for more information on setting this secret, please see the [`azure/container-actions/docker-login`](https://github.com/Azure/container-actions) action
-- `REGISTRY_PASSWORD`
- - The password for the container registry; for more information on setting this secret, please see the [`azure/container-actions/docker-login`](https://github.com/Azure/container-actions) action
-
-### Sample workflow to deploy an Azure Web App Container
-
-The following is an end-to-end sample of generating the Dockerfile, building the image, pushing it to a registry using Docker, and deploying the web app to Azure whenever a commit is pushed:
-
-```
-on: push
-
-jobs:
- build:
- runs-on: ubuntu-latest
- steps:
- - name: Cloning repository
- uses: actions/checkout@v1
-
- - name: Running Oryx to generate a Dockerfile
- uses: microsoft/oryx/actions/oryx-dockerfile@master
- id: oryx
-
- - name: Logging into Azure
- uses: azure/login@master
- with:
- creds: ${{ secrets.AZURE_CREDENTIALS }}
-
- - name: Logging into registry
- uses: azure/docker-login@master
- with:
- login-server:
- username: ${{ secrets.REGISTRY_USERNAME }}
- password: ${{ secrets.REGISTRY_PASSWORD }}
-
- - name: Building image and pushing to registry using Docker
- run: |
- docker build . -t /: -f {{ steps.oryx.outputs.dockerfile-path }}
- docker push /:
-
- - name: Deploying container web app to Azure
- uses: azure/webapps-container-deploy@v1
- with:
- app-name:
- images: /:
-```
-
-The following variables should be replaced in your workflow:
-
-- ``
- - Name of the registry that you are pushing to
-- ``
- - Name of the image that will be pushed to your registry
-- ``
- - Name of the image tag
-- ``
- - Name of the web app that's being deployed
-
-The following variables should be set in the GitHub repository's secrets store:
-
-- `AZURE_CREDENTIALS`
- - Used to authenticate calls to Azure; for more information on setting this secret, please see the [`azure/actions/login`](https://github.com/Azure/actions) action
-- `REGISTRY_USERNAME`
- - The username for the container registry; for more information on setting this secret, please see the [`azure/container-actions/docker-login`](https://github.com/Azure/container-actions) action
-- `REGISTRY_PASSWORD`
- - The password for the container registry; for more information on setting this secret, please see the [`azure/container-actions/docker-login`](https://github.com/Azure/container-actions) action
\ No newline at end of file
diff --git a/actions/oryx-dockerfile/action.yml b/actions/oryx-dockerfile/action.yml
deleted file mode 100644
index e43e8c4930..0000000000
--- a/actions/oryx-dockerfile/action.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-name: 'Oryx Dockerfile Action'
-description: 'Generate a Dockerfile that builds and runs an Azure Web App on Linux.'
-branding:
- icon: 'login.svg'
- color: 'blue'
-inputs:
- source-directory:
- description: 'Relative path (within the repository) to the source directory of the project you want to create a Dockerfile for; if no value is provided for this, the root of the repository ("GITHUB_WORKSPACE" environment variable) will be used.'
- required: false
- platform:
- description: 'Programming platform of the web app; if no value is provided, Oryx will determine the platform to build with. The supported values are "dotnet", "nodejs", "php" and "python".'
- required: false
- platform-version:
- description: 'Version of the programming platform; if no value is provided, Oryx will determine the version needed to build the repository.'
- required: false
-outputs:
- dockerfile-path:
- description: 'The path of the Dockerfile that was generated by Oryx, used to build and run a web app.'
-runs:
- using: 'docker'
- image: 'Dockerfile'
- args:
- - ${{ inputs.source-directory }}
- - ${{ inputs.platform }}
- - ${{ inputs.platform-version }}
\ No newline at end of file
diff --git a/actions/oryx-dockerfile/entrypoint.sh b/actions/oryx-dockerfile/entrypoint.sh
deleted file mode 100644
index d3843015b9..0000000000
--- a/actions/oryx-dockerfile/entrypoint.sh
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/bin/sh -l
-
-sourceDirectory=$1
-platform=$2
-platformVersion=$3
-dockerfilePath="Dockerfile.oryx"
-
-
-echo
-
-if [ -n "${sourceDirectory}" ]
-then
- dockerfilePath="$sourceDirectory/$dockerfilePath"
- sourceDirectory="$PWD/$sourceDirectory"
- echo "Relative path to source directory provided -- the following directory will be built: '${sourceDirectory}'"
-else
- sourceDirectory=$PWD
- echo "No source directory provided -- the root of the repository ('GITHUB_WORKSPACE' environment variable) will be built: '${sourceDirectory}'"
-fi
-
-oryxCommand="oryx dockerfile ${sourceDirectory} --output ${dockerfilePath}"
-
-echo
-echo "Dockerfile will be written to the following file: '${dockerfilePath}'"
-echo
-
-if [ -n "${platform}" ]
-then
- echo "Platform provided: '${platform}'"
- oryxCommand="${oryxCommand} --platform ${platform}"
-else
- echo "No platform provided -- Oryx will enumerate the source directory to determine the platform."
-fi
-
-echo
-
-if [ -n "${platformVersion}" ]
-then
- echo "Platform version provided: '${platformVersion}'"
- oryxCommand="${oryxCommand} --platform-version ${platformVersion}"
-else
- echo "No platform version provided -- Oryx will determine the version."
-fi
-
-echo
-echo "Running command '${oryxCommand}'"
-echo
-eval $oryxCommand
-
-if [ -f "$dockerfilePath" ];
-then
- echo "Dockerfile generation succeeded; the following is the content of the Dockerfile:"
- cat $dockerfilePath
-else
- echo "Dockerfile generation failed."
- exit 1
-fi
-
-echo
-echo ::set-output name=dockerfile-path::$dockerfilePath
\ No newline at end of file
diff --git a/build/Readme.md b/build/Readme.md
index 35a457a413..e9cd6923f8 100644
--- a/build/Readme.md
+++ b/build/Readme.md
@@ -1,14 +1,13 @@
## Why so many scripts?
-The scripts in this folder are broken down into different layers to enable a good development as a well as CI experience.
-So if a user wants to just build and test build images, they can do so by running its respective script.
-These scripts are actually called in VSTS pipelines too (Check the `vsts/pipelines/templates/_buildTemplate.yml` file).
+The scripts in this folder are broken down into different layers to enable a good development as well as CI experience.
+If a user wants to just build and test build images, they can do so by running the respective script.
+These scripts are called from GitHub Actions workflows (see `.github/workflows/`) and the OneBranch pipelines in ADO.
## Artifact files
Building build and runtime images can conceptually be viewed as building a .NET repo's 'src' folder where after successfully
-building the output is written to a artifacts folder. In a similar way, after building build/runtime images, we write out
+building the output is written to an artifacts folder. In a similar way, after building build/runtime images, we write out
the names of the images that were built to files '/artifacts/images/build-images.txt' and '/artifacts/images/runtime-images.txt'.
-This is the same experience if the images were built locally on a dev machine or a CI agent. The idea is that in case of CI agent,
-when a VSTS task needs to push images to a docker registry, it can just consume these artifact files to figure out which images to push.
+This is the same experience if the images were built locally on a dev machine or a CI agent.
## Untagging images
Taggig a docker image is actually tagging or pinning docker layers. Since a CI agent can go through several builds a day we would be
diff --git a/build/__dotNetCoreRunTimeVersions.sh b/build/__dotNetCoreRunTimeVersions.sh
deleted file mode 100644
index fdd09f8127..0000000000
--- a/build/__dotNetCoreRunTimeVersions.sh
+++ /dev/null
@@ -1,44 +0,0 @@
-# This file was auto-generated from 'constants.yaml'. Changes may be overridden.
-
-DOT_NET_CORE_RUNTIME_BASE_TAG='20240430.1'
-NET_CORE_APP_10='1.0.16'
-NET_CORE_APP_11='1.1.13'
-NET_CORE_APP_20='2.0.9'
-NET_CORE_APP_21='2.1.30'
-NET_CORE_APP_21_SHA='b7433c9f03f7363759a044b50d8cca9486cfe402fdf62163696ba6a172e9839a140553e3d3298bb75c89dda2f6f4bec294847411f3fc2796fa4881a2b01a7178'
-ASPNET_CORE_APP_21='2.1.30'
-ASPNET_CORE_APP_21_SHA='60f65e2e37bb9af54f809ef0f4fe814c4c0dd9c969dea1aa81e94c0dc2433c5011cde39118196310ffac4e248b24924a2c154534194e70a8cdae40dfc81fe3d1'
-NET_CORE_APP_22='2.2.8'
-NET_CORE_APP_22_SHA='954072376698be69acb7e277df2c243f931e10529def21dcbf9ce277609b30d462126bf8b8b3cab36476bec3d63a927b8e44e59e4d4cade23eef45956fba1ffd'
-NET_CORE_APP_30='3.0.3'
-NET_CORE_APP_30_SHA='3d1f0ba2f293f43e087a8940a0f4736561f43b9f28bc5beda79a61f887e258543aea4dc71e88414a7c6e271dcda984a989afb62fc659a72223707a179cdde9c5'
-ASPNET_CORE_APP_30='3.0.3'
-ASPNET_CORE_APP_30_SHA='d88366ac20204c5acb4b80bc40396d608d6c067b25baeef54204e77dde48fb515bd463743745a0982ba8c9182fc751306a4e796f91060b2d013ffbea7d9a2dc8'
-NET_CORE_APP_31='3.1.32'
-NET_CORE_APP_31_SHA='a1de9bbc3d2e3a4f5f52b7742c678b182a58a724d36232997511e390027044d60144a7e010a29d6ee016ec91f2911daef28ac5712a827fff8bdde73314b7e002'
-ASPNET_CORE_APP_31='3.1.32'
-ASPNET_CORE_APP_31_SHA='0aa2aceda3d0b9f6bf02456d4e4b917c221c4f18eff30c8b6418e7514681baa9bb9ccc6b8c78949a92664922db4fb2b2a0dac9da11f775aaef618d9c491bb319'
-NET_CORE_APP_50='5.0.17'
-NET_CORE_APP_50_SHA='a9c4784930a977abbc42aff1337dda06ec588c1ec4769a59f9fcab4d5df4fc9efe65f8e61e5433db078f67a94ea2dfe870c32c482a50d4c16283ffacacff4261'
-ASPNET_CORE_APP_50='5.0.17'
-ASPNET_CORE_APP_50_SHA='d8e87804e9e86273c6512785bd5a6f0e834ff3f4bbebc11c4fcdf16ab4fdfabd0d981a756955267c1aa9bbeec596de3728ce9b2e6415d2d80daef0d999a5df6d'
-NET_CORE_APP_60='6.0.32'
-NET_CORE_APP_60_SHA='9babfe66f4a4261dd454f3220899af0a19532ab93575b581cec838f1c5f130d98b6fb1aaae5ee8e5b2e70deb55b619a0d55347f014ace72cb84b78d61faf0a59'
-ASPNET_CORE_APP_60='6.0.32'
-ASPNET_CORE_APP_60_SHA='1849c0073f12477b94357a1afb1cbd4ad67764263528b66037c19d554df41e681e4b41c0804b106319fe661d0bc3bae9e29e4913c0d0df33861cf6f32ebaac96'
-NET_CORE_APP_70='7.0.20'
-NET_CORE_APP_70_SHA='87855297338555a7b577d7e314e5dbf2c2350f8c867a489cd1e535634bad5c123a1871464d37fc9421837ff5d426c2eadecbe0f60bbf3fd32bc2461f47790a40'
-ASPNET_CORE_APP_70='7.0.20'
-ASPNET_CORE_APP_70_SHA='62ed9743972043a72e48d5aa2f7fdf3483cf684a32b051315004d1c778e9712bf66e5e7a97a5a53993fa8e92daf5bacaf2cdb3eae44bb9a9e25532b9a80f4f70'
-NET_CORE_APP_80='8.0.7'
-NET_CORE_APP_80_SHA='88e9ac34ad5ac76eec5499f2eb8d1aa35076518c842854ec1053953d34969c7bf1c5b2dbce245dbace3a18c3b8a4c79d2ef2d2ff105ce9d17cbbdbe813d8b16f'
-ASPNET_CORE_APP_80='8.0.7'
-ASPNET_CORE_APP_80_SHA='c7479dc008fce77c2bfcaa1ac1c9fe6f64ef7e59609fff6707da14975aade73e3cb22b97f2b3922a2642fa8d843a3caf714ab3a2b357abeda486b9d0f8bebb18'
-NET_CORE_APP_90='9.0.0'
-NET_CORE_APP_90_SHA='5176bd68637646cd36fce7a88f83effe1065fb075e6d4a46b8be3c33d5a8394740577f0ed4f8b4fb13fa69fe83b229eb55ab7f45caac90849bf0392a670ed5af'
-ASPNET_CORE_APP_90='9.0.0'
-ASPNET_CORE_APP_90_SHA='1a81023f119dd5e5b0f9d87b0e3c42df89824b9fcb73192a4670cc2c67358cd018a7c9c965245c7883de468bda88c81d64a21c60f9bc68a6559d76f32d34ce96'
-NET_CORE_APP_100='10.0.0-preview.5.25277.114'
-NET_CORE_APP_100_SHA='EC21EFF51B0F8B9E7C9C00B6CC9E9CDD810997C9D2C1987042C48CDD6BF6E40C2552ACBFCDA405C56B3CE7DE52B3A20E6B91F068C6E4BD101B896C302A32B5F2'
-ASPNET_CORE_APP_100='10.0.0-preview.5.25277.114'
-ASPNET_CORE_APP_100_SHA='6E69A85F7E18B8EEBB5F99A7E8099DB2FA5DA34BCF078BECBB123C0863D4BE7B4252C7CFC6B21B9585F4F800C058A12CAE55EF2A63B9BEA886CA3D1D8A0EC113'
diff --git a/build/__dotNetCoreSdkVersions.sh b/build/__dotNetCoreSdkVersions.sh
deleted file mode 100644
index 6320802a12..0000000000
--- a/build/__dotNetCoreSdkVersions.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-# This file was auto-generated from 'constants.yaml'. Changes may be overridden.
-
-DOT_NET_CORE_11_SDK_VERSION='1.1.14'
-DOT_NET_CORE_21_SDK_VERSION='2.1.818'
-DOT_NET_CORE_22_SDK_VERSION='2.2.207'
-DOT_NET_CORE_30_SDK_VERSION='3.0.103'
-DOT_NET_CORE_31_SDK_VERSION='3.1.426'
-DOT_NET_CORE_50_SDK_VERSION='5.0.302'
-DOT_NET_50_SDK_VERSION='5.0.408'
-DOT_NET_60_SDK_VERSION='6.0.424'
-DOT_NET_60_RTM_SDK_VERSION='6-0-100-rtm-21527-11'
-DOT_NET_70_SDK_VERSION='7.0.410'
-DOT_NET_80_SDK_VERSION='8.0.303'
-DOT_NET_90_SDK_VERSION='9.0.100'
-DOT_NET_100_SDK_VERSION='10.0.0-preview.5.25277.114'
\ No newline at end of file
diff --git a/build/__functions.sh b/build/__functions.sh
deleted file mode 100755
index f9cb9d6a54..0000000000
--- a/build/__functions.sh
+++ /dev/null
@@ -1,120 +0,0 @@
-#!/bin/bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-
-# Folder structure is used to decide the tag name
-# For example, if a Dockerfile is located at "images/runtime/node/10.1.0/Dockerfile",
-# then the tag name would be 'node:10.1.0' (i.e. the path between 'runtime' and 'Dockerfile' segments)
-# Additionally, if a os type such as debian-bullseye is passed in, we append the os type to the tag as well like
-# node:10.1.0-debian-bullseye
-function getTagName()
-{
- if [ ! -d $1 ]
- then
- echo "Directory '$1' does not exist."
- return 1
- fi
-
- osTypeSuffix=""
- if [ ! -z $2 ]
- then
- osTypeSuffix="-$2"
- fi
-
- local replacedPath="$RUNTIME_IMAGES_SRC_DIR/"
- echo "Runtime Image Source Directory: "$RUNTIME_IMAGES_SRC_DIR
- local remainderPath="${1//$replacedPath/}"
- tagNameFile="$RUNTIME_IMAGES_SRC_DIR/$remainderPath/tag.txt"
-
- if [ -f "$tagNameFile" ]
- then
- getTagName_result=$(cat $tagNameFile)
- echo "tagname for "$replacedPath" is :"$getTagName_result
- return 0
- fi
-
- local slashChar="/"
- getTagName_result="${remainderPath//$slashChar/":"}$osTypeSuffix"
- return 0
-}
-
-function dockerCleanupIfRequested()
-{
- if [ "$DOCKER_SYSTEM_PRUNE" == "true" ]
- then
- echo "Running 'docker system prune -f'"
- docker system prune -f
- else
- echo "Skipping 'docker system prune -f'"
- fi
-}
-
-function execAllGenerateDockerfiles()
-{
- runtimeImagesSourceDir="$1"
- runtimeGenerateDockerFileScriptName="$2"
- runtimeImageDebianFlavor=$3
-
- echo "runtime image type '$3'"
- echo "runtimeGenerateDockerFileScriptName '$2'"
-
- generateDockerfiles=$(find $runtimeImagesSourceDir -type f -name $runtimeGenerateDockerFileScriptName)
- if [ -z "$generateDockerfiles" ]
- then
- echo "Couldn't find any '$runtimeGenerateDockerFileScriptName' under '$runtimeImagesSourceDir' and its sub-directories."
- fi
-
- for generateDockerFile in $generateDockerfiles; do
- echo
- echo "Executing '$generateDockerFile'..."
- echo
- eval "$(echo "$generateDockerFile $runtimeImageDebianFlavor")"
- done
-}
-
-function showDockerImageSizes()
-{
- docker system df -v
-}
-
-function shouldStageRuntimeVersion()
-{
- platformName="$1"
- platformRuntimeVersion="$2"
-
- declare -A PLATFORM_RUNTIME_VERSIONS=(
- ['dotnet']="${DOTNETCORE_STAGING_RUNTIME_VERSIONS[*]}"
- ['dotnetcore']="${DOTNETCORE_STAGING_RUNTIME_VERSIONS[*]}"
- ['python']="${PYTHON_STAGING_RUNTIME_VERSIONS[*]}"
- ['node']="${NODE_STAGING_RUNTIME_VERSIONS[*]}"
- ['java']="${JAVA_STAGING_RUNTIME_VERSIONS[*]}"
- ['php']="${PHP_STAGING_RUNTIME_VERSIONS[*]}"
- ['hugo']="${HUGO_STAGING_RUNTIME_VERSIONS[*]}"
- ['ruby']="${RUBY_STAGING_RUNTIME_VERSIONS[*]}"
- ['golang']="${GOLANG_STAGING_RUNTIME_VERSIONS[*]}"
- )
-
- if [[ " ${PLATFORM_RUNTIME_VERSIONS[$platformName]} " =~ " ${platformRuntimeVersion} " ]]; then
- return 0
- else
- echo "Platform '$platformName' does not support staging."
- return 1
- fi
-}
-
-function retrieveSastokenFromKeyVault()
-{
- set +x
- sdkStorageAccountUrl="$1"
-
- if [ $sdkStorageAccountUrl == $PRIVATE_STAGING_SDK_STORAGE_BASE_URL ] && [ -z "$ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN" ]; then
-
- echo "Retrieving token from the Keyvault and setting it to the environment variable 'ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN'"
- stagingPrivateStorageSasToken=$(az keyvault secret show --name "ORYX-SDK-STAGING-PRIVATE-SAS-TOKEN" --vault-name "oryx" --query value -o tsv)
-
- export ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN=$stagingPrivateStorageSasToken
- fi
- set -x
-}
diff --git a/build/__phpVersions.sh b/build/__phpVersions.sh
deleted file mode 100644
index c5abeaacdd..0000000000
--- a/build/__phpVersions.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-# This file was auto-generated from 'constants.yaml'. Changes may be overridden.
-
-PHP_RUNTIME_BASE_TAG='20240430.1'
-PHP_FPM_RUNTIME_BASE_TAG='20240430.1'
-COMPOSER_DEFAULT_VERSION='2.6.2'
-COMPOSER_SETUP_SHA384='e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02'
-COMPOSER1_9_VERSION='1.9.3'
-COMPOSER1_10_VERSION='1.10.19'
-COMPOSER2_0_VERSION='2.0.8'
-COMPOSER2_2_VERSION='2.2.21'
-COMPOSER2_3_VERSION='2.3.10'
-COMPOSER2_4_VERSION='2.4.4'
-COMPOSER2_5_VERSION='2.5.8'
-COMPOSER2_6_VERSION='2.6.2'
-PHP83_VERSION='8.3.9'
-PHP83_KEYS='1198C0117593497A5EC5C199286AF1F9897469DC AFD8691FDAEDF03BDF6E460563F15A9B715376CA'
-PHP83_TAR_SHA256='bf4d7b8ea60a356064f88485278bd6f941a230ec16f0fc401574ce1445ad6c77'
-PHP82_VERSION='8.2.21'
-PHP82_KEYS='1198C0117593497A5EC5C199286AF1F9897469DC 39B641343D8C104B2B146DC3F9C39DC0B9698544'
-PHP82_TAR_SHA256='8cc44d51bb2506399ec176f70fe110f0c9e1f7d852a5303a2cd1403402199707'
-PHP81_VERSION='8.1.29'
-PHP81_KEYS='528995BFEDFBA7191D46839EF9BA0ADA31CBD89E 39B641343D8C104B2B146DC3F9C39DC0B9698544'
-PHP81_TAR_SHA256='288884af60581d4284baba2ace9ca6d646f72facbd3e3c2dd2acc7fe6f903536'
-PHP80_VERSION='8.0.30'
-PHP80_KEYS='1729F83938DA44E27BA0F4D3DBDB397470D12172 BFDDD28642824F8118EF77909B67A5C12229118F'
-PHP80_TAR_SHA256='216ab305737a5d392107112d618a755dc5df42058226f1670e9db90e77d777d9'
-PHP74_VERSION='7.4.33'
-PHP74_KEYS='42670A7FE4D0441C8E4632349E4FDC074A4EF02D 5A52880781F755608BF815FC910DEB46F53EA312'
-PHP74_TAR_SHA256='924846abf93bc613815c55dd3f5809377813ac62a9ec4eb3778675b82a27b927'
-PHP73_VERSION='7.3.27'
-PHP73_KEYS='CBAF69F173A0FEA4B537F470D66C9593118BCCB6 F38252826ACD957EF380D39F2F7956BC5DA04B5D'
-PHP73_TAR_SHA256='65f616e2d5b6faacedf62830fa047951b0136d5da34ae59e6744cbaf5dca148d'
-PHP72_VERSION='7.2.34'
-PHP72_KEYS='1729F83938DA44E27BA0F4D3DBDB397470D12172 B1B44D8F021E4E2D6021E995DC9FF8D3EE5AF27F'
-PHP72_TAR_SHA256='409e11bc6a2c18707dfc44bc61c820ddfd81e17481470f3405ee7822d8379903'
-PHP70_VERSION='7.0.33'
-PHP70_KEYS='1A4E8B7277C42E53DBA9C7B9BCAA30EA9C0D5763 6E4F6AB321FDC07F2C332E3AC2BF0BC433CFC8B3'
-PHP70_TAR_SHA256='ab8c5be6e32b1f8d032909dedaaaa4bbb1a209e519abb01a52ce3914f9a13d96'
-PHP56_VERSION='5.6.40'
-PHP56_KEYS='0BD78B5F97500D450838F95DFE857D9A90D90EC1 6E4F6AB321FDC07F2C332E3AC2BF0BC433CFC8B3'
-PHP56_TAR_SHA256='1369a51eee3995d7fbd1c5342e5cc917760e276d561595b6052b21ace2656d1c'
diff --git a/build/__variables.sh b/build/__variables.sh
index 43b960651c..967b366fcb 100755
--- a/build/__variables.sh
+++ b/build/__variables.sh
@@ -18,31 +18,13 @@ declare -r BUILD_CONFIGURATION="${BUILDCONFIGURATION:-Debug}"
declare -r RELEASE_TAG_NAME="${RELEASE_TAG_NAME:-$BUILD_NUMBER}"
declare -r BUILD_IMAGES_BUILD_CONTEXT_DIR="$REPO_DIR"
-declare -r BUILD_IMAGES_DOCKERFILE="$REPO_DIR/images/build/Dockerfiles/Dockerfile"
-declare -r BUILD_IMAGES_LTS_VERSIONS_DOCKERFILE="$REPO_DIR/images/build/Dockerfiles/ltsVersions.Dockerfile"
-declare -r BUILD_IMAGES_LTS_VERSIONS_BUSTER_DOCKERFILE="$REPO_DIR/images/build/Dockerfiles/ltsVersions.buster.Dockerfile"
declare -r PACK_IMAGE_DOCKERFILE="$REPO_DIR/images/pack-builder/pack-runner.Dockerfile"
-declare -r ORYXTESTS_BUILDIMAGE_DOCKERFILE="$REPO_DIR/tests/images/build/Dockerfile"
-declare -r ORYXTESTS_LTS_VERSIONS_BUILDIMAGE_DOCKERFILE="$REPO_DIR/tests/images/build/ltsVersions.Dockerfile"
-declare -r ORYXTESTS_LTS_VERSIONS_BUSTER_BUILDIMAGE_DOCKERFILE="$REPO_DIR/tests/images/build/ltsVersions.buster.Dockerfile"
-declare -r ORYXTESTS_GITHUB_ACTIONS_BUILDIMAGE_DOCKERFILE="$REPO_DIR/tests/images/build/gitHubActions.Dockerfile"
-declare -r ORYXTESTS_GITHUB_ACTIONS_ASBASE_BUILDIMAGE_DOCKERFILE="$REPO_DIR/tests/images/build/gitHubActions.AsBase.Dockerfile"
-declare -r ORYXTESTS_GITHUB_ACTIONS_ASBASE_WITHENV_BUILDIMAGE_DOCKERFILE="$REPO_DIR/tests/images/build/gitHubActions.AsBaseWithEnv.Dockerfile"
declare -r RUNTIME_IMAGES_SRC_DIR="$REPO_DIR/images/runtime"
declare -r BUILD_IMAGES_CLI_DOCKERFILE="$REPO_DIR/images/build/Dockerfiles/cli.Dockerfile"
declare -r BUILD_IMAGES_CLI_BUILDER_DOCKERFILE="$REPO_DIR/images/build/Dockerfiles/cliBuilder.Dockerfile"
declare -r BUILD_IMAGES_FULL_DOCKERFILE="$REPO_DIR/images/build/Dockerfiles/full.Dockerfile"
declare -r BUILD_IMAGES_AZ_FUNCS_JAMSTACK_DOCKERFILE="$REPO_DIR/images/build/Dockerfiles/azureFunctions.JamStack.Dockerfile"
declare -r BUILD_IMAGES_GITHUB_ACTIONS_DOCKERFILE="$REPO_DIR/images/build/Dockerfiles/gitHubActions.Dockerfile"
-declare -r BUILD_IMAGES_VSO_FOCAL_DOCKERFILE="$REPO_DIR/images/build/Dockerfiles/vso.focal.Dockerfile"
-declare -r BUILD_IMAGES_VSO_BULLSEYE_DOCKERFILE="$REPO_DIR/images/build/Dockerfiles/vso.bullseye.Dockerfile"
-declare -r BUILD_IMAGES_BUILDSCRIPTGENERATOR_DOCKERFILE="$REPO_DIR/images/build/Dockerfiles/buildScriptGenerator.Dockerfile"
-declare -r BUILD_IMAGES_SUPPORT_FILES_DOCKERFILE="$REPO_DIR/images/build/Dockerfiles/supportFilesForBuildingBuildImages.Dockerfile"
-declare -r BUILD_IMAGES_GITHUB_RUNNERS_BUILDPACKDEPS_STRETCH_DOCKERFILE="$REPO_DIR/images/build/Dockerfiles/gitHubRunners.BuildPackDepsStretch.Dockerfile"
-declare -r BUILD_IMAGES_GITHUB_RUNNERS_BUILDPACKDEPS_FOCAL_DOCKERFILE="$REPO_DIR/images/build/Dockerfiles/gitHubRunners.BuildPackDepsFocal.Dockerfile"
-declare -r BUILD_IMAGES_GITHUB_RUNNERS_BUILDPACKDEPS_BUSTER_DOCKERFILE="$REPO_DIR/images/build/Dockerfiles/gitHubRunners.BuildPackDepsBuster.Dockerfile"
-declare -r BUILD_IMAGES_GITHUB_RUNNERS_BUILDPACKDEPS_BULLSEYE_DOCKERFILE="$REPO_DIR/images/build/Dockerfiles/gitHubRunners.BuildPackDepsBullseye.Dockerfile"
-declare -r BUILD_IMAGES_GITHUB_RUNNERS_BUILDPACKDEPS_BOOKWORM_DOCKERFILE="$REPO_DIR/images/build/Dockerfiles/gitHubRunners.BuildPackDepsBookworm.Dockerfile"
declare -r RUNTIME_BASE_IMAGE_DOCKERFILE_PATH="$RUNTIME_IMAGES_SRC_DIR/commonbase/Dockerfile"
declare -r RUNTIME_BASE_IMAGE_NAME="oryx-run-base"
declare -r RUNTIME_BUSTER_BASE_IMAGE_NAME="oryx-run-base-buster"
@@ -63,7 +45,6 @@ declare -r PACK_IMAGE_NAME='pack'
declare -r PACK_STACK_BASE_IMAGE_NAME="pack-stack-base"
declare -r PACK_BUILDER_IMAGE_NAME="pack-builder"
declare -r PACK_TOOL_VERSION="0.26.0"
-declare -r ORYXTESTS_BUILDIMAGE_REPO="oryxtests/build"
declare -r DEVBOX_BUILD_IMAGES_REPO="oryx/build"
declare -r DEVBOX_CLI_BUILD_IMAGE_REPO="oryx/cli"
@@ -78,10 +59,7 @@ declare -r ACR_RUNTIME_IMAGES_REPO="$ACR_PUBLIC_PREFIX"
declare -r ACR_PACK_IMAGE_REPO="$ACR_PUBLIC_PREFIX/$PACK_IMAGE_NAME"
declare -r ACR_AZURE_FUNCTIONS_JAMSTACK_IMAGE_NAME="$ACR_BUILD_IMAGES_REPO:azfunc-jamstack"
declare -r ACR_BUILD_FULL_IMAGE_NAME="$ACR_BUILD_IMAGES_REPO:full"
-declare -r ACR_BUILD_LTS_VERSIONS_IMAGE_NAME="$ACR_BUILD_IMAGES_REPO:lts-versions"
declare -r ACR_BUILD_GITHUB_ACTIONS_IMAGE_NAME="$ACR_BUILD_IMAGES_REPO:github-actions"
-declare -r ACR_BUILD_VSO_FOCAL_IMAGE_NAME="$ACR_BUILD_IMAGES_REPO:vso-ubuntu-focal"
-declare -r ACR_BUILD_VSO_BULLSEYE_IMAGE_NAME="$ACR_BUILD_IMAGES_REPO:vso-debian-bullseye"
declare -r BASE_IMAGES_PUBLIC_REPO="$ACR_DEV_NAME/public/oryx/base"
declare -r BASE_IMAGES_STAGING_REPO="$ACR_DEV_NAME/staging/oryx/base"
diff --git a/build/buildBuildImageBases.sh b/build/buildBuildImageBases.sh
deleted file mode 100755
index ff176fb5fe..0000000000
--- a/build/buildBuildImageBases.sh
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/bin/bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-#
-# This script builds some base images that are needed for the build image:
-# - Python binaries
-# - PHP binaries
-#
-
-set -ex
-
-declare -r REPO_DIR=$( cd $( dirname "$0" ) && cd .. && pwd )
-
-# Load all variables
-source $REPO_DIR/build/__variables.sh
-
-ImageDebianFlavor="$2"
-
-# Example: dontetcore, python
-IMAGE_DIR_TO_BUILD="$1"
-UNIQUE_TAG=""
-if [ ! -z "$BUILD_NUMBER" ]; then
- UNIQUE_TAG="-$BUILD_NUMBER"
-fi
-
-BUILD_IMAGES_DIR="$REPO_DIR/images/build"
-# NOTE: We create a unique artifacts file per image directory here since they are going to be built in parallel on CI
-ARTIFACTS_FILE="$BASE_IMAGES_ARTIFACTS_FILE_PREFIX/$IMAGE_DIR_TO_BUILD-buildimage-bases-$ImageDebianFlavor.txt"
-
-# Clean artifacts
-mkdir -p `dirname $ARTIFACTS_FILE`
-> $ARTIFACTS_FILE
-
-function buildImages() {
- local dirName="$1"
- local dockerFiles=$(find "$BUILD_IMAGES_DIR/$dirName" -type f -name "Dockerfile")
- for dockerFile in $dockerFiles; do
- versionDir=$(dirname "${dockerFile}")
- versionDirName=$(basename $versionDir)
- imageName="$BASE_IMAGES_PUBLIC_REPO:$dirName-build-$versionDirName$UNIQUE_TAG"
- docker build -f $dockerFile -t "$imageName" $REPO_DIR
- echo "$imageName" >> $ARTIFACTS_FILE
- done
-}
-
-case $IMAGE_DIR_TO_BUILD in
- 'python')
- echo "Building Python base images"
- echo
-
- docker build -f $BUILD_IMAGES_DIR/python/prereqs/Dockerfile -t "oryxdevmcr.azurecr.io/private/oryx/python-build-prereqs" $REPO_DIR
- buildImages "python"
- ;;
- *) echo "Unknown image directory";;
-esac
-
-echo
-echo "List of images built (from '$ARTIFACTS_FILE'):"
-cat $ARTIFACTS_FILE
-echo
diff --git a/build/buildBuildpacksImages.sh b/build/buildBuildpacksImages.sh
deleted file mode 100755
index f08b21020f..0000000000
--- a/build/buildBuildpacksImages.sh
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-
-set -ex
-
-if [ -z $REPO_DIR ]; then
- declare -r REPO_DIR=$( cd $( dirname "$0" ) && cd .. && pwd )
-fi
-
-if [ -z $_LOADED_COMMON_VARIABLES ]; then
- source $REPO_DIR/build/__variables.sh
-fi
-
-if [ -n "$BUILD_BUILDIMAGES_USING_NOCACHE" ]; then
- echo
- echo "Building buildpack runner image with NO cache..."
- noCacheFlag='--no-cache'
-else
- echo
- echo "Building buildpack runner image..."
-fi
-
-labels="--label com.microsoft.oryx.git-commit=$GIT_COMMIT"
-labels="$labels --label com.microsoft.oryx.build-number=$BUILD_NUMBER"
-labels="$labels --label com.microsoft.oryx.release-tag-name=$RELEASE_TAG_NAME"
-labels="$labels --label pack-tool-version=$PACK_TOOL_VERSION"
-
-# Build an image that runs `pack`
-echo "-> Building pack runner image: $ACR_PACK_IMAGE_REPO"
-echo
-cd "$BUILD_IMAGES_BUILD_CONTEXT_DIR"
-docker build -f "$PACK_IMAGE_DOCKERFILE" $noCacheFlag \
- $labels \
- -t $ACR_PACK_IMAGE_REPO:latest \
- .
-
-if [ "$AGENT_BUILD" == "true" ]; then
- BUILD_SUFFIX="$BUILD_DEFINITIONNAME.$RELEASE_TAG_NAME"
-
- docker tag "$ACR_PACK_IMAGE_REPO:latest" "$ACR_PACK_IMAGE_REPO:$BUILD_SUFFIX"
- echo "$ACR_PACK_IMAGE_REPO:$BUILD_SUFFIX" >> $ACR_BUILD_IMAGES_ARTIFACTS_FILE
-fi
diff --git a/build/buildPlatformBinaries.sh b/build/buildPlatformBinaries.sh
deleted file mode 100755
index 659e7b5a10..0000000000
--- a/build/buildPlatformBinaries.sh
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-
-set -e
-
-declare -r REPO_DIR=$( cd $( dirname "$0" ) && cd .. && pwd )
-
-PLATFORM_TO_BUILD=$1
-DEBIAN_FLAVOR_TO_BUILD=$2
-SDK_STORAGE_ACCOUNT_URL=$3
-platformsDir="$REPO_DIR/platforms"
-
-case $PLATFORM_TO_BUILD in
- 'dotnet')
- chmod +x "$platformsDir/dotnet/getDotNetSdk.sh"
- "$platformsDir/dotnet/getDotNetSdk.sh" $DEBIAN_FLAVOR_TO_BUILD $SDK_STORAGE_ACCOUNT_URL
- ;;
- 'python')
- chmod +x "$platformsDir/python/buildPython.sh"
- "$platformsDir/python/buildPython.sh" $DEBIAN_FLAVOR_TO_BUILD $SDK_STORAGE_ACCOUNT_URL
- ;;
- 'php')
- chmod +x "$platformsDir/php/buildPhp.sh"
- "$platformsDir/php/buildPhp.sh" $DEBIAN_FLAVOR_TO_BUILD $SDK_STORAGE_ACCOUNT_URL
- ;;
- 'nodejs')
- chmod +x "$platformsDir/nodejs/getNode.sh"
- "$platformsDir/nodejs/getNode.sh" $DEBIAN_FLAVOR_TO_BUILD $SDK_STORAGE_ACCOUNT_URL
- ;;
- 'golang')
- chmod +x "$platformsDir/golang/getGolangSdk.sh"
- "$platformsDir/golang/getGolangSdk.sh" $DEBIAN_FLAVOR_TO_BUILD $SDK_STORAGE_ACCOUNT_URL
- ;;
- 'ruby')
- chmod +x "$platformsDir/ruby/buildRuby.sh"
- "$platformsDir/ruby/buildRuby.sh" $DEBIAN_FLAVOR_TO_BUILD $SDK_STORAGE_ACCOUNT_URL
- ;;
- 'java')
- chmod +x "$platformsDir/java/getJavaSdk.sh"
- "$platformsDir/java/getJavaSdk.sh" $DEBIAN_FLAVOR_TO_BUILD $SDK_STORAGE_ACCOUNT_URL
- ;;
- 'maven')
- chmod +x "$platformsDir/java/maven/getMaven.sh"
- "$platformsDir/java/maven/getMaven.sh" $DEBIAN_FLAVOR_TO_BUILD $SDK_STORAGE_ACCOUNT_URL
- ;;
- *) echo "Unknown image directory";;
-esac
diff --git a/build/buildSln.sh b/build/buildSln.sh
deleted file mode 100755
index 88608cfbbf..0000000000
--- a/build/buildSln.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-
-set -e
-
-declare -r REPO_DIR=$( cd $( dirname "$0" ) && cd .. && pwd )
-
-solutionFileName="$1"
-
-if [ -z "$solutionFileName" ]; then
- solutionFileName="Oryx.sln"
-fi
-
-# Load all variables
-source $REPO_DIR/build/__variables.sh
-
-echo
-echo "Building solution '$solutionFileName'..."
-echo
-cd $REPO_DIR
-dotnet build "$solutionFileName" -c $BUILD_CONFIGURATION
\ No newline at end of file
diff --git a/build/buildTestBuildImages.sh b/build/buildTestBuildImages.sh
deleted file mode 100644
index 83792711f6..0000000000
--- a/build/buildTestBuildImages.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-
-set -e
-
-declare -r REPO_DIR=$( cd $( dirname "$0" ) && cd .. && pwd )
-
-# Load all variables
-source $REPO_DIR/build/__variables.sh
-source $REPO_DIR/build/__functions.sh
-
-echo
-echo "Building build images for tests..."
-
-echo "Building bullseye based GitHub Action image for tests..."
-docker build \
- -t "$ORYXTESTS_BUILDIMAGE_REPO:github-actions-debian-bullseye" \
- --build-arg PARENT_IMAGE_BASE=$ORYX_TEST_IMAGE_BASE:github-actions-debian-bullseye-$IMAGE_BUILDNUMBER \
- -f "$ORYXTESTS_GITHUB_ACTIONS_BUILDIMAGE_DOCKERFILE" \
- .
-
-echo
-echo
-
-echo "Building bookworm based GitHub Action image for tests..."
-docker build \
- -t "$ORYXTESTS_BUILDIMAGE_REPO:github-actions-debian-bookworm" \
- --build-arg PARENT_IMAGE_BASE=$ORYX_TEST_IMAGE_BASE:github-actions-debian-bookworm-$IMAGE_BUILDNUMBER \
- -f "$ORYXTESTS_GITHUB_ACTIONS_BUILDIMAGE_DOCKERFILE" \
- .
-
-echo
-echo
-
-dockerCleanupIfRequested
diff --git a/build/generateConstants.sh b/build/generateConstants.sh
new file mode 100644
index 0000000000..ab06fd1044
--- /dev/null
+++ b/build/generateConstants.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+# --------------------------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT license.
+# --------------------------------------------------------------------------------------------
+
+# Regenerates shared constant files (C#, Shell, Go) from build/constants.yaml
+# using the SharedCodeGenerator tool.
+
+set -e
+
+REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
+
+echo "Generating constants from ${REPO_DIR}/build/constants.yaml ..."
+dotnet run --project "${REPO_DIR}/build/tools/SharedCodeGenerator/SharedCodeGenerator.csproj" \
+ "${REPO_DIR}/build/constants.yaml" \
+ "${REPO_DIR}"
+
+echo "Constants generated successfully."
diff --git a/build/release.txt b/build/release.txt
deleted file mode 100644
index 7380474bab..0000000000
--- a/build/release.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-
-[//]: # (This file contains all the changes that should be displayed in our releases.)
-[//]: # (In order to use it, add new lines below this comment session, leaving the remaining lines in the file.)
-[//]: # (The build and release systems will only add the new lines to the release, so NEVER edit an existing line,)
-[//]: # (since it would make it appear again in the release.)
-[//]: # (Add meaningful description of your changes, and if relevant how to make use of a new feature you're adding,)
-[//]: # (as well as pointers to relevant documentation in our docs folder.)
-
diff --git a/build/testBuildScriptGenerator.sh b/build/testBuildScriptGenerator.sh
deleted file mode 100755
index 8a567b3207..0000000000
--- a/build/testBuildScriptGenerator.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-
-set -e
-
-declare -r REPO_DIR=$( cd $( dirname "$0" ) && cd .. && pwd )
-
-# Load all variables
-source $REPO_DIR/build/__variables.sh
-
-echo
-echo "Building and running tests..."
-testProjectName="BuildScriptGenerator.Tests"
-cd "$TESTS_SRC_DIR/$testProjectName"
-dotnet test \
- --blame \
- --test-adapter-path:. \
- --logger:"xunit;LogFilePath=$ARTIFACTS_DIR\testResults\\$testProjectName.xml" \
- -c $BUILD_CONFIGURATION
-
-testProjectName="BuildScriptGeneratorCli.Tests"
-cd "$TESTS_SRC_DIR/$testProjectName"
-dotnet test \
- --blame \
- --test-adapter-path:. \
- --logger:"xunit;LogFilePath=$ARTIFACTS_DIR\testResults\\$testProjectName.xml" \
- -c $BUILD_CONFIGURATION
-
-# --blame flag generates an xml file which it drops under the project directory.
-# Copy that file to artifacts directory too
-if [ -d "TestResults" ]; then
- resultsDir="$ARTIFACTS_DIR/$testProjectName.TestResults"
- mkdir -p "$resultsDir"
- cp -rf TestResults/. "$resultsDir/"
-fi
\ No newline at end of file
diff --git a/build/testIntegration.sh b/build/testIntegration.sh
deleted file mode 100755
index 3533e510db..0000000000
--- a/build/testIntegration.sh
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/bin/bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-
-set -e
-
-declare -r REPO_DIR=$( cd $( dirname "$0" ) && cd .. && pwd )
-source $REPO_DIR/build/__variables.sh
-source $REPO_DIR/build/__sdkStorageConstants.sh
-
-echo
-
-# This is needed because when we are running tests in multiple agent machines
-# this variable will be used to name the testresults file and that way we can
-# avoid overwriting test results file.
-integrationTestPlatform=".default"
-
-if [ -n "$1" ]; then
- testCaseFilter="--filter $1"
- if [ -n "$AGENT_BUILD" ]; then
- # Extract platform name for which the integration tests are running
- # for example, for node it will be ".node", for php ".php" etc.
- integrationTestPlatform="."$(echo $1 | cut -d'=' -f 2)
- fi
- echo "Running integration tests for '$integrationTestPlatform' with filter '$testCaseFilter'..."
-else
- echo "Running all integration tests..."
-fi
-
-echo
-
-if [ -n "$2" ]
-then
- echo
- echo "Setting environment variable 'ORYX_TEST_IMAGE_BASE' to provided value '$2'."
- export ORYX_TEST_IMAGE_BASE="$2"
-fi
-
-if [ -n "$3" ]
-then
- echo
- echo "Setting environment variable 'ORYX_TEST_TAG_SUFFIX' to provided value '$3'."
- export ORYX_TEST_TAG_SUFFIX="-$3"
-fi
-
-echo
-
-testProjectName="Oryx.Integration"
-cd "$TESTS_SRC_DIR/$testProjectName.Tests"
-artifactsDir="$REPO_DIR/artifacts"
-mkdir -p "$artifactsDir"
-diagnosticFileLocation="$artifactsDir/$testProjectName.Tests$integrationTestPlatform-log.txt"
-
-# Create a directory to capture any debug logs that MSBuild generates
-msbuildDebugLogsDir="$artifactsDir/msbuildDebugLogs"
-mkdir -p "$msbuildDebugLogsDir"
-export MSBUILDDEBUGPATH="$msbuildDebugLogsDir"
-# Enable automatic creation of crash dump when a .NET Core process crashes (ex: TestHost)
-export COMPlus_DbgEnableMiniDump="1"
-export COMPlus_DbgMiniDumpName="$ARTIFACTS_DIR/$testProjectName.Tests-dump.%d"
-
-dotnet test \
- --blame \
- --diag "$diagnosticFileLocation" \
- $testCaseFilter \
- --test-adapter-path:. \
- --logger:"xunit;LogFilePath=$ARTIFACTS_DIR/testResults/$testProjectName$integrationTestPlatform.Tests.xml" \
- --verbosity detailed \
- -c $BUILD_CONFIGURATION
-
-# --blame flag generates an xml file which it drops under the project directory.
-# Copy that file to artifacts directory too
-if [ -d "TestResults" ]; then
- resultsDir="$ARTIFACTS_DIR/$testProjectName.TestResults"
- mkdir -p "$resultsDir"
- cp -rf TestResults/. "$resultsDir/"
-fi
\ No newline at end of file
diff --git a/build/tools/SharedCodeGenerator/README.md b/build/tools/SharedCodeGenerator/README.md
index 231b0ed638..4fc1d511a0 100644
--- a/build/tools/SharedCodeGenerator/README.md
+++ b/build/tools/SharedCodeGenerator/README.md
@@ -10,4 +10,4 @@ For example configuration, read `build/build-constants.yaml`.
## Running the tool
-The easiest way to run this tool and regenerate the output files it by running the script `/build/generate-constants.sh`.
\ No newline at end of file
+The easiest way to run this tool and regenerate the output files it by running the script `/build/generateConstants.sh`.
\ No newline at end of file
diff --git a/doc/architecture.md b/doc/architecture.md
index 25c72e785d..ce78e1fe09 100644
--- a/doc/architecture.md
+++ b/doc/architecture.md
@@ -27,11 +27,10 @@ It analyzes the codebase, detecting which programming platforms are being used a
We have a single build image which supports all of the SDKs and their versions. This allows developers to use
multiple languages in their build, for instance run a Python setup script when building their .NET Core app,
or have a TypeScript frontend for their Python app. You can take a look at its
-[Dockerfile](../images/build/Dockerfiles/Dockerfile) to better understand its contents.
+[Dockerfile](../images/build/Dockerfiles/full.Dockerfile) to better understand its contents.
Note that some layers of this build image come from yet another set of images, which we build independently for
-modularization and for faster build times. You can see what are those images and how they are built in their
-[build script](../build/buildBuildImageBases.sh).
+modularization and for faster build times.
To help the user select which version they want for each platform, they can use the `benv` script pre-installed
in the build image. For example, `source benv python=3.6 node=8` will make Python 3.6 and the latest supported
@@ -40,7 +39,7 @@ version of Node 8 the default ones.
The build image also contains the build script generator, which can be accessed by its alias, `oryx`.
The build image manifest is at
-[/images/build/Dockerfiles/Dockerfile](../images/build/Dockerfiles/Dockerfile). It is built and
+[/images/build/Dockerfiles/full.Dockerfile](../images/build/Dockerfiles/full.Dockerfile). It is built and
published via the Microsoft Container Registry (MCR) ([info][]) as
`mcr.microsoft.com/oryx/build` and syndicated to Docker Hub as
[`https://hub.docker.com/_/microsoft-oryx-images`](https://hub.docker.com/_/microsoft-oryx-images). Pull with `docker pull
@@ -55,64 +54,9 @@ mcr.microsoft.com/oryx/build:latest`.
For a list of packages installed as a part of this build image, click here.
-#### [Lts Versions Build Image](../images/build/Dockerfiles/ltsVersions.Dockerfile)
-
-**Docker**
-
-- [`buildpack-deps:stretch`](../images/build/Dockerfiles/ltsVersions.Dockerfile#L5)
-- [`mcr.microsoft.com/oryx/python-build-base:3.7-{BUILD}`](../images/build/Dockerfiles/ltsVersions.Dockerfile#L160)
-
-**`apt-get`**
-
-- Basic build tools
- - [`build-essential`](../images/build/Dockerfiles/ltsVersions.Dockerfile#L25)
- - [`default-libmysqlclient-dev`](../images/build/Dockerfiles/ltsVersions.Dockerfile#L31)
- - [`git`](../images/build/Dockerfiles/ltsVersions.Dockerfile#L21)
- - [`libpq-dev`](../images/build/Dockerfiles/ltsVersions.Dockerfile#L29)
- - [`make`](../images/build/Dockerfiles/ltsVersions.Dockerfile#L22)
- - [`moreutils`](../images/build/Dockerfiles/ltsVersions.Dockerfile#L33)
- - [`rsync`](../images/build/Dockerfiles/ltsVersions.Dockerfile#L34)
- - [`unixodbc-dev`](../images/build/Dockerfiles/ltsVersions.Dockerfile#L27)
- - [`unzip`](../images/build/Dockerfiles/ltsVersions.Dockerfile#L23)
- - [`zip`](../images/build/Dockerfiles/ltsVersions.Dockerfile#L35)
-- .NET Core
- - [`libc6`](../images/build/Dockerfiles/ltsVersions.Dockerfile#L50)
- - [`libgcc1`](../images/build/Dockerfiles/ltsVersions.Dockerfile#L51)
- - [`libgssapi-krb5-2`](../images/build/Dockerfiles/ltsVersions.Dockerfile#L52)
- - [`libicu57`](../images/build/Dockerfiles/ltsVersions.Dockerfile#L53)
- - [`liblttng-ust0`](../images/build/Dockerfiles/ltsVersions.Dockerfile#L54)
- - [`libssl1.0.2`](../images/build/Dockerfiles/ltsVersions.Dockerfile#L55)
- - [`libstdc++6`](../images/build/Dockerfiles/ltsVersions.Dockerfile#L56)
- - [`zlib1g`](../images/build/Dockerfiles/ltsVersions.Dockerfile#L57)
-- Node
- - [`jq`](../images/build/Dockerfiles/ltsVersions.Dockerfile#L108)
-- Python
- - [`tk-dev`](../images/build/Dockerfiles/ltsVersions.Dockerfile#L169)
- - [`uuid-dev`](../images/build/Dockerfiles/ltsVersions.Dockerfile#L170)
-
-#### [Full build image](../images/build/Dockerfiles/Dockerfile)
-
-**Docker**
-
-- Python
- - [`mcr.microsoft.com/oryx/python-build-base:2.7-{BUILD}`](../images/build/Dockerfiles/Dockerfile#L179)
- - [`mcr.microsoft.com/oryx/python-build-base:3.6-{BUILD}`](../images/build/Dockerfiles/Dockerfile#L180)
- - [`mcr.microsoft.com/oryx/python-build-base:3.8-{BUILD}`](../images/build/Dockerfiles/Dockerfile#L181)
-- PHP
- - [`mcr.microsoft.com/oryx/php-build-base:5.6-{BUILD}`](../images/build/Dockerfiles/Dockerfile#L217)
- - [`mcr.microsoft.com/oryx/php-build-base:7.0-{BUILD}`](../images/build/Dockerfiles/Dockerfile#L218)
- - [`mcr.microsoft.com/oryx/php-build-base:7.2-{BUILD}`](../images/build/Dockerfiles/Dockerfile#L219)
- - [`mcr.microsoft.com/oryx/php-build-base:7.3-{BUILD}`](../images/build/Dockerfiles/Dockerfile#L220)
-- [`golang:1.11-stretch`](../images/build/Dockerfiles/Dockerfile#L228)
-
-**`apt-get`**
-
-- .NET Core
- - [`libunwind8`](../images/build/Dockerfiles/Dockerfile#L16)
- - [`libcurl3`](../images/build/Dockerfiles/Dockerfile#L26)
- - [`libuuid1`](../images/build/Dockerfiles/Dockerfile#L27)
-- Node
- - [`jq`](../images/build/Dockerfiles/Dockerfile#L100)
+See the Dockerfiles in [/images/build/Dockerfiles](../images/build/Dockerfiles/) for the full
+list of base images and packages installed. The main build image is
+[full.Dockerfile](../images/build/Dockerfiles/full.Dockerfile).
@@ -156,46 +100,11 @@ The *Run* images are published to MCR (mcr.microsoft.com/oryx/<platform>).
For a list of packages installed as a part of the runtime images, click here.
-#### [Common base image](../images/runtime/commonbase/Dockerfile)
-
-**Docker**
-
-- [`buildpack-deps:stretch-curl`](../images/runtime/commonbase/Dockerfile#L1)
-
-**`apt-get`**
-
-- [`xz-utils`](../images/runtime/commonbase/Dockerfile#L4)
-
-#### [.NET Core template](../images/runtime/dotnetcore/template.Dockerfile)
-
-**Docker**
-
-- [`golang:1.11-stretch`](../images/runtime/dotnetcore/template.Dockerfile#L2)
-- [`mcr.microsoft.com/dotnet/core/runtime:{VERSION}](../images/runtime/dotnetcore/template.Dockerfile#L12)
-
-**`apt-get`**
-
-- [`file`](../images/runtime/dotnetcore/template.Dockerfile#L16)
-
-#### [Node template](../images/runtime/node/template.Dockerfile)
-
-**Docker**
-
-- [`golang:1.11-stretch`](../images/runtime/node/template.Dockerfile#L2)
-- [`mcr.microsoft.com/oryx/node-base:{VERSION}`](../images/runtime/node/template.Dockerfile#L12)
-
-#### [PHP template](../images/runtime/php/template.Dockerfile)
-
-**Docker**
-
-- [`golang:1.11-stretch`](../images/runtime/php/template.Dockerfile#L2)
-- [`mcr.microsoft.com/oryx/php-base:{VERSION}`](../images/runtime/php/template.Dockerfile#L12)
-
-#### [Python template](../images/runtime/python/template.Dockerfile)
-
-**Docker**
-
-- [`golang:1.11-stretch`](../images/runtime/python/template.Dockerfile#L2)
+See the Dockerfiles in [/images/runtime](../images/runtime/) for the full list of runtime
+images and packages installed. The common base image is at
+[commonbase/Dockerfile](../images/runtime/commonbase/Dockerfile). Each platform has
+version-specific Dockerfiles (e.g. `dotnetcore/8.0/bookworm.Dockerfile`,
+`python/template.Dockerfile`).
@@ -203,10 +112,9 @@ The *Run* images are published to MCR (mcr.microsoft.com/oryx/<platform>).
* `build`: scripts for building the script generator and build and runtime images
* `images`: Dockerfiles for the build and runtime images
-* `platforms`:platform SDK versions to be built
+* `platforms`: platform SDK versions to be built
* `src`: source code for the build and startup script generators
* `tests`: tests.
-* `vsts`: CI/CD configuration.
## Prerequisites
diff --git a/doc/base_images.md b/doc/base_images.md
index 7075438386..b68e6ad7d0 100644
--- a/doc/base_images.md
+++ b/doc/base_images.md
@@ -3,8 +3,7 @@
The Oryx [build image][] layers on Docker's
[`buildpack-deps`][library/buildpack-deps:stable] image, itself layered on
Docker's basic [debian][library/debian:stable] image.
-The build image copies some required platforms from separate intermediate images,
-which can be built locally using the [`buildBuildImageBases.sh`](../build/buildBuildImageBases.sh) script.
+The build image copies some required platforms from separate intermediate images.
[build image]: https://hub.docker.com/_/microsoft-oryx-images
[library/buildpack-deps:stable]: https://hub.docker.com/_/buildpack-deps
@@ -15,11 +14,8 @@ packages required at build-time. The following system packages are also added
to the Oryx image. If you require additional packages please [open an
issue][].
-Support different version of debian (stretch, buster and bullseye) and ubuntu (focal) `buildpack-deps` based images:
-[Buster](../images/build/Dockerfiles/githubRunner.BuildPackDepsBuster.Dockerfile),
-[Ubuntu(focal)](../images/build/Dockerfiles/githubRunner.BuildPackDepsFocal.Dockerfile),
-[Stretch](../images/build/Dockerfiles/githubRunner.BuildPackDepsStretch.Dockerfile),
-[Bullseye](../images/build/Dockerfiles/githubRunner.BuildPackDepsBullseye.Dockerfile)
+Support different version of debian (stretch, buster and bullseye) and ubuntu (focal) `buildpack-deps` based images.
+These build images are defined in [/images/build/Dockerfiles](../images/build/Dockerfiles/).
[open an issue]: https://github.com/Microsoft/Oryx/issues/new/choose
@@ -48,7 +44,7 @@ or in AppService's language selection.
Oryx's run images build on Docker's runtime-specific images for [Node.js][]
, [Python][], [Php][] and [Dotnet][]. A start script generator is included. Packages included for
specific runtimes are described in their documentation.
-The runtime image can be built locally using the [`buildRunTimeImage.sh`](../build/buildRunTimeImage.sh) script.
+The runtime image Dockerfiles are located in [/images/runtime](../images/runtime/).
Runtimes and versions supported by Oryx are listed in [the main
README](../README.md#supported-platforms).
diff --git a/doc/buildpack.md b/doc/buildpack.md
deleted file mode 100644
index 7ff66fba01..0000000000
--- a/doc/buildpack.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Oryx Buildpack
-
-Oryx provides a buildpack that runs it, so that Oryx can also be used via the [pack][] tool.
-
-## Related images
-
-WIP
-
-[pack]: https://github.com/buildpack/pack
diff --git a/monitor_version_scripts/monitor_variables.sh b/monitor_version_scripts/monitor_variables.sh
deleted file mode 100755
index b9fcdfd92f..0000000000
--- a/monitor_version_scripts/monitor_variables.sh
+++ /dev/null
@@ -1,58 +0,0 @@
-# #!/bin/bash
-
-pip install bs4 lxml requests
-
-set -e
-
-error_handler() {
- echo "Error occurred in script at line: $1"
- exit 1
-}
-
-trap 'error_handler $LINENO' ERR
-
-mkdir -p generated_files
-
-curl -o generated_files/php_version.xml "https://www.php.net/downloads.php"
-curl -o generated_files/node_version.xml "https://nodejs.org/en/about/previous-releases"
-curl -o generated_files/dotnet_version.xml "https://dotnet.microsoft.com/en-us/download/dotnet"
-
-create_versionfile() {
- FILE=$1
- if [ ! -e "$FILE" ]; then
- # Create the file
- echo -n "" > $FILE
- echo "File '$FILE' created."
- else
- echo "File '$FILE' already exists."
- fi
-}
-
-create_versionfile generated_files/node_latest_versions.txt
-create_versionfile generated_files/php_latest_versions.txt
-create_versionfile generated_files/python_latest_versions.txt
-create_versionfile generated_files/dotnet_latest_versions.txt
-create_versionfile generated_files/dotnet_sdk_latest_versions.txt
-
-latest_stack_versions_FILE=latest_stack_versions.yaml
-cat < $latest_stack_versions_FILE
-variables:
-EOL
-
-python3 web_scrap_files/php_versions.py
-python3 web_scrap_files/node_versions.py
-python3 web_scrap_files/python_versions.py
-python3 web_scrap_files/dotnet_versions.py
-
-chmod +x update_latest_stack_versions.sh
-./update_latest_stack_versions.sh
-
-chmod +x update_constants.sh
-./update_constants.sh
-
-chmod +x update_versions_to_build.sh
-./update_versions_to_build.sh
-
-rm -rf "generated_files"
-rm "Stack_Updated_values.txt"
-rm "latest_stack_versions.yaml"
\ No newline at end of file
diff --git a/monitor_version_scripts/override_constants.yaml b/monitor_version_scripts/override_constants.yaml
deleted file mode 100644
index bad7a46490..0000000000
--- a/monitor_version_scripts/override_constants.yaml
+++ /dev/null
@@ -1,46 +0,0 @@
-variables:
- NODE_APP_INSIGHTS_SDK_VERSION: 1.8.7
- NPM_VERSION: 10.7.0
- PM2_VERSION: 5.3.1
- YARN_MAJOR_VERSION: "1"
- YARN_MINOR_VERSION: "1.22"
- YARN_VERSION: 1.22.15
- USER_DOTNET_AI_VERSION: 2.8.42
- AI_CONNECTION_STRING: 1234(RANDOMVALUE)
- SDK_STORAGE_BASE_URL_VALUE: https://oryxsdksdev.blob.core.windows.net
- node18DebianFlavors: bullseye
- node20DebianFlavors: bullseye,bookworm
- node22DebianFlavors: bullseye,bookworm
- python38DebianFlavors: buster,bullseye
- python39DebianFlavors: buster,bullseye
- python310DebianFlavors: buster,bullseye
- python311DebianFlavors: bullseye,bookworm
- python312DebianFlavors: bullseye,bookworm
- python313DebianFlavors: bookworm
- dotnet60DebianFlavors: bullseye
- dotnet80DebianFlavors: bullseye,bookworm
- dotnet90DebianFlavors: bookworm
- php81DebianFlavors: bullseye
- php82DebianFlavors: bullseye
- php83DebianFlavors: bullseye,bookworm
- debianFlavors: buster,bullseye,bookworm
- dotnetDebianFlavors: bookworm,bullseye
- nodejsDebianFlavors: bookworm,bullseye
- phpDebianFlavors: bookworm,bullseye
- pythonDebianFlavors: bookworm,bullseye,buster
- cliDebianFlavors: buster,bullseye
- cliBuilderDebianFlavors: buster,bullseye
- fullDebianFlavors: buster,bullseye
- jamstackDebianFlavors: buster,bullseye
- DotNetCoreAgent_version: 2.8.42
- GitHubActions_BaseImage_Buster: mcr.microsoft.com/mirror/docker/library/buildpack-deps@sha256:be7137ba47bdf421d3950abe1200322631e8db11b468cd6f0ebf3d687e556c90
- GitHubActions_BaseImage_Bullseye: mcr.microsoft.com/mirror/docker/library/buildpack-deps@sha256:25c86292946cce832340fe808ac47e5a845b68c488f177a47ff44fd59040397d
- GitHubActions_BaseImage_Bookworm: mcr.microsoft.com/mirror/docker/library/buildpack-deps@sha256:ff838f535d6e3bace9ab7eefa360d648ba529f9aa57fdd709335f8ef0516cdde
- php81_GPG_keys: '528995BFEDFBA7191D46839EF9BA0ADA31CBD89E 39B641343D8C104B2B146DC3F9C39DC0B9698544'
- php82_GPG_keys: '1198C0117593497A5EC5C199286AF1F9897469DC 39B641343D8C104B2B146DC3F9C39DC0B9698544'
- php83_GPG_keys: '1198C0117593497A5EC5C199286AF1F9897469DC AFD8691FDAEDF03BDF6E460563F15A9B715376CA'
- python310_GPG_keys: 'A035C8C19219BA821ECEA86B64E628F8D684696D'
- python311_GPG_keys: 'A035C8C19219BA821ECEA86B64E628F8D684696D'
- python312_GPG_keys: '7169605F62C751356D054A26A821E680E5FA6305'
- python38_GPG_keys: 'E3FF2839C048B25C084DEBE9B26995E310250568'
- python39_GPG_keys: 'E3FF2839C048B25C084DEBE9B26995E310250568'
\ No newline at end of file
diff --git a/monitor_version_scripts/update_constants.sh b/monitor_version_scripts/update_constants.sh
deleted file mode 100755
index 096df07097..0000000000
--- a/monitor_version_scripts/update_constants.sh
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/bin/bash
-
-Old_constants_FILE="../images/constants.yml"
-Temp_constants_FILE="../images/temp_constants.yml"
-
-mv $Old_constants_FILE $Temp_constants_FILE
-
-constants_FILE="../images/constants.yml"
-cat < $constants_FILE
-variables:
-EOL
-
-Updated_ValuesFILE=Updated_Values.txt
-echo -n "" > $Updated_ValuesFILE
-
-Stack_Updated_values=Stack_Updated_values.txt
-echo -n "" > $Stack_Updated_values
-
-update_constants_file(){
- while IFS= read -r line; do
- # Use yq to parse the YAML line and extract the key and value
- key=$(echo "$line" | yq e 'keys' - | sed 's/^[[:space:]]*-*//' | sed 's/^[[:space:]]*//')
- value=$(echo "$line" | yq e '.[]' -)
- echo "Key: $key, Value: $value,"
-
- keyInVariableGroup=$(echo "$key" | tr '[:lower:]' '[:upper:]')
-
- # Check if the key exists in the environment variables
- if printenv "$keyInVariableGroup" > /dev/null; then
- # If the key exists, get its value
- valueInVariableGroup=$(printenv "$keyInVariableGroup")
- echo "The value of $key is: $valueInVariableGroup"
-
- if [[ "$valueInVariableGroup" = "latest" ]]; then
- old_value=$(yq eval ".variables.$key" $Temp_constants_FILE)
-
- if [ $old_value = $value ]; then
- yq eval ".variables.$key = \"$value\"" -i $constants_FILE
- echo "$key is already upto date"
- else
- # during updating php or python versions we need gpg keys as well during sdk building
- # so if it is not present in Temp_constants_FILE or in variable group, ask for it
-
- if [[ "$1" = "latest_stack_versions.yaml" && ("$key" = *"python"* || "$key" = *"php"*) && "$key" != *"SHA"* ]]; then
- gpgkeys=$(echo "$key" | sed 's/Version.*//')
- gpgkeys+="_GPG_keys"
-
- if ! yq eval ".variables | has(\"$gpgkeys\")" $Temp_constants_FILE; then
- echo "GPG Keys needed for $key" >&2
- exit 1
- fi
- fi
-
- yq eval ".variables.$key = \"$value\"" -i $constants_FILE
- echo "Updated constants.yml with latest value $key=$value"
-
- # This is for all updates (for PR description)
- if [[ "$key" != *"SHA"* ]]; then
- echo "$key=$value" >> "$Stack_Updated_values"
- if [ -n $old_value ]; then
- update_line="Updated $key from $old_value to $value"
- else
- update_line="Added $key to $value"
- fi
- echo "$update_line" >> "$Updated_ValuesFILE"
- fi
- fi
-
- elif [[ "$valueInVariableGroup" = "dont_change" ]]; then
- old_value=$(yq eval ".variables.$key" $Temp_constants_FILE)
- yq eval ".variables.$key = \"$old_value\"" -i $constants_FILE
- echo "constants.yml with old value $key=$old_value"
- else
- old_value=$(yq eval ".variables.$key" $Temp_constants_FILE)
- if [ $old_value = $valueInVariableGroup ]; then
- echo "$key has required value in constants.yml"
- yq eval ".variables.$key = \"$valueInVariableGroup\"" -i $constants_FILE
- else
- if [[ "$1" == "override_constants.yaml" ]]; then
- yq eval ".variables.$key = \"$valueInVariableGroup\"" -i "$1"
- fi
-
- if [[ "$1" == "latest_stack_versions.yaml" && "$key" != *"SHA"* ]]; then
- echo "$key=$valueInVariableGroup" >> "$Stack_Updated_values"
- fi
-
- yq eval ".variables.$key = \"$valueInVariableGroup\"" -i $constants_FILE
- echo "Updated constants.yml with given value $key=$valueInVariableGroup"
-
- # This is for all updates (for PR description)
- if [[ "$key" != *"SHA"* ]]; then
- if [ -n $old_value ]; then
- update_line="Updated $key from $old_value to $value"
- else
- update_line="Added $key to $value"
- fi
- echo "$update_line" >> "$Updated_ValuesFILE"
- fi
- fi
- fi
-
- else
- yq eval ".variables.$key = \"$value\"" -i $constants_FILE
- echo "Added $key = $value in constants.yml"
- fi
-
- done < <(yq e '.[]' "$1")
-}
-
-update_constants_file "override_constants.yaml"
-update_constants_file "latest_stack_versions.yaml"
-
-rm $Temp_constants_FILE
\ No newline at end of file
diff --git a/monitor_version_scripts/update_latest_stack_versions.sh b/monitor_version_scripts/update_latest_stack_versions.sh
deleted file mode 100755
index 163d7975c7..0000000000
--- a/monitor_version_scripts/update_latest_stack_versions.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#read the whole text file, if that particular val exists update it in latest_stack_versions.yaml
-split_lines() {
- while IFS= read -r line; do
- if [[ "$line" == *"="* ]]; then
-
- IFS=',' read -ra keyvalue_pairs <<< "$line"
-
- for keyvalue_pair in "${keyvalue_pairs[@]}"; do
- key="${keyvalue_pair%%=*}"
- value="${keyvalue_pair#*=}"
- echo "key: $key, value: $value"
-
- if yq eval ".variables | has(\"$key\")" latest_stack_versions.yaml | grep -q 'true'; then
- if [[ "$key" != *"python"* ]]; then
- yq eval ".variables.$key = \"$value\"" -i latest_stack_versions.yaml
- else
- #this is only for python, in https://www.python.org/downloads/ all available minor versions are present of a major version
- #so update with latest one
- current_value=$(yq eval ".variables.$key" latest_stack_versions.yaml)
-
- # Update the key in latest_stack_versions.yaml
- if [[ $(printf '%s\n' "$current_value" "$value" | sort -V | tail -n 1) != "$current_value" ]]; then
- yq eval ".variables.$key = \"$value\"" -i latest_stack_versions.yaml
- echo "Updated $key in latest_stack_versions.yaml"
- fi
- fi
- else
- yq eval ".variables.$key = \"$value\"" -i latest_stack_versions.yaml
- echo "Added $key to latest_stack_versions.yaml"
- fi
- done
- fi
- done < "$1"
-}
-
-split_lines "generated_files/node_latest_versions.txt"
-split_lines "generated_files/python_latest_versions.txt"
-split_lines "generated_files/php_latest_versions.txt"
-split_lines "generated_files/dotnet_latest_versions.txt"
-
-yq eval -i 'sort_keys(..)' "latest_stack_versions.yaml"
\ No newline at end of file
diff --git a/monitor_version_scripts/update_versions_to_build.sh b/monitor_version_scripts/update_versions_to_build.sh
deleted file mode 100755
index 2654a77f34..0000000000
--- a/monitor_version_scripts/update_versions_to_build.sh
+++ /dev/null
@@ -1,138 +0,0 @@
-sort_versions_to_build_file(){
- versionsToBuild_File="$1"
- tempfile1=$(mktemp)
- tempfile2=$(mktemp)
-
- while IFS= read -r line || [[ -n "$line" ]]; do
- if [[ "$line" = *"#"* ]]; then
- echo "$line" >> "$tempfile1"
- elif [[ "$line" =~ [^[:space:]] ]]; then
- echo "$line" >> "$tempfile2"
- fi
- done < "$versionsToBuild_File"
-
- sort -V $tempfile2 -o $tempfile2
-
- cat $tempfile2 >> $tempfile1
- cp $tempfile1 $versionsToBuild_File
-}
-
-update_stack_versions_to_build(){
- versionsToBuild_FILE="$1"
- version="$2"
- value="$3"
- key="$4"
-
- version_found=false
- while IFS= read -r line; do
- if [[ "$line" == *"$value"* ]]; then
- version_found=true
- echo "version already exists in sdks"
- break
- fi
- done < "$versionsToBuild_FILE"
-
- if ! $version_found; then
- if [[ "$key" == *"node"* ]]; then
- # Check if the last line is empty
- if [ -n "$(tail -c 1 "$versionsToBuild_FILE")" ]; then
- echo "" >> "$versionsToBuild_FILE"
- fi
- echo -n "$value" >> "$versionsToBuild_FILE"
- updated_files+=("$versionsToBuild_FILE")
- # sort_versions_to_build_file "$versionsToBuild_FILE"
- elif [[ "$key" == *"python"* ]]; then
- gpgkeyname="python${version}_GPG_keys"
- gpgkeysvalue=$(yq eval ".variables.$gpgkeyname" override_constants.yaml)
- if [ -n "$(tail -c 1 "$versionsToBuild_FILE")" ]; then
- echo "" >> "$versionsToBuild_FILE"
- fi
- echo -n "$value, $gpgkeysvalue," >> "$versionsToBuild_FILE"
- updated_files+=("$versionsToBuild_FILE")
- # sort_versions_to_build_file "$versionsToBuild_FILE"
- elif [[ "$key" == *"php"* ]]; then
- gpgkeyname="php${version}_GPG_keys"
- gpgkeysvalue=$(yq eval ".variables.$gpgkeyname" override_constants.yaml)
- phpSHAName="php${version}Version_SHA"
- phpSHAValue=$(yq eval ".variables.$phpSHAName" latest_stack_versions.yaml)
- if [ -n "$(tail -c 1 "$versionsToBuild_FILE")" ]; then
- echo "" >> "$versionsToBuild_FILE"
- fi
- echo -n "$value, $phpSHAValue, $gpgkeysvalue," >> "$versionsToBuild_FILE"
- updated_files+=("$versionsToBuild_FILE")
- # sort_versions_to_build_file "$versionsToBuild_FILE"
- fi
- fi
-}
-
-update_versions_to_build() {
- key="$1"
- value="$2"
- version=${key//[^0-9]/}
- if [[ "$key" == *"node"* ]]; then
- versionsToBuild_Folder=$(cd .. && pwd)/platforms/nodejs/versions
- debianFlavors="node$version"
- elif [[ "$key" == *"python"* ]]; then
- versionsToBuild_Folder=$(cd .. && pwd)/platforms/python/versions
- debianFlavors="python$version"
- elif [[ "$key" == *"php"* ]]; then
- versionsToBuild_Folder=$(cd .. && pwd)/platforms/php/versions
- debianFlavors="php$version"
- elif [[ "$key" == *"NET"* ]]; then
- versionsToBuild_Folder=$(cd .. && pwd)/platforms/dotnet/versions
- debianFlavors="dotnet$version"
- fi
-
- debianFlavors+="DebianFlavors"
- echo "The one which needs to be searched is $debianFlavors"
- alldebianFlavors=$(yq eval ".variables.$debianFlavors" override_constants.yaml)
- echo "$alldebianFlavors"
-
- IFS=','
- for flavor in $alldebianFlavors; do
- echo "$flavor"
- versionsToBuild_FILE="$versionsToBuild_Folder/$flavor/versionsToBuild.txt"
-
- if [[ "$key" = *"NET"* ]]; then
- while IFS= read -r line; do
- echo "Sdk_version line is $line"
- if [[ "$line" = *"$value"* ]]; then
- sdk_version=$(echo "$line" | sed 's/^[^:]*://')
- echo "after processing sdk_version is $sdk_version"
- version_found=false
- while IFS= read -r line_in_versionsToBuild || [[ -n "$line_in_versionsToBuild" ]]; do
- if [[ "$line_in_versionsToBuild" = *"$sdk_version"* ]]; then
- version_found=true
- fi
- done < "$versionsToBuild_FILE"
-
- if ! $version_found; then
- if [ -n "$(tail -c 1 "$versionsToBuild_FILE")" ]; then
- echo "" >> "$versionsToBuild_FILE"
- fi
- echo "$sdk_version" >> "$versionsToBuild_FILE"
- updated_files+=("$versionsToBuild_FILE")
- fi
- fi
- done < "generated_files/dotnet_sdk_latest_versions.txt"
- else
- update_stack_versions_to_build $versionsToBuild_FILE $version $value $key
- fi
- done
-}
-
-file="Stack_Updated_values.txt"
-# for sorting the updated files later
-updated_files=()
-
-# Read the file line by line
-while IFS='=' read -r key value; do
- # Process each key-value pair
- echo "Key: $key, Value: $value"
-
- update_versions_to_build $key $value
-done < "$file"
-
-for element in "${updated_files[@]}"; do
- sort_versions_to_build_file "$element"
-done
\ No newline at end of file
diff --git a/monitor_version_scripts/web_scrap_files/dotnet_versions.py b/monitor_version_scripts/web_scrap_files/dotnet_versions.py
deleted file mode 100644
index 3951aacb3c..0000000000
--- a/monitor_version_scripts/web_scrap_files/dotnet_versions.py
+++ /dev/null
@@ -1,122 +0,0 @@
-from bs4 import BeautifulSoup
-import requests
-
-with open('generated_files/dotnet_version.xml','r') as file:
- content = file.read()
-
-soup = BeautifulSoup(content, 'lxml-xml')
-
-version_table=soup.select('#supported-versions-table .table tr')
-print("Available Dotnet Versions on Web")
-
-def scrape_CheckSum(version,category,type):
- runtime_version="".join([category,version])
- # type is sdk or runtime
- url=f"https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/{type}-{runtime_version}-linux-x64-binaries"
- response=requests.get(url)
- html_content=response.text
-
- # Parse the HTML content with BeautifulSoup
- soup = BeautifulSoup(html_content, 'html.parser')
-
- check_sum=soup.select('#checksum')[0]['value']
- return check_sum
-
-def scrap_sdk_versions(HTML_CONTENT,ASPNET_runtime_version,NET_runtime_version):
- all_version_tags=HTML_CONTENT.select('h3')
- all_description_tags=HTML_CONTENT.select('dl')
- for index,version_tag in enumerate(all_version_tags):
- if "sdk" in version_tag.get('id'):
- sdk_version=(version_tag.text).replace("SDK ","").strip()
- check_sum=scrape_CheckSum(sdk_version,"","sdk")
-
- # This is to check for full_version
- if(len(all_description_tags)>index):
- description_title_tags=all_description_tags[index].select('dt')
-
- for title_tag in description_title_tags:
- if "Full version" in title_tag.text:
- full_version=title_tag.find_next_sibling().text
- sdk_version=full_version
-
- print(f"sdk_version is {sdk_version}, SHA is {check_sum}")
- with open('generated_files/dotnet_sdk_latest_versions.txt', 'a') as version_file:
- version_file.write(f"{ASPNET_runtime_version}:{sdk_version}, {check_sum},\n")
- version_file.write(f"{NET_runtime_version}:{sdk_version}, {check_sum},\n")
-
- break
-
- return
-
-def scrap_runtime_versions(HTML_CONTENT,major_version):
- all_version_tags=HTML_CONTENT.select('h3')
- all_description_tags=HTML_CONTENT.select('dl')
- x=major_version.replace('.','')
- ASPNET_runtime_version=None
- NET_runtime_version=None
- for index,version_tag in enumerate(all_version_tags):
- if ("runtime" in version_tag.get('id')) and not ("desktop" in version_tag.get('id')):
- if ("ASP.NET Core Runtime" in version_tag.text):
- runtime_version=(version_tag.text).replace("ASP.NET Core Runtime ","").strip()
- check_sum=scrape_CheckSum(runtime_version,"aspnetcore-","runtime")
-
- if(len(all_description_tags)>index):
- description_title_tags=all_description_tags[index].select('dt')
-
- for title_tag in description_title_tags:
- if "Full version" in title_tag.text:
- full_version=title_tag.find_next_sibling().text
- runtime_version=full_version
-
- ASPNET_runtime_version=runtime_version
- print(f"ASP_runtime_version is {runtime_version}, SHA is {check_sum}")
- with open('generated_files/dotnet_latest_versions.txt', 'a') as version_file:
- version_file.write(f"ASPNET_CORE_APP_{x}={runtime_version},")
- version_file.write(f"ASPNET_CORE_APP_{x}_SHA={check_sum}\n")
-
- if (".NET Runtime" in version_tag.text):
- runtime_version=(version_tag.text).replace(".NET Runtime ","").strip()
- check_sum=scrape_CheckSum(runtime_version,"","runtime")
-
- if(len(all_description_tags)>index):
- description_title_tags=all_description_tags[index].select('dt')
-
- for title_tag in description_title_tags:
- if "Full version" in title_tag.text:
- full_version=title_tag.find_next_sibling().text
- runtime_version=full_version
-
- NET_runtime_version=runtime_version
- print(f"NET_runtime_version is {runtime_version}, SHA is {check_sum}")
- with open('generated_files/dotnet_latest_versions.txt', 'a') as version_file:
- version_file.write(f"NET_CORE_APP_{x}={runtime_version},")
- version_file.write(f"NET_CORE_APP_{x}_SHA={check_sum}\n")
-
- return [ASPNET_runtime_version,NET_runtime_version]
-
-def scrap_particular_version(major_version,version):
- url=f"https://dotnet.microsoft.com/en-us/download/dotnet/{major_version}"
- response=requests.get(url)
- html_content=response.text
-
- # Parse the HTML content with BeautifulSoup
- soup = BeautifulSoup(html_content, 'html.parser')
-
- version_details=soup.select('.download-wrap .row .col-md-6')
-
- runtime_fullversions=scrap_runtime_versions(version_details[1],major_version)
- scrap_sdk_versions(version_details[0],runtime_fullversions[0],runtime_fullversions[1])
-
- return
-
-for index,each_version in enumerate(version_table):
- if index !=0:
- version=each_version.find_all('td')[3].text
- split_version=version.split('.')
-
- major_version='.'.join(split_version[:2])
-
- print(f"version is {version}")
-
- scrap_particular_version(major_version,version)
-
diff --git a/monitor_version_scripts/web_scrap_files/node_versions.py b/monitor_version_scripts/web_scrap_files/node_versions.py
deleted file mode 100644
index 41a83ba335..0000000000
--- a/monitor_version_scripts/web_scrap_files/node_versions.py
+++ /dev/null
@@ -1,14 +0,0 @@
-import requests
-from datetime import date
-
-response = requests.get('https://endoflife.date/api/nodejs.json')
-json_data = response.json()
-
-todays_date = date.today().strftime("%Y-%m-%d")
-
-for element in json_data:
- if element["eol"] != True and element["eol"] > todays_date:
- version = element["latest"]
- major_version = element["cycle"]
- with open('generated_files/node_latest_versions.txt', 'a') as version_file:
- version_file.write(f"node{major_version}Version={version}\n")
\ No newline at end of file
diff --git a/monitor_version_scripts/web_scrap_files/php_versions.py b/monitor_version_scripts/web_scrap_files/php_versions.py
deleted file mode 100644
index 9abda2eed8..0000000000
--- a/monitor_version_scripts/web_scrap_files/php_versions.py
+++ /dev/null
@@ -1,31 +0,0 @@
-import requests
-from datetime import date
-from bs4 import BeautifulSoup
-
-with open('generated_files/php_version.xml', 'r') as file:
- content = file.read()
-
-soup = BeautifulSoup(content, 'lxml-xml')
-
-def getSHA(php_version):
- elements = soup.find("a", href=f"/distributions/php-{php_version}.tar.xz")
- if elements:
- element_SHA = elements.find_parent().find(class_="sha256").text
- return element_SHA
- else:
- return None
-
-response = requests.get('https://endoflife.date/api/php.json')
-json_data = response.json()
-
-todays_date = date.today().strftime("%Y-%m-%d")
-
-for element in json_data:
- if element["eol"] != True and element["eol"] > todays_date:
- version = element["latest"]
- version_SHA = getSHA(element["latest"])
- if version_SHA:
- x = element["cycle"].replace('.', '')
- with open('generated_files/php_latest_versions.txt', 'a') as version_file:
- version_file.write(f"php{x}Version={version},")
- version_file.write(f"php{x}Version_SHA={version_SHA}\n")
\ No newline at end of file
diff --git a/monitor_version_scripts/web_scrap_files/python_versions.py b/monitor_version_scripts/web_scrap_files/python_versions.py
deleted file mode 100644
index 8bc18389ad..0000000000
--- a/monitor_version_scripts/web_scrap_files/python_versions.py
+++ /dev/null
@@ -1,15 +0,0 @@
-import requests
-from datetime import date
-
-response = requests.get('https://endoflife.date/api/python.json')
-json_data = response.json()
-
-todays_date = date.today().strftime("%Y-%m-%d")
-
-for element in json_data:
- if element["eol"] > todays_date:
- version = element["latest"]
- major_version = element["cycle"].replace('.', '')
-
- with open('generated_files/python_latest_versions.txt', 'a') as version_file:
- version_file.write(f"python{major_version}Version={version}\n")
\ No newline at end of file
diff --git a/platforms/php/buildPhp.sh b/platforms/php/buildPhp.sh
index 9fb5401a52..aaf9b885f7 100755
--- a/platforms/php/buildPhp.sh
+++ b/platforms/php/buildPhp.sh
@@ -9,7 +9,6 @@ set -ex
declare -r REPO_DIR=$( cd $( dirname "$0" ) && cd .. && cd .. && pwd )
source $REPO_DIR/platforms/__common.sh
-# source $REPO_DIR/build/__phpVersions.sh
osFlavor=$1
sdkStorageAccountUrl="$2"
phpType=$3
diff --git a/platforms/php/composer/Dockerfile b/platforms/php/composer/Dockerfile
index a747039039..2e0cf919dc 100644
--- a/platforms/php/composer/Dockerfile
+++ b/platforms/php/composer/Dockerfile
@@ -3,7 +3,6 @@ FROM mcr.microsoft.com/mirror/docker/library/buildpack-deps:${OS_FLAVOR} AS php-
ARG OS_FLAVOR
ENV OS_FLAVOR=$OS_FLAVOR
COPY platforms/php/prereqs /php
-# COPY build/__phpVersions.sh /php/
COPY platforms/php/prereqs/build.sh /tmp/
COPY images/receiveGpgKeys.sh /tmp/receiveGpgKeys.sh
diff --git a/tests/Oryx.Tests.Common/DockerVolume.cs b/tests/Oryx.Tests.Common/DockerVolume.cs
index 6ce0337f83..1ee12ba318 100644
--- a/tests/Oryx.Tests.Common/DockerVolume.cs
+++ b/tests/Oryx.Tests.Common/DockerVolume.cs
@@ -22,8 +22,7 @@ public class DockerVolume
// VSTS variable used to identify if the tests are running in VSTS or not (for example, on dev machines)
public const string VstsAgentNameEnivronmentVariable = "AGENT_NAME";
- // NOTE: Make sure to change the file "vsts\scripts\dockerCleanup.sh" if the name of the following directory
- // is changed.
+ // NOTE: If the name of the following directory is changed, update any Docker cleanup scripts accordingly.
public const string MountedHostDirRootName = "OryxTestsMountedDirs";
public const string ContainerDirRoot = "/oryxtests";
diff --git a/tests/images/build/Dockerfile b/tests/images/build/Dockerfile
deleted file mode 100644
index 9f56673684..0000000000
--- a/tests/images/build/Dockerfile
+++ /dev/null
@@ -1,15 +0,0 @@
-ARG PARENT_IMAGE_BASE
-FROM ${PARENT_IMAGE_BASE}
-
-# Following is a pattern that AppService currently uses
-RUN groupadd -g 1002 oryx_group
-RUN useradd -u 1001 -g oryx_group oryx_user
-RUN chown -R oryx_user:oryx_group /tmp
-
-# Grant permissions to user's home folder as languages like .NET Core and Node
-# try using it.
-RUN mkdir -p /home/oryx_user
-RUN chmod -R 777 /home/oryx_user
-
-# Run the container as the following user
-USER oryx_user
\ No newline at end of file
diff --git a/tests/images/build/gitHubActions.AsBase.Dockerfile b/tests/images/build/gitHubActions.AsBase.Dockerfile
deleted file mode 100644
index 2ff43613dc..0000000000
--- a/tests/images/build/gitHubActions.AsBase.Dockerfile
+++ /dev/null
@@ -1,24 +0,0 @@
-ARG PARENT_IMAGE_BASE
-
-FROM oryxdevmcr.azurecr.io/public/oryx/build:${PARENT_IMAGE_BASE} as oryx-githubactions
-
-FROM scratch
-COPY --from=oryx-githubactions / /
-
-ENV ORYX_PATHS=/opt/oryx:/opt/nodejs/lts/bin:/opt/dotnet/sdks/lts:/opt/python/latest/bin:/opt/php/lts/bin:/opt/php-composer:/opt/yarn/stable/bin:/opt/hugo/lts
-
-ENV DEBIAN_FRONTEND=noninteractive \
- DOTNET_RUNNING_IN_CONTAINER=true \
- DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 \
- DOTNET_USE_POLLING_FILE_WATCHER=true \
- ENABLE_DYNAMIC_INSTALL=true \
- HOME=/home \
- LANG=C.UTF-8 \
- NUGET_PACKAGES=/var/nuget \
- NUGET_XMLDOC_MODE=skip \
- ORIGINAL_PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
- ORYX_SDK_STORAGE_BASE_URL=https://oryxsdksstaging.blob.core.windows.net \
- PATH=$ORYX_PATHS:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/.dotnet/tools:/opt/nodejs/9/bin \
- PYTHONIOENCODING=UTF-8
-
-ENTRYPOINT [ "benv" ]
\ No newline at end of file
diff --git a/tests/images/build/gitHubActions.AsBaseWithEnv.Dockerfile b/tests/images/build/gitHubActions.AsBaseWithEnv.Dockerfile
deleted file mode 100644
index 804f112be5..0000000000
--- a/tests/images/build/gitHubActions.AsBaseWithEnv.Dockerfile
+++ /dev/null
@@ -1,27 +0,0 @@
-ARG PARENT_IMAGE_BASE
-ARG DEBIAN_FLAVOR
-
-FROM oryxdevmcr.azurecr.io/public/oryx/build:${PARENT_IMAGE_BASE} as oryx-githubactions
-
-# set DEBIAN_FLAVOR environment variable in final image
-FROM scratch
-ARG DEBIAN_FLAVOR
-COPY --from=oryx-githubactions / /
-ENV ORYX_PATHS=/opt/oryx:/opt/nodejs/lts/bin:/opt/dotnet/sdks/lts:/opt/python/latest/bin:/opt/php/lts/bin:/opt/php-composer:/opt/yarn/stable/bin:/opt/hugo/lts
-
-ENV DEBIAN_FLAVOR=${DEBIAN_FLAVOR} \
- DEBIAN_FRONTEND=noninteractive \
- DOTNET_RUNNING_IN_CONTAINER=true \
- DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 \
- DOTNET_USE_POLLING_FILE_WATCHER=true \
- ENABLE_DYNAMIC_INSTALL=true \
- HOME=/home \
- LANG=C.UTF-8 \
- NUGET_PACKAGES=/var/nuget \
- NUGET_XMLDOC_MODE=skip \
- ORIGINAL_PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
- ORYX_SDK_STORAGE_BASE_URL=https://oryxsdksstaging.blob.core.windows.net \
- PATH=$ORYX_PATHS:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/.dotnet/tools:/opt/nodejs/9/bin \
- PYTHONIOENCODING=UTF-8
-
-ENTRYPOINT [ "benv" ]
\ No newline at end of file
diff --git a/tests/images/build/gitHubActions.Dockerfile b/tests/images/build/gitHubActions.Dockerfile
deleted file mode 100644
index 9f56673684..0000000000
--- a/tests/images/build/gitHubActions.Dockerfile
+++ /dev/null
@@ -1,15 +0,0 @@
-ARG PARENT_IMAGE_BASE
-FROM ${PARENT_IMAGE_BASE}
-
-# Following is a pattern that AppService currently uses
-RUN groupadd -g 1002 oryx_group
-RUN useradd -u 1001 -g oryx_group oryx_user
-RUN chown -R oryx_user:oryx_group /tmp
-
-# Grant permissions to user's home folder as languages like .NET Core and Node
-# try using it.
-RUN mkdir -p /home/oryx_user
-RUN chmod -R 777 /home/oryx_user
-
-# Run the container as the following user
-USER oryx_user
\ No newline at end of file
diff --git a/tests/testRepo.sh b/tests/testRepo.sh
deleted file mode 100644
index f8f65503cf..0000000000
--- a/tests/testRepo.sh
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/usr/bin/env bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-
-# Description:
-# Run from root of a repo to build and run as a containerized app.
-# By default publish host port 8080 mapped to container port 8080.
-# If available, `build.env` specifies build-time env vars.
-# $5 specifies a user-specified start script.
-#
-# Example:
-# # build and run a Python app listening on host port 88
-# ./test-repo.sh ./app 88 8088 python
-
-ORYX_VERSION=latest
-NODE_VERSION=10.14
-PYTHON_VERSION=3.7
-DOTNETCORE_VERSION=2.2
-
-IMAGE_HOST=docker.io
-IMAGE_USER=oryxprod
-
-BUILD_IMAGE="${IMAGE_HOST}/${IMAGE_USER}/build:${ORYX_VERSION}"
-RUN_IMAGE_NODEJS="${IMAGE_HOST}/${IMAGE_USER}/node-${NODE_VERSION}:${ORYX_VERSION}"
-RUN_IMAGE_PYTHON="${IMAGE_HOST}/${IMAGE_USER}/python-${PYTHON_VERSION}:${ORYX_VERSION}"
-RUN_IMAGE_DOTNETCORE="${IMAGE_HOST}/${IMAGE_USER}/dotnetcore-${DOTNETCORE_VERSION}:${ORYX_VERSION}"
-
-LOGFILE_PATH="./test-repo.log"
-
-function test-repo() {
- local repo_path=${1:-"$(pwd)"}
- local host_port=${2:-"8080"}
- local container_port=${3:-"8080"}
- local runtime=${4:-"nodejs"}
- local start_script=${5:-""}
-
- DOCKER_FLAGS=''
- if [[ -e "${repo_path}/.env" ]]; then
- DOCKER_FLAGS+="--env-file ${repo_path}/.env"
- fi
-
- # build
- docker pull ${BUILD_IMAGE}
- docker run --interactive --tty \
- --volume "$repo_path":/repo \
- ${DOCKER_FLAGS} \
- "$BUILD_IMAGE" \
- sh -c "oryx build --log-file ${LOGFILE_PATH} /repo"
-
- # run
- case $runtime in
- nodejs)
- RUN_IMAGE="${RUN_IMAGE_NODEJS}"
- ;;
- python)
- RUN_IMAGE="${RUN_IMAGE_PYTHON}"
- ;;
- dotnetcore)
- RUN_IMAGE="${RUN_IMAGE_DOTNETCORE}"
- ;;
- esac
-
- TEST_CONTAINER_NAME=oryx-test-repo
- cid=$(docker container ls \
- --all --filter "name=${TEST_CONTAINER_NAME}" --quiet)
- if [[ -n "$cid" ]]; then docker stop $cid; docker rm $cid; fi
-
- docker pull ${RUN_IMAGE}
- docker run --detach \
- --name ${TEST_CONTAINER_NAME} \
- --volume $(pwd):/app \
- --publish ${host_port}:${container_port} \
- --env PORT=${container_port} \
- ${DOCKER_FLAGS} \
- "$RUN_IMAGE" \
- sh -c "cd /app && oryx && /app/run.sh"
-}
-
-test-repo $@
\ No newline at end of file
diff --git a/vsts/Readme.md b/vsts/Readme.md
deleted file mode 100644
index b2361a804d..0000000000
--- a/vsts/Readme.md
+++ /dev/null
@@ -1,20 +0,0 @@
-The content in this folder is specific to any VSTS related stuff.
-
-## Pipelines
-They represent the build pipelines for this repository.
-- 'validation.yml':
- This is used for validating branches for which pull requests were sent.
- In this pipeline both build and runtime images are built and tested but they are NOT pushed.
-
-- 'nightly.yml':
- Pipeline which builds and tests build and runtime images every night.
-
-- 'ci.yml':
- Pipeline which builds, tests and pushes build images and runtime images.
- This pipeline, by default, gets triggered for check-ins into 'main' branch.
- Also it has a scheduled build for releasing signed binaries to images on Saturday mornings.
-### PlatformBinaries
-The pipelines for each platform to build and publish platform binaries to Azure Blob Storage.
-
-## Scripts
-This folder contains scripts that are used in VSTS pipelines.
diff --git a/vsts/nugetpackages.signproj b/vsts/nugetpackages.signproj
deleted file mode 100644
index 2a5a311122..0000000000
--- a/vsts/nugetpackages.signproj
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
- $(MSBuildThisFileDirectory)..
- $(RepoRoot)\artifacts\packages
- $(RepoRoot)\build\FinalPublicKey.snk
-
-
-
-
-
-
- NuGet
-
-
-
-
\ No newline at end of file
diff --git a/vsts/pipelines/PlatformBinaries/dotnetcore.yml b/vsts/pipelines/PlatformBinaries/dotnetcore.yml
deleted file mode 100644
index 793826cd1c..0000000000
--- a/vsts/pipelines/PlatformBinaries/dotnetcore.yml
+++ /dev/null
@@ -1,77 +0,0 @@
-variables:
- - group: Oryx
-
-parameters:
-- name: destinationStorageAccountName
- displayName: Destination Storage Account Name
- type: string
- default: oryxsdksstaging
-
-stages:
-- stage: Build
- jobs:
- - job: DotNetCore_Bookworm
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'dotnet'
- debianFlavor: 'bookworm'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
- - job: DotNetCore_Bullseye
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'dotnet'
- debianFlavor: 'bullseye'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
- - job: DotNetCore_Buster
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'dotnet'
- debianFlavor: 'buster'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
-- stage: Release
- dependsOn: Build
- jobs:
- - job: Publish_Platform_Binaries
- timeoutInMinutes: 250
- displayName: Publish to Azure Blob Storage
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesReleaseTemplate.yml
- parameters:
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
-trigger:
- batch: true
- branches:
- include:
- - main
- paths:
- exclude:
- - /*
- include:
- - platforms/dotnet
- - vsts/PlatformBinaries/dotnetcore.yml
\ No newline at end of file
diff --git a/vsts/pipelines/PlatformBinaries/golang.yml b/vsts/pipelines/PlatformBinaries/golang.yml
deleted file mode 100644
index 4fc974d8a4..0000000000
--- a/vsts/pipelines/PlatformBinaries/golang.yml
+++ /dev/null
@@ -1,90 +0,0 @@
-variables:
- - group: Oryx
-
-parameters:
-- name: destinationStorageAccountName
- displayName: Destination Storage Account Name
- type: string
- default: oryxsdksstaging
-
-stages:
-- stage: Build
- jobs:
- - job: Golang_Bullseye
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'golang'
- debianFlavor: 'bullseye'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
- - job: Golang_Buster
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'golang'
- debianFlavor: 'buster'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
- - job: Golang_Stretch
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'golang'
- debianFlavor: 'stretch'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
- - job: Golang_Ubuntu
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'golang'
- debianFlavor: 'focal-scm'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
-- stage: Release
- dependsOn: Build
- jobs:
- - job: Publish_Platform_Binaries
- timeoutInMinutes: 250
- displayName: Publish to Azure Blob Storage
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesReleaseTemplate.yml
- parameters:
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
-trigger:
- batch: true
- branches:
- include:
- - main
- paths:
- exclude:
- - /*
- include:
- - platforms/golang
- - vsts/PlatformBinaries/golang.yml
\ No newline at end of file
diff --git a/vsts/pipelines/PlatformBinaries/java.yml b/vsts/pipelines/PlatformBinaries/java.yml
deleted file mode 100644
index 01c262e715..0000000000
--- a/vsts/pipelines/PlatformBinaries/java.yml
+++ /dev/null
@@ -1,142 +0,0 @@
-variables:
- - group: Oryx
-
-parameters:
-- name: destinationStorageAccountName
- displayName: Destination Storage Account Name
- type: string
- default: oryxsdksstaging
-
-stages:
-- stage: Build
- jobs:
- - job: Java_Bullseye
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'java'
- debianFlavor: 'bullseye'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
- - job: Java_Buster
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'java'
- debianFlavor: 'buster'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
- - job: Java_Stretch
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'java'
- debianFlavor: 'stretch'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
- - job: Java_Ubuntu
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'java'
- debianFlavor: 'focal-scm'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
- - job: Maven_Bullseye
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'maven'
- debianFlavor: 'bullseye'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
- - job: Maven_Buster
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'maven'
- debianFlavor: 'buster'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
- - job: Maven_Stretch
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'maven'
- debianFlavor: 'stretch'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
- - job: Maven_Ubuntu
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'maven'
- debianFlavor: 'focal-scm'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
-- stage: Release
- dependsOn: Build
- jobs:
- - job: Publish_Platform_Binaries
- timeoutInMinutes: 250
- displayName: Publish to Azure Blob Storage
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesReleaseTemplate.yml
- parameters:
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
-trigger:
- batch: true
- branches:
- include:
- - main
- paths:
- exclude:
- - /*
- include:
- - platforms/java
- - vsts/PlatformBinaries/java.yml
\ No newline at end of file
diff --git a/vsts/pipelines/PlatformBinaries/node.yml b/vsts/pipelines/PlatformBinaries/node.yml
deleted file mode 100644
index 906b086d40..0000000000
--- a/vsts/pipelines/PlatformBinaries/node.yml
+++ /dev/null
@@ -1,103 +0,0 @@
-variables:
- - group: Oryx
-
-parameters:
-- name: destinationStorageAccountName
- displayName: Destination Storage Account Name
- type: string
- default: oryxsdksstaging
-
-stages:
-- stage: Build
- jobs:
- - job: Node_Bookworm
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'nodejs'
- debianFlavor: 'bookworm'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
- - job: Node_Bullseye
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'nodejs'
- debianFlavor: 'bullseye'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
- - job: Node_Buster
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'nodejs'
- debianFlavor: 'buster'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
- - job: Node_Stretch
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'nodejs'
- debianFlavor: 'stretch'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
- - job: Node_Ubuntu
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'nodejs'
- debianFlavor: 'focal-scm'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
-- stage: Release
- dependsOn: Build
- jobs:
- - job: Publish_Platform_Binaries
- timeoutInMinutes: 250
- displayName: Publish to Azure Blob Storage
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesReleaseTemplate.yml
- parameters:
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
-trigger:
- batch: true
- branches:
- include:
- - main
- paths:
- exclude:
- - /*
- include:
- - platforms/nodejs
- - vsts/PlatformBinaries/node.yml
\ No newline at end of file
diff --git a/vsts/pipelines/PlatformBinaries/php.yml b/vsts/pipelines/PlatformBinaries/php.yml
deleted file mode 100644
index 27194d8526..0000000000
--- a/vsts/pipelines/PlatformBinaries/php.yml
+++ /dev/null
@@ -1,78 +0,0 @@
-variables:
- - group: Oryx
-
-parameters:
-- name: destinationStorageAccountName
- displayName: Destination Storage Account Name
- type: string
- default: oryxsdksstaging
-
-stages:
-- stage: Build
- jobs:
- - job: Php_Bookworm_SDK
- timeoutInMinutes: 1440
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'php'
- debianFlavor: 'bookworm'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
- - job: Php_Bullseye_SDK
- timeoutInMinutes: 1440
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'php'
- debianFlavor: 'bullseye'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
-
- - job: Php_Buster_SDK
- timeoutInMinutes: 1440
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'php'
- debianFlavor: 'buster'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
-- stage: Release
- dependsOn: Build
- jobs:
- - job: Publish_Platform_Binaries
- timeoutInMinutes: 250
- displayName: Publish to Azure Blob Storage
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesReleaseTemplate.yml
- parameters:
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
-trigger:
- batch: true
- branches:
- include:
- - main
- paths:
- exclude:
- - /*
- include:
- - platforms/php
- - vsts/PlatformBinaries/php.yml
\ No newline at end of file
diff --git a/vsts/pipelines/PlatformBinaries/python.yml b/vsts/pipelines/PlatformBinaries/python.yml
deleted file mode 100644
index 48378035cf..0000000000
--- a/vsts/pipelines/PlatformBinaries/python.yml
+++ /dev/null
@@ -1,103 +0,0 @@
-variables:
- - group: Oryx
-
-parameters:
-- name: destinationStorageAccountName
- displayName: Destination Storage Account Name
- type: string
- default: oryxsdksstaging
-
-stages:
-- stage: Build
- jobs:
- - job: Python_Bookworm_SDK
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'python'
- debianFlavor: 'bookworm'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
- - job: Python_Bullseye_SDK
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'python'
- debianFlavor: 'bullseye'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
- - job: Python_Buster_SDK
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'python'
- debianFlavor: 'buster'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
- - job: Python_Stretch_SDK
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'python'
- debianFlavor: 'stretch'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
- - job: Python_Ubuntu_SDK
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'python'
- debianFlavor: 'focal-scm'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
-- stage: Release
- dependsOn: Build
- jobs:
- - job: Publish_Platform_Binaries
- timeoutInMinutes: 250
- displayName: Publish to Azure Blob Storage
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesReleaseTemplate.yml
- parameters:
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
-trigger:
- batch: true
- branches:
- include:
- - main
- paths:
- exclude:
- - /*
- include:
- - platforms/python
- - vsts/PlatformBinaries/python.yml
\ No newline at end of file
diff --git a/vsts/pipelines/PlatformBinaries/ruby.yml b/vsts/pipelines/PlatformBinaries/ruby.yml
deleted file mode 100644
index 8405f9d8bb..0000000000
--- a/vsts/pipelines/PlatformBinaries/ruby.yml
+++ /dev/null
@@ -1,90 +0,0 @@
-variables:
- - group: Oryx
-
-parameters:
-- name: destinationStorageAccountName
- displayName: Destination Storage Account Name
- type: string
- default: oryxsdksstaging
-
-stages:
-- stage: Build
- jobs:
- - job: Ruby_Bullseye
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'ruby'
- debianFlavor: 'bullseye'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
- - job: Ruby_Buster
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'ruby'
- debianFlavor: 'buster'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
- - job: Ruby_Stretch
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'ruby'
- debianFlavor: 'stretch'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
- - job: Ruby_Ubuntu
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesTemplate.yml
- parameters:
- platformName: 'ruby'
- debianFlavor: 'focal-scm'
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
-- stage: Release
- dependsOn: Build
- jobs:
- - job: Publish_Platform_Binaries
- timeoutInMinutes: 250
- displayName: Publish to Azure Blob Storage
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_platformBinariesReleaseTemplate.yml
- parameters:
- destinationSdkStorageAccountName: '${{ parameters.destinationStorageAccountName }}'
-
-trigger:
- batch: true
- branches:
- include:
- - main
- paths:
- exclude:
- - /*
- include:
- - platforms/ruby
- - vsts/PlatformBinaries/ruby.yml
\ No newline at end of file
diff --git a/vsts/pipelines/agentCleanUp.yml b/vsts/pipelines/agentCleanUp.yml
deleted file mode 100644
index 379f067a0e..0000000000
--- a/vsts/pipelines/agentCleanUp.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-parameters:
-- name: poolName
- displayName: Pool Name
- type: string
- default: Azure Pipelines
- values:
- - Azure Pipelines
-- name: agentName
- displayName: Agent Name
- type: string
-
-variables:
- skipComponentGovernanceDetection: true
-
-stages:
-- stage: CleanAgents
- displayName: Clean Oryx Agents
- jobs:
- - template: templates/_agentCleanUpJobTemplate.yml
- parameters:
- agentName: ${{ parameters.agentName }}
- poolName: ${{ parameters.poolName }}
-
-# trigger is set using vsts UI, cleanup build will run every sundays 10 PM PST/PDT
-trigger: none
\ No newline at end of file
diff --git a/vsts/pipelines/baseImages/dotnetcore.yml b/vsts/pipelines/baseImages/dotnetcore.yml
deleted file mode 100644
index e2022cfc13..0000000000
--- a/vsts/pipelines/baseImages/dotnetcore.yml
+++ /dev/null
@@ -1,54 +0,0 @@
-variables:
-- group: Oryx
-- name: ascName
- value: oryx-new-service-connection
-- name: acrName
- value: oryxdevmcr.azurecr.io
-- name: skipComponentGovernanceDetection
- value: true
-- name: Packaging.EnableSBOMSigning
- value: true
-
-jobs:
-- template: ../templates/_buildimageBasesJobTemplate.yml
- parameters:
- displayName: Build DotNetCore runtime buster base images
- scriptPath: ./build/buildRunTimeImageBases.sh
- imageDir: dotnetcore
- imageDebianFlavor: buster
- artifactsFileName: dotnetcore-runtimeimage-bases-buster.txt
- jobName: Build_DotNetCore_BaseImage_Buster
-
-- template: ../templates/_buildimageBasesJobTemplate.yml
- parameters:
- displayName: Build DotNetCore runtime bullseye base images
- scriptPath: ./build/buildRunTimeImageBases.sh
- imageDir: dotnetcore
- imageDebianFlavor: bullseye
- artifactsFileName: dotnetcore-runtimeimage-bases-bullseye.txt
- jobName: Build_DotNetCore_BaseImage_Bullseye
-
-- template: ../templates/_buildimageBasesJobTemplate.yml
- parameters:
- displayName: Build DotNetCore runtime bookworm base images
- scriptPath: ./build/buildRunTimeImageBases.sh
- imageDir: dotnetcore
- imageDebianFlavor: bookworm
- artifactsFileName: dotnetcore-runtimeimage-bases-bookworm.txt
- jobName: Build_DotNetCore_BaseImage_Bookworm
-
-- job: Release_DotNetCoreRuntimeBaseImage
- dependsOn:
- - Build_DotNetCore_BaseImage_Buster
- - Build_DotNetCore_BaseImage_Bullseye
- - Build_DotNetCore_BaseImage_Bookworm
- displayName: Push images to MCR
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_releaseBaseImagesStepTemplate.yml
- parameters:
- baseImageName: 'dotnetcore'
\ No newline at end of file
diff --git a/vsts/pipelines/baseImages/node.yml b/vsts/pipelines/baseImages/node.yml
deleted file mode 100644
index d89ce545ba..0000000000
--- a/vsts/pipelines/baseImages/node.yml
+++ /dev/null
@@ -1,52 +0,0 @@
-variables:
-- group: Oryx
-- name: ascName
- value: oryx-new-service-connection
-- name: acrName
- value: oryxdevmcr.azurecr.io
-- name: skipComponentGovernanceDetection
- value: true
-- name: Packaging.EnableSBOMSigning
- value: true
-
-jobs:
-- template: ../templates/_buildimageBasesJobTemplate.yml
- parameters:
- displayName: Build Node runtime buster based images
- scriptPath: ./build/buildRunTimeImageBases.sh
- imageDir: node
- imageDebianFlavor: buster
- artifactsFileName: node-runtimeimage-bases-buster.txt
- jobName: Build_Buster_BaseImages
-
-- template: ../templates/_buildimageBasesJobTemplate.yml
- parameters:
- displayName: Build Node runtime bullseye base images
- scriptPath: ./build/buildRunTimeImageBases.sh
- imageDir: node
- imageDebianFlavor: bullseye
- artifactsFileName: node-runtimeimage-bases-bullseye.txt
- jobName: Build_Bullseye_BaseImages
-
-- template: ../templates/_buildimageBasesJobTemplate.yml
- parameters:
- displayName: Build Node runtime bookworm base images
- scriptPath: ./build/buildRunTimeImageBases.sh
- imageDir: node
- imageDebianFlavor: bookworm
- artifactsFileName: node-runtimeimage-bases-bookworm.txt
- jobName: Build_Bookworm_BaseImages
-
-- job: Release_NodeRuntimeBaseImage
- dependsOn:
- - Build_Buster_BaseImages
- displayName: Push images to MCR
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_releaseBaseImagesStepTemplate.yml
- parameters:
- baseImageName: 'node'
diff --git a/vsts/pipelines/baseImages/php-fpm.yml b/vsts/pipelines/baseImages/php-fpm.yml
deleted file mode 100644
index f2bf16197a..0000000000
--- a/vsts/pipelines/baseImages/php-fpm.yml
+++ /dev/null
@@ -1,54 +0,0 @@
-variables:
-- group: Oryx
-- name: ascName
- value: oryx-new-service-connection
-- name: acrName
- value: oryxdevmcr.azurecr.io
-- name: skipComponentGovernanceDetection
- value: true
-- name: Packaging.EnableSBOMSigning
- value: true
-
-jobs:
-- template: ../templates/_buildimageBasesJobTemplate.yml
- parameters:
- displayName: Build php buster runtime base images
- scriptPath: ./build/buildRunTimeImageBases.sh
- imageDir: php-fpm
- imageDebianFlavor: buster
- artifactsFileName: php-fpm-runtimeimage-bases-buster.txt
- jobName: Build_PHP_FPM_Buster_Base
-
-- template: ../templates/_buildimageBasesJobTemplate.yml
- parameters:
- displayName: Build php bullseye runtime base images
- scriptPath: ./build/buildRunTimeImageBases.sh
- imageDir: php-fpm
- imageDebianFlavor: bullseye
- artifactsFileName: php-fpm-runtimeimage-bases-bullseye.txt
- jobName: Build_PHP_Fpm_Bullseye_Base
-
-- template: ../templates/_buildimageBasesJobTemplate.yml
- parameters:
- displayName: Build php bookworm runtime base images
- scriptPath: ./build/buildRunTimeImageBases.sh
- imageDir: php-fpm
- imageDebianFlavor: bookworm
- artifactsFileName: php-fpm-runtimeimage-bases-bookworm.txt
- jobName: Build_PHP_Fpm_Bookworm_Base
-
-- job: Release_PhpRuntimeBaseImage
- dependsOn:
- - Build_Php_Fpm_Buster_Base
- - Build_PHP_Fpm_Bullseye_Base
- - Build_PHP_Fpm_Bookworm_Base
- displayName: Push images to MCR
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_releaseBaseImagesStepTemplate.yml
- parameters:
- baseImageName: 'php-fpm'
diff --git a/vsts/pipelines/baseImages/php.yml b/vsts/pipelines/baseImages/php.yml
deleted file mode 100644
index 78944bd174..0000000000
--- a/vsts/pipelines/baseImages/php.yml
+++ /dev/null
@@ -1,54 +0,0 @@
-variables:
-- group: Oryx
-- name: ascName
- value: oryx-new-service-connection
-- name: acrName
- value: oryxdevmcr.azurecr.io
-- name: skipComponentGovernanceDetection
- value: true
-- name: Packaging.EnableSBOMSigning
- value: true
-
-jobs:
-- template: ../templates/_buildimageBasesJobTemplate.yml
- parameters:
- displayName: Build php runtime buster base images
- scriptPath: ./build/buildRunTimeImageBases.sh
- imageDir: php
- imageDebianFlavor: buster
- artifactsFileName: php-runtimeimage-bases-buster.txt
- jobName: Build_Buster_BaseImages
-
-- template: ../templates/_buildimageBasesJobTemplate.yml
- parameters:
- displayName: Build php runtime bullseye base images
- scriptPath: ./build/buildRunTimeImageBases.sh
- imageDir: php
- imageDebianFlavor: bullseye
- artifactsFileName: php-runtimeimage-bases-bullseye.txt
- jobName: Build_Bullseye_BaseImages
-
-- template: ../templates/_buildimageBasesJobTemplate.yml
- parameters:
- displayName: Build php runtime bookworm base images
- scriptPath: ./build/buildRunTimeImageBases.sh
- imageDir: php
- imageDebianFlavor: bookworm
- artifactsFileName: php-runtimeimage-bases-bookworm.txt
- jobName: Build_Bookworm_BaseImages
-
-- job: Release_PhpRuntimeBaseImage
- dependsOn:
- - Build_Buster_BaseImages
- - Build_Bullseye_BaseImages
- - Build_Bookworm_BaseImages
- displayName: Push images to MCR
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_releaseBaseImagesStepTemplate.yml
- parameters:
- baseImageName: 'php'
diff --git a/vsts/pipelines/baseImages/python.yml b/vsts/pipelines/baseImages/python.yml
deleted file mode 100644
index 1d29aba81f..0000000000
--- a/vsts/pipelines/baseImages/python.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-variables:
-- group: Oryx
-- name: ascName
- value: oryx-new-service-connection
-- name: acrName
- value: oryxdevmcr.azurecr.io
-- name: skipComponentGovernanceDetection
- value: true
-- name: Packaging.EnableSBOMSigning
- value: true
-
-jobs:
-- template: ../templates/_buildimageBasesJobTemplate.yml
- parameters:
- displayName: Build python runtime bullseye base images
- scriptPath: ./build/buildRunTimeImageBases.sh
- imageDir: python
- imageDebianFlavor: bullseye
- artifactsFileName: python-runtimeimage-bases-bullseye.txt
- jobName: Build_Bullseye_BaseImages
-
-- template: ../templates/_buildimageBasesJobTemplate.yml
- parameters:
- displayName: Build python runtime bookworm base images
- scriptPath: ./build/buildRunTimeImageBases.sh
- imageDir: python
- imageDebianFlavor: bookworm
- artifactsFileName: python-runtimeimage-bases-bookworm.txt
- jobName: Build_Bookworm_BaseImages
-
-- job: Release_PythonRuntimeBaseImage
- dependsOn:
- - Build_Bullseye_BaseImages
- - Build_Bookworm_BaseImages
- displayName: Push images to MCR
- timeoutInMinutes: 250
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: ../templates/_releaseBaseImagesStepTemplate.yml
- parameters:
- baseImageName: 'python'
diff --git a/vsts/pipelines/ci-detector.yml b/vsts/pipelines/ci-detector.yml
deleted file mode 100644
index 39220d3c54..0000000000
--- a/vsts/pipelines/ci-detector.yml
+++ /dev/null
@@ -1,115 +0,0 @@
-resources:
-- repo: self
-
-variables:
-- group: Oryx
-
-stages:
- - stage: ValidatePipeline
- displayName: Validate Pipeline
- jobs:
- - job: ValidatePipeline
- displayName: Validate pipeline
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- skipComponentGovernanceDetection: true
- steps:
- - task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
- displayName: 'Component Detection - OSS Compliance'
- inputs:
- ignoreDirectories: '$(Build.SourcesDirectory)/tests'
-
- - script: |
- set -x
- if [ "$(Build.Reason)" != "Manual" ]; then
- echo
- echo "Invalid configuration."
- echo "Build should be Manual"
- exit 1
- fi
- if [ "$(Build.DefinitionName)" != "Oryx-Detector-CI" ]; then
- echo
- echo "Invalid configuration."
- echo "Build definition name should be Oryx-Detector-CI."
- exit 1
- fi
- if [[ "$(Build.SourceBranch)" != "refs/heads/main" ]] \
- && [[ "$(Build.SourceBranch)" != refs/heads/patch* ]] \
- && [[ "$(Build.SourceBranch)" != refs/heads/exp* ]]; then
- echo
- echo "Invalid configuration."
- echo 'Only 'main', 'patch/*' and 'exp/*' branches are allowed.'
- exit 1
- fi
- displayName: 'Validate pipeline run'
-
- - stage: Build
- displayName: Build Stage
- dependsOn: ValidatePipeline
- jobs:
- - job: Job_SignBinariesAndPackages
- displayName: Sign Detector Binaries and NuGet packages
- pool:
- name: VSEngSS-MicroBuild2022-1ES
- demands:
- - msbuild
- - visualstudio
- variables:
- skipComponentGovernanceDetection: true
- steps:
- - template: templates/_signBinaryDetector.yml
- - job: Job_BuildAndTestDetector
- displayName: Build and test detector
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - template: templates/_buildTemplateDetector.yml
-
- - stage: Release
- displayName: Release Stage
- dependsOn: Build
- jobs:
- - job: Release_GitHub
- displayName: Create GitHub release
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- skipComponentGovernanceDetection: true
- steps:
- - checkout: self
- clean: true
- - task: DownloadPipelineArtifact@2
- displayName: 'Download artifacts to publish to release'
- inputs:
- artifactName: 'detector_signed'
- path: $(Build.ArtifactStagingDirectory)/detector_signed
- - bash: |
- . build/detector/__detectorNugetPackagesVersions.sh
- echo "Setting release name to '$releaseName'..."
- echo "##vso[task.setvariable variable=RELEASE_NAME;]$VERSION"
- displayName: 'Set relase name environment variable'
- - bash: |
- dotnet nuget push \
- $(Build.ArtifactStagingDirectory)/detector_signed/packages/*.nupkg \
- -s https://api.nuget.org/v3/index.json \
- --api-key $NUGETORG_API_KEY
- env:
- # Map the value that we got from keyvault/variablegroup to environment variable
- NUGETORG_API_KEY: $(NUGETORG-API-KEY)
- displayName: 'Push nuget packages to nuget.org'
- - task: GitHubRelease@0
- displayName: 'GitHub release (create)'
- inputs:
- gitHubConnection: 'Oryx-GitHub'
- repositoryName: microsoft/oryx
- tagSource: manual
- tag: '$(RELEASE_NAME)'
- assets: $(Build.ArtifactStagingDirectory)/detector_signed/packages/*.nupkg
-trigger: none
\ No newline at end of file
diff --git a/vsts/pipelines/ci.yml b/vsts/pipelines/ci.yml
deleted file mode 100644
index fdab6281c9..0000000000
--- a/vsts/pipelines/ci.yml
+++ /dev/null
@@ -1,285 +0,0 @@
-parameters:
- - name: storageAccountUrl
- displayName: SDK storage account URL for production images and testing
- type: string
- default: https://oryx-cdn.microsoft.io
- values:
- - https://oryx-cdn.microsoft.io
- - name: buildImages
- type: object
- default:
- -
- key: Latest
- value: latest
- -
- key: Jamstack
- value: jamstack
- -
- key: GithubActions
- value: githubactions
- -
- key: Full
- value: full
- -
- key: Cli
- value: cli-stretch
- -
- key: CliBuster
- value: cli-buster
- -
- key: CliBullseye
- value: cli-bullseye
- -
- key: CliBuilderBullseye
- value: cli-builder-bullseye
- -
- key: Buildpack
- value: buildpack
-
-resources:
-- repo: self
-
-variables:
- group: Oryx
- Packaging.EnableSBOMSigning: true
-
-stages:
- - stage: CreateReleaseTag
- jobs:
- - job: CreateReleaseTag
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- skipComponentGovernanceDetection: true
- steps:
- - checkout: self
- clean: true
-
- - task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
- displayName: 'Component Detection - OSS Compliance'
- inputs:
- ignoreDirectories: '$(Build.SourcesDirectory)/tests'
-
- - task: ShellScript@2
- inputs:
- scriptPath: ./vsts/scripts/createReleaseTag.sh
- displayName: 'Create release tag'
- - script: |
- set -ex
- sourcesArtifactsDir="$(Build.SourcesDirectory)/artifacts"
- mkdir -p "$sourcesArtifactsDir"
- echo "$(RELEASE_TAG_NAME)" > "$sourcesArtifactsDir/releaseTag.txt"
- displayName: 'Write release tag name to an artifact file'
- - task: PublishPipelineArtifact@1
- displayName: 'Publish artifact file having the release tag name'
- inputs:
- targetPath: $(Build.SourcesDirectory)/artifacts/releaseTag.txt
- artifactName: releaseTag
-
- - stage: Build
- displayName: Build Stage
- jobs:
- - job: Job_Security
- displayName: Security
- condition: succeeded()
- pool:
- name: Azure Pipelines
- vmImage: windows-2022
- steps:
- - template: templates/_securityChecks.yml
-
- - job: Job_SignBinaries
- displayName: Sign Oryx Binaries
- pool:
- name: VSEngSS-MicroBuild2022-1ES
- demands:
- - msbuild
- - visualstudio
- variables:
- SignType: 'test'
- skipComponentGovernanceDetection: true
- steps:
- - task: DownloadPipelineArtifact@2
- displayName: 'Download artifact file having release tag name'
- inputs:
- targetPath: $(Build.SourcesDirectory)/artifacts/releaseTag
- artifactName: 'releaseTag'
- - powershell: |
- $file = "$env:BUILD_SOURCESDIRECTORY\artifacts\releaseTag\releaseTag.txt"
- if (Test-Path $file) {
- $tagName = [IO.File]::ReadAllText($file)
- Write-Host "Content is $tagName"
- echo "##vso[task.setvariable variable=RELEASE_TAG_NAME;]$tagName"
- }
- displayName: 'Set release tag name as environment variable'
- - template: templates/_signBinary.yml
-
- # Job loop for BuildImages
- - ${{ each buildImage in parameters.buildImages }}:
- - job: Job_BuildImage_${{ buildImage.key }}
- displayName: 'Build & Test ${{ buildImage.key }} Build image'
- #dependsOn: Job_SignBinaries
- condition: succeeded()
- timeoutInMinutes: 480
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- SignType: $[ dependencies.Job_SignBinaries.outputs['setSignTypeVariable.SignType'] ] # map in the signtype variable
- skipComponentGovernanceDetection: true
-
- steps:
- - script: |
- echo "##vso[task.setvariable variable=BuildBuildImages;]true"
- echo "##vso[task.setvariable variable=TestBuildImages;]true"
- echo "##vso[task.setvariable variable=BuildRuntimeImages;]false"
- echo "##vso[task.setvariable variable=TestRuntimeImages;]false"
- echo "##vso[task.setvariable variable=PushBuildImages;]true"
- echo "##vso[task.setvariable variable=PushRuntimeImages;]false"
- echo "##vso[task.setvariable variable=EmbedBuildContextInImages;]true"
- echo "##vso[task.setvariable variable=storageAccountUrl;]${{ parameters.storageAccountUrl }}"
- if [[ "${{ buildImage.value }}" =~ "cli-builder" ]]; then
- echo "##vso[task.setvariable variable=PushBuilderImages;]true"
- fi
- displayName: 'Set variables'
-
- - template: templates/_setReleaseTag.yml
-
- - template: templates/_buildTemplate.yml
- parameters:
- imageType: ${{ buildImage.value }}
-
- - job: Job_Buster_RuntimeImages
- displayName: Build and Test Buster Runtime Images
- dependsOn: Job_SignBinaries
- condition: succeeded()
- timeoutInMinutes: 480
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- SignType: $[ dependencies.Job_SignBinaries.outputs['setSignTypeVariable.SignType'] ] # map in the signtype variable
- skipComponentGovernanceDetection: true
-
- steps:
- - script: |
- echo "##vso[task.setvariable variable=BuildBuildImages;]false"
- echo "##vso[task.setvariable variable=TestBuildImages;]false"
- echo "##vso[task.setvariable variable=BuildRuntimeImages;]true"
- echo "##vso[task.setvariable variable=TestRuntimeImages;]true"
- echo "##vso[task.setvariable variable=PushRuntimeImages;]true"
- echo "##vso[task.setvariable variable=PushBuildImages;]false"
- echo "##vso[task.setvariable variable=EmbedBuildContextInImages;]true"
- echo "##vso[task.setvariable variable=storageAccountUrl;]${{ parameters.storageAccountUrl }}"
- displayName: 'Set variables'
-
- - template: templates/_setReleaseTag.yml
-
- - template: templates/_buildTemplate.yml
- parameters:
- imageType: buster
-
- - job: Job_Bullseye_RuntimeImages
- displayName: Build and Test Bullseye Runtime Images
- dependsOn: Job_SignBinaries
- condition: succeeded()
- timeoutInMinutes: 480
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- SignType: $[ dependencies.Job_SignBinaries.outputs['setSignTypeVariable.SignType'] ] # map in the signtype variable
- skipComponentGovernanceDetection: true
-
- steps:
- - script: |
- echo "##vso[task.setvariable variable=BuildBuildImages;]false"
- echo "##vso[task.setvariable variable=TestBuildImages;]false"
- echo "##vso[task.setvariable variable=BuildRuntimeImages;]true"
- echo "##vso[task.setvariable variable=TestRuntimeImages;]true"
- echo "##vso[task.setvariable variable=PushRuntimeImages;]true"
- echo "##vso[task.setvariable variable=PushBuildImages;]false"
- echo "##vso[task.setvariable variable=EmbedBuildContextInImages;]true"
- echo "##vso[task.setvariable variable=storageAccountUrl;]${{ parameters.storageAccountUrl }}"
- displayName: 'Set variables'
-
- - template: templates/_setReleaseTag.yml
-
- - template: templates/_buildTemplate.yml
- parameters:
- imageType: bullseye
-
- - job: Job_Bookworm_RuntimeImages
- displayName: Build and Test Bookworm Runtime Images
- dependsOn: Job_SignBinaries
- condition: succeeded()
- timeoutInMinutes: 480
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- SignType: $[ dependencies.Job_SignBinaries.outputs['setSignTypeVariable.SignType'] ] # map in the signtype variable
- skipComponentGovernanceDetection: true
-
- steps:
- - script: |
- echo "##vso[task.setvariable variable=BuildBuildImages;]false"
- echo "##vso[task.setvariable variable=TestBuildImages;]false"
- echo "##vso[task.setvariable variable=BuildRuntimeImages;]true"
- echo "##vso[task.setvariable variable=TestRuntimeImages;]true"
- echo "##vso[task.setvariable variable=PushRuntimeImages;]true"
- echo "##vso[task.setvariable variable=PushBuildImages;]false"
- echo "##vso[task.setvariable variable=EmbedBuildContextInImages;]true"
- echo "##vso[task.setvariable variable=storageAccountUrl;]${{ parameters.storageAccountUrl }}"
- displayName: 'Set variables'
-
- - template: templates/_setReleaseTag.yml
-
- - template: templates/_buildTemplate.yml
- parameters:
- imageType: bookworm
-
- - template: templates/_integrationJobTemplate.yml
- parameters:
- storageAccountUrl: ${{ parameters.storageAccountUrl }}
-
- - job: Job_ProductionStorageAccountTest
- displayName: Test Production Storage Account
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- skipComponentGovernanceDetection: true
- steps:
- - task: UseDotNet@2
- displayName: 'Use .NET Core sdk 7.x'
- inputs:
- version: 7.0.306
-
- - task: ShellScript@2
- displayName: 'Test production storage account'
- env:
- ORYX_TEST_SDK_STORAGE_URL: ${{ parameters.storageAccountUrl }}
- inputs:
- scriptPath: ./build/testIntegration.sh
- args: StorageAccountTests=Prod
-
- - stage: Release
- displayName: Release Stage
- dependsOn: Build
- condition: >
- and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'),
- startsWith(variables['Build.SourceBranch'],'refs/heads/patch/'),
- startsWith(variables['Build.SourceBranch'],'refs/heads/exp/')))
-
- jobs:
- - template: templates/_releaseJobTemplate.yml
-
-trigger: none
\ No newline at end of file
diff --git a/vsts/pipelines/ciDebug.yml b/vsts/pipelines/ciDebug.yml
deleted file mode 100644
index 8ddcbcd0a2..0000000000
--- a/vsts/pipelines/ciDebug.yml
+++ /dev/null
@@ -1,196 +0,0 @@
-resources:
-- repo: self
-
-variables:
-- group: Oryx
-
-stages:
- - stage: CreateReleaseTag
- jobs:
- - job: CreateReleaseTag
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- skipComponentGovernanceDetection: true
- steps:
- - task: ShellScript@2
- inputs:
- scriptPath: ./vsts/scripts/createReleaseTag.sh
- displayName: 'Create release tag'
- - script: |
- set -ex
- sourcesArtifactsDir="$(Build.SourcesDirectory)/artifacts"
- mkdir -p "$sourcesArtifactsDir"
- echo "$(RELEASE_TAG_NAME)" > "$sourcesArtifactsDir/releaseTag.txt"
- displayName: 'Write release tag name to an artifact file'
- - task: PublishPipelineArtifact@1
- displayName: 'Publish artifact file having the release tag name'
- inputs:
- targetPath: $(Build.SourcesDirectory)/artifacts/releaseTag.txt
- artifactName: releaseTag
-
- - stage: Build
- displayName: Build Stage
- jobs:
- - job: Job_Security
- displayName: Security
- condition: succeeded()
- pool:
- name: Azure Pipelines
- vmImage: windows-2022
- steps:
- - template: templates/_securityChecks.yml
-
- - job: Job_BuildImage
- displayName: Build and Test Build Image
- timeoutInMinutes: 300
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- SignType: 'test'
- skipComponentGovernanceDetection: true
-
- steps:
- - script: |
- echo "##vso[task.setvariable variable=BuildBuildImages;]true"
- echo "##vso[task.setvariable variable=TestBuildImages;]false"
- echo "##vso[task.setvariable variable=BuildRuntimeImages;]false"
- echo "##vso[task.setvariable variable=TestRuntimeImages;]false"
- echo "##vso[task.setvariable variable=PushBuildImages;]true"
- echo "##vso[task.setvariable variable=PushRuntimeImages;]false"
- echo "##vso[task.setvariable variable=EmbedBuildContextInImages;]true"
- displayName: 'Set variables'
-
- - template: templates/_setReleaseTag.yml
-
- - template: templates/_buildTemplate.yml
-
- - job: Job_Buster_RuntimeImages
- displayName: Build and Test Buster Runtime Images
- timeoutInMinutes: 300
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- SignType: 'test'
- skipComponentGovernanceDetection: true
-
- steps:
- - script: |
- echo "##vso[task.setvariable variable=BuildBuildImages;]false"
- echo "##vso[task.setvariable variable=TestBuildImages;]false"
- echo "##vso[task.setvariable variable=BuildRuntimeImages;]true"
- echo "##vso[task.setvariable variable=TestRuntimeImages;]false"
- echo "##vso[task.setvariable variable=PushRuntimeImages;]true"
- echo "##vso[task.setvariable variable=PushBuildImages;]false"
- echo "##vso[task.setvariable variable=EmbedBuildContextInImages;]true"
- displayName: 'Set variables'
-
- - template: templates/_setReleaseTag.yml
-
- - template: templates/_buildTemplate.yml
- parameters:
- imageType: buster
-
- - job: Job_Bullseye_RuntimeImages
- displayName: Build and Test Bullseye Runtime Images
- timeoutInMinutes: 300
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- SignType: 'test'
- skipComponentGovernanceDetection: true
-
- steps:
- - script: |
- echo "##vso[task.setvariable variable=BuildBuildImages;]false"
- echo "##vso[task.setvariable variable=TestBuildImages;]false"
- echo "##vso[task.setvariable variable=BuildRuntimeImages;]true"
- echo "##vso[task.setvariable variable=TestRuntimeImages;]false"
- echo "##vso[task.setvariable variable=PushRuntimeImages;]true"
- echo "##vso[task.setvariable variable=PushBuildImages;]false"
- echo "##vso[task.setvariable variable=EmbedBuildContextInImages;]true"
- displayName: 'Set variables'
-
- - template: templates/_setReleaseTag.yml
-
- - template: templates/_buildTemplate.yml
- parameters:
- imageType: bullseye
-
- - job: Job_Bookworm_RuntimeImages
- displayName: Build and Test Bookworm Runtime Images
- timeoutInMinutes: 300
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- SignType: 'test'
- skipComponentGovernanceDetection: true
-
- steps:
- - script: |
- echo "##vso[task.setvariable variable=BuildBuildImages;]false"
- echo "##vso[task.setvariable variable=TestBuildImages;]false"
- echo "##vso[task.setvariable variable=BuildRuntimeImages;]true"
- echo "##vso[task.setvariable variable=TestRuntimeImages;]false"
- echo "##vso[task.setvariable variable=PushRuntimeImages;]true"
- echo "##vso[task.setvariable variable=PushBuildImages;]false"
- echo "##vso[task.setvariable variable=EmbedBuildContextInImages;]true"
- displayName: 'Set variables'
-
- - template: templates/_setReleaseTag.yml
-
- - template: templates/_buildTemplate.yml
- parameters:
- imageType: bookworm
-
- - stage: Release
- displayName: Release Stage
- dependsOn: Build
- condition: succeeded()
-
- jobs:
- - job: Release_BuildImage
- displayName: Push Build Image to MCR
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- skipComponentGovernanceDetection: true
- timeoutInMinutes: 300
- steps:
- - script: |
- echo "##vso[task.setvariable variable=ReleaseBuildImages;]true"
- echo "##vso[task.setvariable variable=ReleaseRuntimeImages;]false"
- displayName: 'Set variables'
-
- - template: templates/_releaseStepTemplate.yml
-
- - job: Release_RuntimeImages
- displayName: Push Runtime Images to MCR
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- skipComponentGovernanceDetection: true
- timeoutInMinutes: 400
- steps:
- - script: |
- echo "##vso[task.setvariable variable=ReleaseBuildImages;]false"
- echo "##vso[task.setvariable variable=ReleaseRuntimeImages;]true"
- displayName: 'Set variables'
-
- - template: templates/_releaseStepTemplate.yml
-
-trigger: none
\ No newline at end of file
diff --git a/vsts/pipelines/copyAllBlobsToProd.yml b/vsts/pipelines/copyAllBlobsToProd.yml
deleted file mode 100644
index 01151a1d48..0000000000
--- a/vsts/pipelines/copyAllBlobsToProd.yml
+++ /dev/null
@@ -1,54 +0,0 @@
-variables:
-- group: Oryx
-
-parameters:
-- name: sourceStorageAccount
- displayName: Source Storage Account
- type: string
- default: https://oryxsdkssandbox.blob.core.windows.net
- values:
- - https://oryxsdkssandbox.blob.core.windows.net
- - https://oryxsdksstaging.blob.core.windows.net
-- name: dryRun
- displayName: Dry Run?
- type: boolean
- default: true
-
-trigger: none
-
-jobs:
- - job: CreateReleaseTag
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - checkout: self
- clean: true
-
- - task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
- displayName: 'Component Detection - OSS Compliance'
- inputs:
- ignoreDirectories: '$(Build.SourcesDirectory)/tests'
-
- - task: UseDotNet@2
- displayName: 'Use .NET Core sdk 7.x'
- inputs:
- version: 7.0.306
-
- - task: ShellScript@2
- displayName: 'Copy all blobs from a source storage account to the prod storage account'
- env:
- DEV_STORAGE_SAS_TOKEN: $(DEV-STORAGE-SAS-TOKEN)
- ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN: $(ORYX-SDK-STAGING-PRIVATE-SAS-TOKEN)
- SANDBOX_STORAGE_SAS_TOKEN: $(SANDBOX-STORAGE-SAS-TOKEN)
- PROD_STORAGE_SAS_TOKEN: $(PROD-STORAGE-SAS-TOKEN)
- inputs:
- scriptPath: ./vsts/scripts/copyAllBlobsToProdStorageAccount.sh
- args: ${{ parameters.sourceStorageAccount }} ${{ parameters.dryRun }}
-
- - task: ShellScript@2
- displayName: 'Test Prod storage account'
- inputs:
- scriptPath: ./build/testIntegration.sh
- args: StorageAccountTests=Prod
\ No newline at end of file
diff --git a/vsts/pipelines/copySdksFromProdToStorageAccount.yml b/vsts/pipelines/copySdksFromProdToStorageAccount.yml
deleted file mode 100644
index 75de2dbc92..0000000000
--- a/vsts/pipelines/copySdksFromProdToStorageAccount.yml
+++ /dev/null
@@ -1,62 +0,0 @@
-variables:
-- group: Oryx
-
-parameters:
-- name: destinationStorageAccountName
- displayName: Destination Storage Account Name
- type: string
- default: oryxsdksprodbackup
-- name: dryRun
- displayName: Dry Run?
- type: boolean
- default: false
-# If overwrite is false, the only time SDKs will be copied is when the destination
-# account does not have the existing container (e.g. dotnet, nodejs, ruby)
-- name: overwrite
- displayName: Copy new SDKs to existing containers?
- type: boolean
- default: true
-
-jobs:
- - job: CopySDKsToStorageAccount
- timeoutInMinutes: 300 # sometimes copying a fresh storage account takes longer than the default 60 minute timeout
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - checkout: self
- clean: true
-
- - task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
- displayName: 'Component Detection - OSS Compliance'
- inputs:
- ignoreDirectories: '$(Build.SourcesDirectory)/tests'
-
- - task: UseDotNet@2
- displayName: 'Use .NET Core sdk 7.x'
- inputs:
- version: 7.0.306
-
- - task: ShellScript@2
- displayName: 'Copy SDKs from the prod storage account to a destination storage account'
- env:
- DEV_STORAGE_SAS_TOKEN: $(DEV-STORAGE-SAS-TOKEN)
- ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN: $(ORYX-SDK-STAGING-PRIVATE-SAS-TOKEN)
- SANDBOX_STORAGE_SAS_TOKEN: $(SANDBOX-STORAGE-SAS-TOKEN)
- PROD_STORAGE_SAS_TOKEN: $(PROD-STORAGE-SAS-TOKEN)
- PROD_BACKUP_STORAGE_SAS_TOKEN: $(PROD-BACKUP-STORAGE-SAS-TOKEN)
- PERSONAL_STORAGE_SAS_TOKEN: $(${{ upper(parameters.destinationStorageAccountName) }}-PERSONAL-STORAGE-SAS-TOKEN)
- inputs:
- scriptPath: ./vsts/scripts/copySdksFromProdToStorageAccount.sh
- args: ${{ parameters.destinationStorageAccountName }} ${{ parameters.dryRun }} ${{ parameters.overwrite }}
-
-trigger: none
-pr: none
-schedules:
-- cron: "0 12 * * 0"
- displayName: Weekly Sunday Copy to Backup Prod
- branches:
- include:
- - main
- always: true # whether to always run the pipeline even if there have been source code changes since the last run
\ No newline at end of file
diff --git a/vsts/pipelines/nightly.yml b/vsts/pipelines/nightly.yml
deleted file mode 100644
index cbef3404df..0000000000
--- a/vsts/pipelines/nightly.yml
+++ /dev/null
@@ -1,235 +0,0 @@
-parameters:
- - name: storageAccountUrl
- displayName: SDK storage account URL for testing
- type: string
- default: https://oryxsdksstaging.blob.core.windows.net
- - name: buildImages
- type: object
- default:
- -
- key: Latest
- value: latest
- -
- key: LtsVersions
- value: ltsversions
- -
- key: Jamstack
- value: jamstack
- -
- key: GithubActions
- value: githubactions
- -
- key: VsoFocal
- value: vso-focal
- -
- key: VsoBullseye
- value: vso-bullseye
- -
- key: Full
- value: full
- -
- key: Cli
- value: cli-stretch
- -
- key: CliBuster
- value: cli-buster
- -
- key: CliBullseye
- value: cli-bullseye
- -
- key: CliBuilderBullseye
- value: cli-builder-bullseye
- -
- key: Buildpack
- value: buildpack
-
-resources:
-- repo: self
- fetchDepth: 15
-
-variables:
- group: Oryx
- Packaging.EnableSBOMSigning: true
-
-stages:
- - stage: CreateReleaseTag
- jobs:
- - job: CreateReleaseTag
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- skipComponentGovernanceDetection: true
- steps:
- - task: ShellScript@2
- inputs:
- scriptPath: ./vsts/scripts/createReleaseTag.sh
- displayName: 'Create release tag'
- - script: |
- set -ex
- sourcesArtifactsDir="$(Build.SourcesDirectory)/artifacts"
- mkdir -p "$sourcesArtifactsDir"
- echo "$(RELEASE_TAG_NAME)" > "$sourcesArtifactsDir/releaseTag.txt"
- displayName: 'Write release tag name to an artifact file'
- - task: PublishPipelineArtifact@1
- displayName: 'Publish artifact file having the release tag name'
- inputs:
- targetPath: $(Build.SourcesDirectory)/artifacts/releaseTag.txt
- artifactName: releaseTag
-
- - stage: Build
- displayName: Build Stage
- jobs:
- - job: Job_Security
- displayName: Security
- condition: succeeded()
- pool:
- name: Azure Pipelines
- vmImage: windows-2022
- steps:
- - template: templates/_securityChecks.yml
-
- # Job loop for BuildImages
- - ${{ each buildImage in parameters.buildImages }}:
- - job: Job_BuildImage_${{ buildImage.key }}
- displayName: 'Build & Test ${{ buildImage.key }} Build image'
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- timeoutInMinutes: 480
- steps:
- - script: |
- echo "##vso[task.setvariable variable=BuildBuildImages;]true"
- echo "##vso[task.setvariable variable=TestBuildImages;]true"
- echo "##vso[task.setvariable variable=BuildRuntimeImages;]false"
- echo "##vso[task.setvariable variable=TestRuntimeImages;]false"
- echo "##vso[task.setvariable variable=PushBuildImages;]true"
- echo "##vso[task.setvariable variable=PushRuntimeImages;]false"
- echo "##vso[task.setvariable variable=EmbedBuildContextInImages;]true"
- echo "##vso[task.setvariable variable=RELEASE_TAG_NAME;]$(Build.BuildNumber)"
- echo "##vso[task.setvariable variable=storageAccountUrl;]${{ parameters.storageAccountUrl }}"
- if [[ "${{ buildImage.value }}" =~ "cli-builder" ]]; then
- echo "##vso[task.setvariable variable=PushBuilderImages;]true"
- fi
- displayName: 'Set variables'
- - template: templates/_buildTemplate.yml
- parameters:
- imageType: ${{ buildImage.value }}
-
-# commented out temporarily
- # - job: Job_BuilderImages
- # displayName: Build Builder Images
- # pool:
- # name: AzurePipelines-EO
- # demands:
- # - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- # timeoutInMinutes: 480
- # steps:
- # - template: templates/_builderTemplate.yml
- # dependsOn: Job_BuildImage_CliBuilderBullseye
-
- - job: Job_Buster_RuntimeImages
- displayName: Build and Test Buster Runtime Images
- condition: succeeded()
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- # Building runtime images can take a long time due to our PHP images
- timeoutInMinutes: 480
- steps:
- - script: |
- echo "##vso[task.setvariable variable=BuildBuildImages;]false"
- echo "##vso[task.setvariable variable=TestBuildImages;]false"
- echo "##vso[task.setvariable variable=BuildRuntimeImages;]true"
- echo "##vso[task.setvariable variable=TestRuntimeImages;]true"
- echo "##vso[task.setvariable variable=PushRuntimeImages;]true"
- echo "##vso[task.setvariable variable=PushBuildImages;]false"
- echo "##vso[task.setvariable variable=EmbedBuildContextInImages;]true"
- echo "##vso[task.setvariable variable=RELEASE_TAG_NAME;]$(Build.BuildNumber)"
- echo "##vso[task.setvariable variable=storageAccountUrl;]${{ parameters.storageAccountUrl }}"
- displayName: 'Set variables'
- - template: templates/_buildTemplate.yml
- parameters:
- imageType: buster
-
- - job: Job_Bullseye_RuntimeImages
- displayName: Build and Test Bullseye Runtime Images
- condition: succeeded()
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- # Building runtime images can take a long time due to our PHP images
- timeoutInMinutes: 480
- steps:
- - script: |
- echo "##vso[task.setvariable variable=BuildBuildImages;]false"
- echo "##vso[task.setvariable variable=TestBuildImages;]false"
- echo "##vso[task.setvariable variable=BuildRuntimeImages;]true"
- echo "##vso[task.setvariable variable=TestRuntimeImages;]true"
- echo "##vso[task.setvariable variable=PushRuntimeImages;]true"
- echo "##vso[task.setvariable variable=PushBuildImages;]false"
- echo "##vso[task.setvariable variable=EmbedBuildContextInImages;]true"
- echo "##vso[task.setvariable variable=RELEASE_TAG_NAME;]$(Build.BuildNumber)"
- echo "##vso[task.setvariable variable=storageAccountUrl;]${{ parameters.storageAccountUrl }}"
- displayName: 'Set variables'
- - template: templates/_buildTemplate.yml
- parameters:
- imageType: bullseye
-
- - job: Job_Bookworm_RuntimeImages
- displayName: Build and Test Bookworm Runtime Images
- condition: succeeded()
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- # Building runtime images can take a long time due to our PHP images
- timeoutInMinutes: 480
- steps:
- - script: |
- echo "##vso[task.setvariable variable=BuildBuildImages;]false"
- echo "##vso[task.setvariable variable=TestBuildImages;]false"
- echo "##vso[task.setvariable variable=BuildRuntimeImages;]true"
- echo "##vso[task.setvariable variable=TestRuntimeImages;]true"
- echo "##vso[task.setvariable variable=PushRuntimeImages;]true"
- echo "##vso[task.setvariable variable=PushBuildImages;]false"
- echo "##vso[task.setvariable variable=EmbedBuildContextInImages;]true"
- echo "##vso[task.setvariable variable=RELEASE_TAG_NAME;]$(Build.BuildNumber)"
- echo "##vso[task.setvariable variable=storageAccountUrl;]${{ parameters.storageAccountUrl }}"
- displayName: 'Set variables'
- - template: templates/_buildTemplate.yml
- parameters:
- imageType: bookworm
-
- - template: templates/_integrationJobTemplate.yml
- parameters:
- storageAccountUrl: ${{ parameters.storageAccountUrl }}
-
- - job: Job_StagingStorageAccountTest
- displayName: Test Staging Storage Account
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- skipComponentGovernanceDetection: true
- steps:
- - task: UseDotNet@2
- displayName: 'Use .NET Core sdk 7.x'
- inputs:
- version: 7.0.306
-
- - task: ShellScript@2
- displayName: 'Test staging storage account'
- env:
- ORYX_TEST_SDK_STORAGE_URL: ${{ parameters.storageAccountUrl }}
- ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN: $(ORYX-SDK-STAGING-PRIVATE-SAS-TOKEN)
- inputs:
- scriptPath: ./build/testIntegration.sh
- args: StorageAccountTests=Staging
-
-trigger: none
\ No newline at end of file
diff --git a/vsts/pipelines/publishSdkToProd.yml b/vsts/pipelines/publishSdkToProd.yml
deleted file mode 100644
index a983e52417..0000000000
--- a/vsts/pipelines/publishSdkToProd.yml
+++ /dev/null
@@ -1,75 +0,0 @@
-variables:
-- group: Oryx
-
-stages:
- - stage: DryRun
- jobs:
- - job: DryRun
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- steps:
- - checkout: self
- clean: true
-
- - task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
- displayName: 'Component Detection - OSS Compliance'
- inputs:
- ignoreDirectories: '$(Build.SourcesDirectory)/tests'
-
- - task: UseDotNet@2
- displayName: 'Use .NET Core sdk 7.x'
- inputs:
- version: 7.0.306
-
- - task: ShellScript@2
- displayName: '(Dry run) Publish SDKs from dev to prod storage account'
- env:
- DEV_STORAGE_SAS_TOKEN: $(DEV-STORAGE-SAS-TOKEN)
- ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN: $(ORYX-SDK-STAGING-PRIVATE-SAS-TOKEN)
- PROD_STORAGE_SAS_TOKEN: $(PROD-STORAGE-SAS-TOKEN)
- inputs:
- scriptPath: ./vsts/scripts/publishSdksFromStagingToProdStorageAccount.sh
- args: True # dry run
-
- - stage: PublishSDKsToProduction
- jobs:
- - deployment: PublishSDKsToProduction
- environment: oryx-prod # maps to the oryx-prod ADO environment, which requires manual approval to begin this stage
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- strategy:
- runOnce:
- deploy:
- steps:
- - checkout: self
- clean: true
-
- - task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
- displayName: 'Component Detection - OSS Compliance'
- inputs:
- ignoreDirectories: '$(Build.SourcesDirectory)/tests'
-
- - task: UseDotNet@2
- displayName: 'Use .NET Core sdk 7.x'
- inputs:
- version: 7.0.306
-
- - task: ShellScript@2
- displayName: 'Publish SDKs from dev to prod storage account'
- env:
- DEV_STORAGE_SAS_TOKEN: $(DEV-STORAGE-SAS-TOKEN)
- ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN: $(ORYX-SDK-STAGING-PRIVATE-SAS-TOKEN)
- PROD_STORAGE_SAS_TOKEN: $(PROD-STORAGE-SAS-TOKEN)
- inputs:
- scriptPath: ./vsts/scripts/publishSdksFromStagingToProdStorageAccount.sh
- args: False # no dry run
-
- - task: ShellScript@2
- displayName: 'Test prod storage account'
- inputs:
- scriptPath: ./build/testIntegration.sh
- args: StorageAccountTests=Prod
\ No newline at end of file
diff --git a/vsts/pipelines/templates/_agentCleanUpJobTemplate.yml b/vsts/pipelines/templates/_agentCleanUpJobTemplate.yml
deleted file mode 100644
index 5e01904f8e..0000000000
--- a/vsts/pipelines/templates/_agentCleanUpJobTemplate.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-parameters:
- agentName: ''
-
-jobs:
-- job: Cleaning_${{ parameters.agentName }}
- displayName: ${{ parameters.agentName }}
- pool:
- name: ${{ parameters.poolName }}
- demands:
- - agent.name -equals ${{ parameters.agentName }}
- timeoutInMinutes: 50
- steps:
- - template: _cleanImageCacheTemplate.yml
diff --git a/vsts/pipelines/templates/_buildTemplate.yml b/vsts/pipelines/templates/_buildTemplate.yml
deleted file mode 100644
index db47fbd943..0000000000
--- a/vsts/pipelines/templates/_buildTemplate.yml
+++ /dev/null
@@ -1,274 +0,0 @@
-parameters:
- ascName: oryx-new-service-connection
- acrName: oryxdevmcr.azurecr.io
- imageName: oryxdevmcr.azurecr.io/public/oryx
- imageType: null
-
-steps:
-- script: |
- if [ "$(BuildBuildImages)" != "true" ] && [ "$(BuildRuntimeImages)" != "true" ] && [ "$(TestIntegration)" != "true" ]
- then
- echo "Invalid configuration."
- echo "Variable 'BuildBuildImages' or 'BuildRuntimeImages' needs to be 'true' to run this build."
- exit 1
- fi
- displayName: 'Validate pipeline run'
-
-- script: |
- sudo rm -rf /usr/share/dotnet
- sudo rm -rf /opt/ghc
- sudo rm -rf "/usr/local/share/boost"
- sudo rm -rf "$AGENT_TOOLSDIRECTORY"
- docker images && docker system prune -fa && docker images && echo
- displayName: 'clean docker images'
- condition: or(eq(variables['TestBuildImages'], 'true'), eq(variables['TestRuntimeImages'], 'true'))
-
-- checkout: self
- clean: true
-
-- task: DownloadPipelineArtifact@0
- displayName: 'Download Pipeline Artifact'
- inputs:
- pipelineId: 'Oryx-CI'
- artifactName: 'signed_binaries'
- targetPath: '$(Build.SourcesDirectory)'
- condition: >
- and(succeeded(),
- or(in(variables['SIGNTYPE'], 'real', 'Real'), in(variables['SignType'], 'real', 'Real')),
- or(startsWith(variables['Build.SourceBranch'], 'refs/heads/main'),
- startsWith(variables['Build.SourceBranch'],'refs/heads/patch/'),
- startsWith(variables['Build.SourceBranch'],'refs/heads/exp/')))
-
-- task: UseDotNet@2
- displayName: 'Use .NET Core sdk 7.x'
- inputs:
- version: 7.0.306
-
-- script: |
- dotnet --version && dotnet msbuild -version && echo
- displayName: 'Print dotnet and msbuild version'
-
-- task: ShellScript@2
- displayName: 'Build Oryx.sln'
- inputs:
- scriptPath: ./build/buildSln.sh
- args: Oryx.sln
-
-- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
- displayName: 'Component Detection - OSS Compliance'
- inputs:
- ignoreDirectories: '$(Build.SourcesDirectory)/tests'
-
-- task: Docker@1
- displayName: Container registry logout
- inputs:
- command: logout
- azureSubscriptionEndpoint: ${{ parameters.ascName }}
- azureContainerRegistry: ${{ parameters.acrName }}
-
-- task: Docker@1
- displayName: Container registry login
- inputs:
- command: login
- azureSubscriptionEndpoint: ${{ parameters.ascName }}
- azureContainerRegistry: ${{ parameters.acrName }}
-
-- script: |
- docker images && docker system prune -fa && df -h && echo
- displayName: 'Free up space for oryx layers'
-
-- task: ShellScript@2
- displayName: 'Test build script generator'
- inputs:
- scriptPath: ./build/testBuildScriptGenerator.sh
- condition: and(succeeded(), eq(variables['TestBuildImages'], 'true'))
-
-- task: ShellScript@2
- displayName: 'Test startup script generators'
- inputs:
- scriptPath: ./build/testStartupScriptGenerators.sh
- condition: and(succeeded(), eq(variables['TestRuntimeImages'], 'true'))
-
-- task: ShellScript@2
- displayName: 'Build build images'
- env:
- ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN: $(ORYX-SDK-STAGING-PRIVATE-SAS-TOKEN)
- inputs:
- scriptPath: ./build/buildBuildImages.sh
- args: -t ${{ parameters.imageType }} -s $(storageAccountUrl)
- condition: and(succeeded(), eq(variables['BuildBuildImages'], 'true'))
-
-- task: ShellScript@2
- displayName: 'Build runtime images'
- env:
- ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN: $(ORYX-SDK-STAGING-PRIVATE-SAS-TOKEN)
- inputs:
- scriptPath: ./build/buildRunTimeImages.sh
- args: -s $(storageAccountUrl) ${{ parameters.imageType }}
- condition: and(succeeded(), eq(variables['BuildRuntimeImages'], 'true'))
-
-
-- script: |
- docker images && docker system prune -f && df -h && echo
- displayName: 'clean docker unknown layers'
-
-- script: |
- docker -v
- echo "Installing Docker CE version 24.0.5................"
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- sudo apt update
- sudo apt-get install docker-ce=5:24.0.5~3-0~ubuntu-focal docker-ce-cli=5:24.0.5~3-0~ubuntu-focal containerd.io
- echo "After installing ................"
- docker -v
- displayName: 'Install Docker 24.0.5'
- condition: true
-
-- task: ShellScript@2
- displayName: 'Test build images'
- env:
- ORYX_TEST_SDK_STORAGE_URL: $(storageAccountUrl)
- ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN: $(ORYX-SDK-STAGING-PRIVATE-SAS-TOKEN)
- inputs:
- scriptPath: ./build/testBuildImages.sh
- args: skipBuildingImages ${{ parameters.imageName }} $(Build.DefinitionName).$(RELEASE_TAG_NAME) ${{ parameters.imageType }}
- condition: and(succeeded(), eq(variables['TestBuildImages'], 'true'))
-
-- task: ShellScript@2
- displayName: 'Test runtime images'
- env:
- ORYX_TEST_SDK_STORAGE_URL: $(storageAccountUrl)
- ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN: $(ORYX-SDK-STAGING-PRIVATE-SAS-TOKEN)
- inputs:
- scriptPath: ./build/testRunTimeImages.sh
- args: skipBuildingImages ${{ parameters.imageName }} $(Build.DefinitionName).$(RELEASE_TAG_NAME) category=runtime-${{ parameters.imageType }}
- condition: and(succeeded(), eq(variables['TestRuntimeImages'], 'true'))
-
-- task: DownloadBuildArtifacts@0
- displayName: 'Download Build Artifacts'
- inputs:
- artifactName: drop
- condition: and(succeeded(), eq(variables['TestIntegration'], 'true'))
-
-- task: Shellpp@0
- displayName: 'Pull and Retag recently built oryx build and runtime images'
- inputs:
- type: FilePath
- scriptPath: ./vsts/scripts/pullAndTag.sh
- args: $(System.ArtifactsDirectory)/drop/images/build-images-acr.txt
- condition: and(succeeded(), eq(variables['TestIntegration'], 'true'))
-
-- task: Shellpp@0
- displayName: 'Build a build image for tests'
- inputs:
- type: FilePath
- scriptPath: ./build/buildTestBuildImages.sh
- condition: and(succeeded(), eq(variables['TestIntegration'], 'true'))
-
-- task: ShellScript@2
- displayName: 'Test integration'
- inputs:
- scriptPath: ./build/testIntegration.sh
- args: $(TestIntegrationCaseFilter) ${{ parameters.imageName }} $(Build.DefinitionName).$(RELEASE_TAG_NAME)
- env:
- SQLSERVER_DATABASE_HOST: $(SQLSERVER-DATABASE-HOST)
- SQLSERVER_DATABASE_NAME: $(SQLSERVER-DATABASE-NAME)
- SQLSERVER_DATABASE_USERNAME: $(SQLSERVER-DATABASE-USERNAME)
- SQLSERVER_DATABASE_PASSWORD: $(SQLSERVER-DATABASE-PASSWORD)
- ORYX_TEST_SDK_STORAGE_URL: $(storageAccountUrl)
- ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN: $(ORYX-SDK-STAGING-PRIVATE-SAS-TOKEN)
- condition: and(succeeded(), eq(variables['TestIntegration'], 'true'))
-
-- task: CopyFiles@2
- displayName: 'Copy source projects output to artifacts folder'
- inputs:
- sourceFolder: $(Build.SourcesDirectory)
- contents: src/**/bin/**/*.*
- targetFolder: $(Build.ArtifactStagingDirectory)
- cleanTargetFolder: true
- overWrite: true
- flattenFolders: true
- condition: true
-
-- task: CopyFiles@2
- displayName: 'Copy artifacts from source repo to agent artifacts folder'
- inputs:
- sourceFolder: '$(Build.SourcesDirectory)/artifacts'
- contents: '**/*.*'
- targetFolder: $(Build.ArtifactStagingDirectory)
- overWrite: true
- condition: true
-
-- task: AzureArtifacts.manifest-generator-task.manifest-generator-task.ManifestGeneratorTask@0
- displayName: Generate Software Bill of Materials (SBOM)
- inputs:
- BuildDropPath: '$(Build.ArtifactStagingDirectory)'
- AdditionalComponentDetectorArgs: '--DirectoryExclusionList **/SampleApps/**'
-
-- task: PublishTestResults@2
- inputs:
- testRunner: 'xUnit'
- testResultsFiles: '$(Build.ArtifactStagingDirectory)/testResults/*.xml'
- mergeTestResults: true
- condition: true
-
-- task: Docker@1
- displayName: 'Push build images to ACR'
- inputs:
- azureSubscriptionEndpoint: ${{ parameters.ascName }}
- azureContainerRegistry: ${{ parameters.acrName }}
- command: 'Push an image'
- pushMultipleImages: true
- imageNamesPath: '$(Build.ArtifactStagingDirectory)/images/build-images-acr.txt'
- includeLatestTag: false
- enforceDockerNamingConvention: false
- condition: and(succeeded(), or(eq(variables['PushBuildImages'], 'true'), eq(variables['PushBuilderImages'], 'true')), eq(variables['BuildBuildImages'], 'true'))
-
-- task: Docker@1
- displayName: 'Push runtime images to ACR'
- inputs:
- azureSubscriptionEndpoint: ${{ parameters.ascName }}
- azureContainerRegistry: ${{ parameters.acrName }}
- command: 'Push an image'
- pushMultipleImages: true
- imageNamesPath: '$(Build.ArtifactStagingDirectory)/images/runtime-images-acr.${{ parameters.imageType }}.txt'
- includeLatestTag: false
- enforceDockerNamingConvention: false
- condition: and(succeeded(), eq(variables['PushRuntimeImages'], 'true'), eq(variables['BuildRuntimeImages'], 'true'))
-
-- task: ShellScript@2
- displayName: 'Clean up Docker containers and images'
- inputs:
- scriptPath: ./vsts/scripts/cleanDocker.sh
- condition: or(eq(variables['TestBuildImages'], 'true'), eq(variables['TestRuntimeImages'], 'true'), eq(variables['TestIntegration'], 'true'))
-
-- task: ShellScript@2
- displayName: 'Clean up Docker mounted directories'
- inputs:
- scriptPath: ./vsts/scripts/removeDockerArtifacts.sh
- condition: or(eq(variables['TestBuildImages'], 'true'), eq(variables['TestRuntimeImages'], 'true'), eq(variables['TestIntegration'], 'true'))
-
-- script: |
- docker images && docker system prune -fa && df -h && docker images && echo
- displayName: 'clean docker images and stopped containers'
-
-- task: ShellScript@2
- displayName: 'Generate release notes'
- inputs:
- scriptPath: ./vsts/scripts/generateReleaseNotes.sh
- condition: and(succeeded(), eq(variables['PushBuildImages'], 'true'), eq(variables['BuildBuildImages'], 'true'))
-
-- task: ArchiveFiles@2
- displayName: 'Archive docker files and scripts for Oryx build and runtime images'
- inputs:
- rootFolderOrFile: images
- archiveFile: '$(Build.ArtifactStagingDirectory)/images/dockerFiles.zip'
- condition: true
-
-- task: PublishBuildArtifacts@1
- displayName: 'Publish Artifact: drop'
- condition: true
-
-- task: mspremier.PostBuildCleanup.PostBuildCleanup-task.PostBuildCleanup@3
- displayName: 'Clean Agent Directories'
- condition: true
diff --git a/vsts/pipelines/templates/_buildTemplateDetector.yml b/vsts/pipelines/templates/_buildTemplateDetector.yml
deleted file mode 100644
index bb554f5fbd..0000000000
--- a/vsts/pipelines/templates/_buildTemplateDetector.yml
+++ /dev/null
@@ -1,52 +0,0 @@
-steps:
-- checkout: self
- clean: true
-
-- task: UseDotNet@2
- displayName: 'Use .NET Core SDK 7.x'
- inputs:
- version: 7.0.306
-
-- task: ShellScript@2
- displayName: 'Build Detector.sln'
- inputs:
- scriptPath: ./build/buildSln.sh
- args: Detector.sln
-
-- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
- displayName: 'Component Detection - OSS Compliance'
- inputs:
- ignoreDirectories: '$(Build.SourcesDirectory)/tests'
-
-- task: ShellScript@2
- displayName: 'Testing Detector'
- inputs:
- scriptPath: ./build/testDetector.sh
-
-- task: CopyFiles@2
- displayName: 'Copy content from artifacts folder in repo to agent artifacts folder'
- inputs:
- sourceFolder: '$(Build.SourcesDirectory)/artifacts'
- contents: '**/*.*'
- targetFolder: $(Build.ArtifactStagingDirectory)
- overWrite: true
- condition: succeededOrFailed()
-
-- task: PublishTestResults@2
- displayName: 'Publish test results'
- inputs:
- testRunner: 'xUnit'
- testResultsFiles: '$(Build.ArtifactStagingDirectory)/testResults/*.xml'
- mergeTestResults: true
- condition: succeededOrFailed()
-
-- task: PublishBuildArtifacts@1
- displayName: 'Publish build artifacts'
- inputs:
- pathToPublish: $(Build.ArtifactStagingDirectory)
- artifactName: 'detector'
- condition: succeededOrFailed()
-
-- task: mspremier.PostBuildCleanup.PostBuildCleanup-task.PostBuildCleanup@3
- displayName: 'Clean Agent Directories'
- condition: succeededOrFailed()
\ No newline at end of file
diff --git a/vsts/pipelines/templates/_builderTemplate.yml b/vsts/pipelines/templates/_builderTemplate.yml
deleted file mode 100644
index 57af09174d..0000000000
--- a/vsts/pipelines/templates/_builderTemplate.yml
+++ /dev/null
@@ -1,58 +0,0 @@
-parameters:
- ascName: oryx-new-service-connection
- acrName: oryxdevmcr.azurecr.io
-
-steps:
-- script: |
- curl -sSL "https://github.com/buildpacks/pack/releases/download/v0.28.0/pack-v0.28.0-linux.tgz" | tar -C /usr/local/bin/ --no-same-owner -xzv pack
- displayName: 'Install Pack CLI'
- condition: true
-
-- task: Docker@1
- displayName: Container registry login
- inputs:
- command: login
- azureSubscriptionEndpoint: ${{ parameters.ascName }}
- azureContainerRegistry: ${{ parameters.acrName }}
-
-- task: ShellScript@2
- displayName: 'Build base builder images'
- inputs:
- scriptPath: ./builders/base/buildBaseBuilder.sh
- args: -f ${{ parameters.acrName }} -r "public/oryx/builder" -v $(Build.DefinitionName).$(Build.BuildNumber)
-
-- task: ShellScript@2
- displayName: 'Build container apps builder images'
- inputs:
- scriptPath: ./builders/container-apps/buildCappsBuilder.sh
- args: -f ${{ parameters.acrName }} -r "public/oryx/builder" -t "capps-$(Build.DefinitionName).$(Build.BuildNumber)" -b "${{ parameters.acrName }}/public/oryx/builder:$(Build.DefinitionName).$(Build.BuildNumber)"
-
-- task: CopyFiles@2
- displayName: 'Copy artifacts from source repo to agent artifacts folder'
- inputs:
- sourceFolder: '$(Build.SourcesDirectory)/artifacts'
- contents: '**/*.*'
- targetFolder: $(Build.ArtifactStagingDirectory)
- overWrite: true
-
-- task: Docker@1
- displayName: 'Push base build images to ACR'
- inputs:
- azureSubscriptionEndpoint: ${{ parameters.ascName }}
- azureContainerRegistry: ${{ parameters.acrName }}
- command: 'Push an image'
- pushMultipleImages: true
- imageNamesPath: '$(Build.ArtifactStagingDirectory)/images/builder-images-acr.txt'
- includeLatestTag: false
- enforceDockerNamingConvention: false
-
-- task: Docker@1
- displayName: 'Push container apps builder images to ACR'
- inputs:
- azureSubscriptionEndpoint: ${{ parameters.ascName }}
- azureContainerRegistry: ${{ parameters.acrName }}
- command: 'Push an image'
- pushMultipleImages: true
- imageNamesPath: '$(Build.ArtifactStagingDirectory)/images/capps-builder-images-acr.txt'
- includeLatestTag: false
- enforceDockerNamingConvention: false
\ No newline at end of file
diff --git a/vsts/pipelines/templates/_buildimageBasesJobTemplate.yml b/vsts/pipelines/templates/_buildimageBasesJobTemplate.yml
deleted file mode 100644
index 701537907a..0000000000
--- a/vsts/pipelines/templates/_buildimageBasesJobTemplate.yml
+++ /dev/null
@@ -1,71 +0,0 @@
-parameters:
- displayName: ''
- imageDir: ''
- imageDebianFlavor: ''
- scriptPath: ''
- artifactsFileName: ''
- jobName: ''
-
-jobs:
-- job: ${{ parameters.jobName }}
- displayName: ${{ parameters.displayName }}
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- timeoutInMinutes: 250
- steps:
- - task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
- displayName: 'Component Detection - OSS Compliance'
- inputs:
- ignoreDirectories: '$(Build.SourcesDirectory)/tests'
-
- - task: ShellScript@2
- displayName: Build images
- inputs:
- scriptPath: ${{ parameters.scriptPath }}
- args: ${{ parameters.imageDir }} ${{ parameters.imageDebianFlavor }}
- env:
- ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN: $(ORYX-SDK-STAGING-PRIVATE-SAS-TOKEN)
- DOTNET_PRIVATE_STORAGE_ACCOUNT_ACCESS_TOKEN: $(DotnetPrivateStorageAccountAccessToken)
-
- - task: AzureArtifacts.manifest-generator-task.manifest-generator-task.ManifestGeneratorTask@0
- displayName: Generate Software Bill of Materials (SBOM)
- inputs:
- BuildDropPath: '$(Build.ArtifactStagingDirectory)'
- AdditionalComponentDetectorArgs: '--DirectoryExclusionList **/SampleApps/**'
-
- - task: CopyFiles@2
- displayName: Copy artifacts to staging directory
- inputs:
- sourceFolder: '$(Build.SourcesDirectory)/artifacts'
- contents: '**/*.*'
- targetFolder: $(Build.ArtifactStagingDirectory)
- overWrite: true
- condition: true
-
- - task: Docker@1
- displayName: Push built base images to dev ACR
- inputs:
- command: push
- azureSubscriptionEndpoint: $(ascName)
- azureContainerRegistry: $(acrName)
- pushMultipleImages: true
- imageNamesPath: '$(Build.ArtifactStagingDirectory)/images/${{ parameters.artifactsFileName }}'
- enforceDockerNamingConvention: false
-
- - task: ShellScript@2
- displayName: 'Clean up Docker containers and images'
- inputs:
- scriptPath: ./vsts/scripts/cleanDocker.sh
-
- - task: PublishBuildArtifacts@1
- displayName: Publish build artifacts
- inputs:
- pathtoPublish: $(Build.ArtifactStagingDirectory)
-
- - task: ShellScript@2
- displayName: 'Clean up Docker containers and images'
- inputs:
- scriptPath: ./vsts/scripts/cleanDocker.sh
- condition: true
diff --git a/vsts/pipelines/templates/_cleanImageCacheTemplate.yml b/vsts/pipelines/templates/_cleanImageCacheTemplate.yml
deleted file mode 100644
index fe96f9f98e..0000000000
--- a/vsts/pipelines/templates/_cleanImageCacheTemplate.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-steps:
-- script: |
- echo "List of containers dead/alive ..."
- docker ps -a
- echo "List of images ..."
- docker images
- echo "Cleaning containers and images ..."
- docker system prune -af
- echo "List of containers dead/alive ..."
- docker ps -a
- echo "List of images ..."
- docker images
- displayName: 'Remove all existing docker images from machine'
-
-- script: |
- echo "Restarting in 1 minutes"
- sudo shutdown -r +1
- displayName: 'Restart machine after cleaning up'
diff --git a/vsts/pipelines/templates/_copyImgFromDevToTest.yml b/vsts/pipelines/templates/_copyImgFromDevToTest.yml
deleted file mode 100644
index 030e22230f..0000000000
--- a/vsts/pipelines/templates/_copyImgFromDevToTest.yml
+++ /dev/null
@@ -1,246 +0,0 @@
-parameters:
- - name: ascName
- type: string
- default: oryx-new-service-connection
- - name: acrDevName
- type: string
- default: oryxdevmcr.azurecr.io
- - name: acrTestName
- type: string
- default: oryxtestmcr.azurecr.io
- - name: testImageName
- type: string
- default: oryxtestmcr.azurecr.io/public/oryx
- - name: acrDevContainerName
- type: string
- default: oryxdevmcr.azurecr.io/public/oryx
- - name: acrTestContainerName
- type: string
- default: oryxtestmcr.azurecr.io/public/oryx
- - name: nightlyTag
- type: string
- - name: cliImages
- type: object
- default:
- - name: 'cli-buster'
- sourceTag: 'debian-buster-Oryx-Nightly'
- destinationTag: 'debian-buster'
- - name: 'cli-bullseye'
- sourceTag: 'debian-bullseye-Oryx-Nightly'
- destinationTag: 'debian-bullseye'
- - name: 'cli-stretch'
- sourceTag: 'debian-stretch-Oryx-Nightly'
- destinationTag: 'debian-stretch'
- - name: ltsImages
- type: object
- default:
- - name: 'lts-buster'
- sourceTag: 'lts-versions-debian-buster-Oryx-Nightly'
- destinationTag: 'lts-versions-debian-buster'
- - name: 'lts-stretch'
- sourceTag: 'lts-versions-debian-stretch-Oryx-Nightly'
- destinationTag: 'lts-versions-debian-stretch'
- - name: vsoImages
- type: object
- default:
- - name: 'vso-ubuntu'
- sourceTag: 'vso-ubuntu-focal-Oryx-Nightly'
- destinationTag: 'vso-ubuntu-focal'
- - name: 'vso-bullseye'
- sourceTag: 'vso-debian-bullseye-Oryx-Nightly'
- destinationTag: 'vso-debian-bullseye'
- - name: fullImages
- type: object
- default:
- - name: 'full-buster'
- sourceTag: 'full-debian-buster-Oryx-Nightly'
- destinationTag: 'full-debian-buster'
- - name: 'full-bullseye'
- sourceTag: 'full-debian-bullseye-Oryx-Nightly'
- destinationTag: 'full-debian-bullseye'
- - name: githubActions
- type: object
- default:
- - name: 'github-actions-bookworm'
- sourceTag: 'github-actions-debian-bookworm-Oryx-Nightly'
- destinationTag: 'github-actions-debian-bookworm'
- - name: 'github-actions-bullseye'
- sourceTag: 'github-actions-debian-bullseye-Oryx-Nightly'
- destinationTag: 'github-actions-debian-bullseye'
- - name: 'github-actions-buster'
- sourceTag: 'github-actions-debian-buster-Oryx-Nightly'
- destinationTag: 'github-actions-debian-buster'
- - name: 'github-actions-stretch'
- sourceTag: 'github-actions-debian-stretch-Oryx-Nightly'
- destinationTag: 'github-actions-debian-stretch'
- - name: dotnet
- type: object
- default:
- - name: '3.0-debian-buster'
- sourceTag: '3.0-debian-buster-Oryx-Nightly'
- destinationTag: '3.0-debian-buster'
- - name: '3.1-debian-buster'
- sourceTag: '3.1-debian-buster-Oryx-Nightly'
- destinationTag: '3.1-debian-buster'
- - name: '5.0-debian-buster'
- sourceTag: '5.0-debian-buster-Oryx-Nightly'
- destinationTag: '5.0-debian-buster'
- - name: '6.0-debian-buster'
- sourceTag: '6.0-debian-buster-Oryx-Nightly'
- destinationTag: '6.0-debian-buster'
- - name: '7.0-debian-buster'
- sourceTag: '7.0-debian-buster-Oryx-Nightly'
- destinationTag: '7.0-debian-buster'
- - name: node
- type: object
- default:
- - name: '18-debian-bullseye'
- sourceTag: '18-debian-bullseye-Oryx-Nightly'
- destinationTag: '18-debian-bullseye'
- - name: '16-debian-buster'
- sourceTag: '16-debian-buster-Oryx-Nightly'
- destinationTag: '16-debian-buster'
- - name: '14-debian-buster'
- sourceTag: '14-debian-buster-Oryx-Nightly'
- destinationTag: '14-debian-buster'
- - name: python
- type: object
- default:
- - name: '3.7-debian-bullseye'
- sourceTag: '3.7-debian-bullseye-Oryx-Nightly'
- destinationTag: '3.7-debian-bullseye'
- - name: '3.8-debian-bullseye'
- sourceTag: '3.8-debian-bullseye-Oryx-Nightly'
- destinationTag: '3.8-debian-bullseye'
- - name: '3.9-debian-buster'
- sourceTag: '3.9-debian-buster-Oryx-Nightly'
- destinationTag: '3.9-debian-buster'
- - name: '3.10-debian-bullseye'
- sourceTag: '3.10-debian-bullseye-Oryx-Nightly'
- destinationTag: '3.10-debian-bullseye'
- - name: '3.11-debian-bullseye'
- sourceTag: '3.11-debian-bullseye-Oryx-Nightly'
- destinationTag: '3.11-debian-bullseye'
-
-
-
-steps:
-
-- checkout: self
- clean: true
-
-- task: Docker@1
- displayName: Dev container registry login
- inputs:
- command: login
- azureSubscriptionEndpoint: ${{ parameters.ascName }}
- azureContainerRegistry: ${{ parameters.acrDevName }}
-
-- ${{ each image in parameters.cliImages }}:
- - script: |
- docker pull "${{ parameters.acrDevContainerName }}/cli:${{ image.sourceTag }}.${{ parameters.nightlyTag }}"
- docker tag "${{ parameters.acrDevContainerName }}/cli:${{ image.sourceTag }}.${{ parameters.nightlyTag }}" "${{ parameters.acrTestContainerName }}/cli:${{ image.destinationTag }}.${{ parameters.nightlyTag }}"
- displayName: 'Pull CLI Images and Retag'
-
-- ${{ each image in parameters.ltsImages }}:
- - script: |
- docker pull "${{ parameters.acrDevContainerName }}/build:${{ image.sourceTag }}.${{ parameters.nightlyTag }}"
- docker tag "${{ parameters.acrDevContainerName }}/build:${{ image.sourceTag }}.${{ parameters.nightlyTag }}" "${{ parameters.acrTestContainerName }}/build:${{ image.destinationTag }}.${{ parameters.nightlyTag }}"
- displayName: 'Pull and Retag lts Images'
-
-- ${{ each image in parameters.vsoImages }}:
- - script: |
- docker pull "${{ parameters.acrDevContainerName }}/build:${{ image.sourceTag }}.${{ parameters.nightlyTag }}"
- docker tag "${{ parameters.acrDevContainerName }}/build:${{ image.sourceTag }}.${{ parameters.nightlyTag }}" "${{ parameters.acrTestContainerName }}/build:${{ image.destinationTag }}.${{ parameters.nightlyTag }}"
- displayName: 'Pull and Retag Vso Images'
-
-- ${{ each image in parameters.fullImages }}:
- - script: |
- docker pull "${{ parameters.acrDevContainerName }}/build:${{ image.sourceTag }}.${{ parameters.nightlyTag }}"
- docker tag "${{ parameters.acrDevContainerName }}/build:${{ image.sourceTag }}.${{ parameters.nightlyTag }}" "${{ parameters.acrTestContainerName }}/build:${{ image.destinationTag }}.${{ parameters.nightlyTag }}"
- displayName: 'Pull and Retag Full Images'
-
-- ${{ each image in parameters.githubActions }}:
- - script: |
- docker pull "${{ parameters.acrDevContainerName }}/build:${{ image.sourceTag }}.${{ parameters.nightlyTag }}"
- docker tag "${{ parameters.acrDevContainerName }}/build:${{ image.sourceTag }}.${{ parameters.nightlyTag }}" "${{ parameters.acrTestContainerName }}/build:${{ image.destinationTag }}.${{ parameters.nightlyTag }}"
- displayName: 'Pull and Retag Github Action Images'
-
-- ${{ each image in parameters.dotnet }}:
- - script: |
- docker pull "${{ parameters.acrDevContainerName }}/dotnetcore:${{ image.sourceTag }}.${{ parameters.nightlyTag }}"
- docker tag "${{ parameters.acrDevContainerName }}/dotnetcore:${{ image.sourceTag }}.${{ parameters.nightlyTag }}" "${{ parameters.acrTestContainerName }}/dotnetcore:${{ image.destinationTag }}.${{ parameters.nightlyTag }}"
- displayName: 'Pull and Retag dotnet Images'
-
-- ${{ each image in parameters.node }}:
- - script: |
- docker pull "${{ parameters.acrDevContainerName }}/node:${{ image.sourceTag }}.${{ parameters.nightlyTag }}"
- docker tag "${{ parameters.acrDevContainerName }}/node:${{ image.sourceTag }}.${{ parameters.nightlyTag }}" "${{ parameters.acrTestContainerName }}/node:${{ image.destinationTag }}.${{ parameters.nightlyTag }}"
- displayName: 'Pull and Retag Node Images'
-
-- ${{ each image in parameters.python }}:
- - script: |
- docker pull "${{ parameters.acrDevContainerName }}/python:${{ image.sourceTag }}.${{ parameters.nightlyTag }}"
- docker tag "${{ parameters.acrDevContainerName }}/python:${{ image.sourceTag }}.${{ parameters.nightlyTag }}" "${{ parameters.acrTestContainerName }}/python:${{ image.destinationTag }}.${{ parameters.nightlyTag }}"
- displayName: 'Pull and Retag Python Images'
-
-- task: Docker@1
- displayName: Dev Container registry logout
- inputs:
- command: logout
- azureSubscriptionEndpoint: ${{ parameters.ascName }}
- azureContainerRegistry: ${{ parameters.acrDevName }}
-
-- task: Docker@1
- displayName: Test container registry login
- inputs:
- command: login
- azureSubscriptionEndpoint: ${{ parameters.ascName }}
- azureContainerRegistry: ${{ parameters.acrTestName }}
-
-- ${{ each image in parameters.cliImages }}:
- - script: |
- docker push "${{ parameters.acrTestContainerName }}/cli:${{ image.destinationTag }}.${{ parameters.nightlyTag }}"
- displayName: 'Push CLI Images to Test ACR'
-
-- ${{ each image in parameters.ltsImages }}:
- - script: |
- docker push "${{ parameters.acrTestContainerName }}/build:${{ image.destinationTag }}.${{ parameters.nightlyTag }}"
- displayName: 'Push lts Images to Test ACR'
-
-- ${{ each image in parameters.vsoImages }}:
- - script: |
- docker push "${{ parameters.acrTestContainerName }}/build:${{ image.destinationTag }}.${{ parameters.nightlyTag }}"
- displayName: 'Push Vso Images to Test ACR'
-
-- ${{ each image in parameters.fullImages }}:
- - script: |
- docker push "${{ parameters.acrTestContainerName }}/build:${{ image.destinationTag }}.${{ parameters.nightlyTag }}"
- displayName: 'Push Full Images to Test ACR'
-
-- ${{ each image in parameters.githubActions }}:
- - script: |
- docker push "${{ parameters.acrTestContainerName }}/build:${{ image.destinationTag }}.${{ parameters.nightlyTag }}"
- displayName: 'Push Github Action Images to Test ACR'
-
-- ${{ each image in parameters.dotnet }}:
- - script: |
- docker push "${{ parameters.acrTestContainerName }}/dotnetcore:${{ image.destinationTag }}.${{ parameters.nightlyTag }}"
- displayName: 'Push dotnet Images to Test ACR'
-
-- ${{ each image in parameters.node }}:
- - script: |
- docker push "${{ parameters.acrTestContainerName }}/node:${{ image.destinationTag }}.${{ parameters.nightlyTag }}"
- displayName: 'Push Node Images to Test ACR'
-
-- ${{ each image in parameters.python }}:
- - script: |
- docker push "${{ parameters.acrTestContainerName }}/python:${{ image.destinationTag }}.${{ parameters.nightlyTag }}"
- displayName: 'Push Python Images to Test ACR'
-
-- task: Docker@1
- displayName: Test Container registry logout
- inputs:
- command: logout
- azureSubscriptionEndpoint: ${{ parameters.ascName }}
- azureContainerRegistry: ${{ parameters.acrTestName }}
diff --git a/vsts/pipelines/templates/_integrationJobTemplate.yml b/vsts/pipelines/templates/_integrationJobTemplate.yml
deleted file mode 100644
index 6d3edee76c..0000000000
--- a/vsts/pipelines/templates/_integrationJobTemplate.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-parameters:
- - name: storageAccountUrl
- type: string
- default: https://oryxsdksstaging.blob.core.windows.net
-
-jobs:
-# Python integration tests
-- template: integrationTests/_pythonIntegrationJobTemplate.yml
- parameters:
- storageAccountUrl: ${{ parameters.storageAccountUrl }}
-
-# DotNetCore integration tests
-- template: integrationTests/_dotnetcoreIntegrationJobTemplate.yml
- parameters:
- storageAccountUrl: ${{ parameters.storageAccountUrl }}
-
-# NodeJS integration tests
-- template: integrationTests/_nodeIntegrationJobTemplate.yml
- parameters:
- storageAccountUrl: ${{ parameters.storageAccountUrl }}
-
-# PHP integration tests
-- template: integrationTests/_phpIntegrationJobTemplate.yml
- parameters:
- storageAccountUrl: ${{ parameters.storageAccountUrl }}
\ No newline at end of file
diff --git a/vsts/pipelines/templates/_platformBinariesReleaseTemplate.yml b/vsts/pipelines/templates/_platformBinariesReleaseTemplate.yml
deleted file mode 100644
index 7192ab76df..0000000000
--- a/vsts/pipelines/templates/_platformBinariesReleaseTemplate.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-parameters:
- - name: sourceFolder
- type: string
- - name: storageAccountName
- type: string
- - name: subscription
- type: string
-
-steps:
-
-- task: AzureCLI@2
- displayName: Upload files to Azure Storage
- inputs:
- azureSubscription: ${{ parameters.subscription }}
- scriptPath: ${{ parameters.sourceFolder }}/vsts/scripts/publishFilesToAzureStorage.sh
- arguments: ${{ parameters.storageAccountName }}
- scriptType: 'bash'
-
-- task: UseDotNet@2
- displayName: 'Use .NET Core SDK 7.x'
- inputs:
- version: 7.x
-
-- task: ShellScript@2
- displayName: 'Test Dev storage account'
- env:
- ORYX_TEST_SDK_STORAGE_URL: https://${{ parameters.storageAccountName }}.blob.core.windows.net
- inputs:
- scriptPath: ${{ parameters.sourceFolder }}/build/testIntegration.sh
- args: StorageAccountTests=Dev
\ No newline at end of file
diff --git a/vsts/pipelines/templates/_platformBinariesTemplate.yml b/vsts/pipelines/templates/_platformBinariesTemplate.yml
deleted file mode 100644
index dc90994067..0000000000
--- a/vsts/pipelines/templates/_platformBinariesTemplate.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-parameters:
- - name: platformName
- type: string
- - name: debianFlavor
- type: string
- - name: sourceFolder
- type: string
- - name: storageAccountName
- type: string
- - name: dotnetPrivateStorageSasToken
- type: string
- default: ''
-
-steps:
-- task: UseDotNet@2
- displayName: 'Use .NET Core sdk 7.x'
- inputs:
- version: 7.x
-
-- task: ShellScript@2
- displayName: 'Building platform binaries'
- env:
- DOTNET_PRIVATE_STORAGE_ACCOUNT_ACCESS_TOKEN: ${{ parameters.dotnetPrivateStorageSasToken }}
- inputs:
- scriptPath: ${{ parameters.sourceFolder }}/build/buildPlatformBinaries.sh
- args: ${{ parameters.platformName }} ${{ parameters.debianFlavor }} https://${{ parameters.storageAccountName }}.blob.core.windows.net
diff --git a/vsts/pipelines/templates/_releaseBaseImagesJobTemplate.yml b/vsts/pipelines/templates/_releaseBaseImagesJobTemplate.yml
deleted file mode 100644
index 0c231482a6..0000000000
--- a/vsts/pipelines/templates/_releaseBaseImagesJobTemplate.yml
+++ /dev/null
@@ -1,61 +0,0 @@
-jobs:
-- job: Release_PhpRuntimeBaseImage
- displayName: Push PHP Runtime Base Image to MCR
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- timeoutInMinutes: 250
- steps:
- - template: _releaseBaseImagesStepTemplate.yml
- parameters:
- baseImageName: 'php'
-
-- job: Release_PhpFpmNginxRuntimeBaseImage
- displayName: Push PHP-FPM Runtime Base Image to MCR
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- timeoutInMinutes: 250
- steps:
- - template: _releaseBaseImagesStepTemplate.yml
- parameters:
- baseImageName: 'php-fpm'
-
-- job: Release_DotNetCoreRuntimeBaseImage
- displayName: Push DotNetCore Runtime Base Images to MCR
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- timeoutInMinutes: 250
- steps:
- - template: _releaseBaseImagesStepTemplate.yml
- parameters:
- baseImageName: 'dotnetcore'
-
-- job: Release_NodeBaseImage
- displayName: Push Node Base Image to MCR
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- timeoutInMinutes: 300
- steps:
- - template: _releaseBaseImagesStepTemplate.yml
- parameters:
- baseImageName: 'node'
-
-- job: Release_RubyBaseImage
- displayName: Push Ruby Base Image to MCR
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- timeoutInMinutes: 300
-
- steps:
- - template: _releaseBaseImagesStepTemplate.yml
- parameters:
- aseImageName: 'ruby'
\ No newline at end of file
diff --git a/vsts/pipelines/templates/_releaseBaseImagesStepTemplate.yml b/vsts/pipelines/templates/_releaseBaseImagesStepTemplate.yml
deleted file mode 100644
index 145a846779..0000000000
--- a/vsts/pipelines/templates/_releaseBaseImagesStepTemplate.yml
+++ /dev/null
@@ -1,69 +0,0 @@
-parameters:
- ascName: oryx-new-service-connection
- acrDevName: oryxdevmcr
- acrProdName: oryxmcr
- acrPmeProdName: oryxprodmcr
- acrPmeProdSrvConnection: Oryx-PME-ACR-Production
- baseImageName: '' # defaults
- baseImageRepository: public/oryx/base
-
-steps:
-- checkout: self
- clean: true
-
-- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
- displayName: 'Component Detection - OSS Compliance'
- inputs:
- ignoreDirectories: '$(Build.SourcesDirectory)/tests'
-
-- task: Docker@1
- displayName: Container registry login
- inputs:
- command: login
- azureSubscriptionEndpoint: ${{ parameters.ascName }}
- azureContainerRegistry: ${{ parameters.acrDevName }}.azurecr.io
-
-- task: DownloadBuildArtifacts@0
- displayName: 'Download Artifacts for release'
- inputs:
- artifactName: drop
-
-- task: CopyFiles@2
- displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
- inputs:
- SourceFolder: '$(System.ArtifactsDirectory)'
- TargetFolder: '$(Build.ArtifactStagingDirectory)'
-
-- task: Shellpp@0
- displayName: 'Pull and create release tags for PME staging ACR'
- inputs:
- type: FilePath
- scriptPath: ./vsts/scripts/tagBaseImagesForRelease.sh
- args: '${{ parameters.baseImageName }} ${{ parameters.acrPmeProdName }}'
-
-- task: Docker@2
- displayName: Login to production PME ACR
- inputs:
- command: login
- containerRegistry: ${{ parameters.acrPmeProdSrvConnection }}
-
-- script: echo base image is ${{ parameters.baseImageName }} and repository is ${{ parameters.baseImageRepository }}
-
-- task: Shellpp@0
- displayName: 'Push images to PME staging ACR'
- inputs:
- type: FilePath
- scriptPath: ./vsts/scripts/pushBaseImagesToRegistry.sh
- args: '$(Build.ArtifactStagingDirectory)/drop/images/${{ parameters.baseImageName }}/${{ parameters.acrPmeProdName }}'
-
-- task: Docker@2
- displayName: Logout from PME ACR
- inputs:
- command: logout
- containerRegistry: ${{ parameters.acrPmeProdSrvConnection }}
-
-- task: ShellScript@2
- displayName: 'Clean up Docker containers and images'
- inputs:
- scriptPath: ./vsts/scripts/cleanDocker.sh
- condition: true
\ No newline at end of file
diff --git a/vsts/pipelines/templates/_releaseJobTemplate.yml b/vsts/pipelines/templates/_releaseJobTemplate.yml
deleted file mode 100644
index 4064b0cd6e..0000000000
--- a/vsts/pipelines/templates/_releaseJobTemplate.yml
+++ /dev/null
@@ -1,69 +0,0 @@
-jobs:
-- job: Release_BuildImages
- displayName: Push Build Image to MCR
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- skipComponentGovernanceDetection: true
- timeoutInMinutes: 300
- steps:
- - script: |
- echo "##vso[task.setvariable variable=ReleaseBuildImages;]true"
- echo "##vso[task.setvariable variable=ReleaseRuntimeImages;]false"
- displayName: 'Set variables'
-
- - template: _releaseStepTemplate.yml
-
-- job: Release_RuntimeImages
- displayName: Push Runtime Images to MCR
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- skipComponentGovernanceDetection: true
- timeoutInMinutes: 400
- steps:
- - script: |
- echo "##vso[task.setvariable variable=ReleaseBuildImages;]false"
- echo "##vso[task.setvariable variable=ReleaseRuntimeImages;]true"
- displayName: 'Set variables'
-
- - template: _releaseStepTemplate.yml
-
-- job: Release_GitHub
- displayName: Create GitHub release
- dependsOn:
- - Release_BuildImages
- - Release_RuntimeImages
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- skipComponentGovernanceDetection: true
-
- steps:
- - task: DownloadPipelineArtifact@2
- displayName: 'Download Oryx binaries to publish to release'
- inputs:
- artifactName: 'signed_binaries'
- path: $(Build.SourcesDirectory)/artifacts
-
- - task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
- displayName: 'Component Detection - OSS Compliance'
- inputs:
- ignoreDirectories: '$(Build.SourcesDirectory)/tests'
-
- - template: _setReleaseTag.yml
-
- - task: GitHubRelease@0
- displayName: 'GitHub release (create)'
- inputs:
- gitHubConnection: 'Oryx-GitHub'
- repositoryName: Microsoft/Oryx
- tagSource: manual
- tag: '$(RELEASE_TAG_NAME)'
- assets: $(Build.SourcesDirectory)/artifacts/oryx_linux_x64.tar.gz
\ No newline at end of file
diff --git a/vsts/pipelines/templates/_releaseStepTemplate.yml b/vsts/pipelines/templates/_releaseStepTemplate.yml
deleted file mode 100644
index 5288df3fe1..0000000000
--- a/vsts/pipelines/templates/_releaseStepTemplate.yml
+++ /dev/null
@@ -1,150 +0,0 @@
-parameters:
- ascName: oryx-new-service-connection
- acrDevName: oryxdevmcr.azurecr.io
- acrProdName: oryxmcr
- acrPmeProdName: oryxprodmcr
- acrPmeProdSrvConnection: Oryx-PME-ACR-Production
- prodImageName: oryxmcr.azurecr.io/public/oryx
-
-steps:
-
-- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
- displayName: 'Component Detection - OSS Compliance'
- inputs:
- ignoreDirectories: '$(Build.SourcesDirectory)/tests'
-
-- script: |
- if [ "$(ReleaseBuildImages)" != "true" ] && [ "$(ReleaseRuntimeImages)" != "true" ]
- then
- echo "Invalid configuration."
- echo "Variable 'ReleaseBuildImages' or 'ReleaseRuntimeImages' needs to be 'true' to run this"
- exit 1
- fi
- displayName: 'Validate release pipeline run'
-
-- script: |
- docker -v
- echo "Installing Docker CE version 24.0.5................"
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- sudo apt update
- sudo apt-get install docker-ce=5:24.0.5~3-0~ubuntu-focal docker-ce-cli=5:24.0.5~3-0~ubuntu-focal containerd.io
- echo "After installing ................"
- docker -v
- displayName: 'Install Docker 24.0.5'
- condition: true
-
-- script: |
- sudo rm -rf /usr/share/dotnet
- sudo rm -rf /opt/ghc
- sudo rm -rf "/usr/local/share/boost"
- sudo rm -rf "$AGENT_TOOLSDIRECTORY"
- docker images && docker system prune -fa && docker images && echo
- displayName: 'clean docker images'
-
-- script: |
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- sudo apt update
- sudo apt-get install docker-ce=5:24.0.5~3-0~ubuntu-focal docker-ce-cli=5:24.0.5~3-0~ubuntu-focal containerd.io
- docker -v
- displayName: 'Install Docker 24.0.5'
-
-- checkout: self
- clean: true
-
-- task: Docker@1
- displayName: Container registry login
- inputs:
- command: login
- azureSubscriptionEndpoint: ${{ parameters.ascName }}
- azureContainerRegistry: ${{ parameters.acrDevName }}
-
-- task: DownloadBuildArtifacts@0
- displayName: 'Download Artifacts for release'
- inputs:
- artifactName: drop
-
-- task: CopyFiles@2
- displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
- inputs:
- SourceFolder: '$(System.ArtifactsDirectory)'
- TargetFolder: '$(Build.ArtifactStagingDirectory)'
-
-- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
- displayName: 'Component Detection - OSS Compliance'
- inputs:
- ignoreDirectories: '$(Build.SourcesDirectory)/tests'
-
-- template: _setReleaseTag.yml
-
-- task: Shellpp@0
- displayName: 'Pull and create release tags for build images'
- inputs:
- type: FilePath
- scriptPath: ./vsts/scripts/tagBuildImagesForRelease.sh
- args:
- condition: and(succeeded(), eq(variables['ReleaseBuildImages'], 'true'))
-
-- task: Shellpp@0
- displayName: 'Pull and create release tags for runtime images'
- inputs:
- type: FilePath
- scriptPath: ./vsts/scripts/tagRunTimeImagesForRelease.sh
- condition: and(succeeded(), eq(variables['ReleaseRuntimeImages'], 'true'))
-
-- task: Shellpp@0
- displayName: 'Pull and create release tags for CLI images'
- inputs:
- type: FilePath
- scriptPath: ./vsts/scripts/tagCliImagesForRelease.sh
- condition: and(succeeded(), eq(variables['ReleaseBuildImages'], 'true'))
-
-- task: Docker@1
- displayName: Dev Container registry logout
- inputs:
- command: logout
- azureSubscriptionEndpoint: ${{ parameters.ascName }}
- azureContainerRegistry: ${{ parameters.acrDevName }}
-
-- task: Docker@2
- displayName: Login to PME ACR
- inputs:
- command: login
- containerRegistry: ${{ parameters.acrPmeProdSrvConnection }}
-
-- task: Shellpp@0
- displayName: 'Push build images to PME staging ACR'
- inputs:
- type: FilePath
- scriptPath: ./vsts/scripts/pushImagesToRegistry.sh
- args: '$(Build.ArtifactStagingDirectory)/drop/images/${{ parameters.acrPmeProdName }}-build-images-mcr.txt'
- condition: and(succeeded(), eq(variables['ReleaseBuildImages'], 'true'))
-
-- task: Shellpp@0
- displayName: 'Push CLI image to PME staging ACR'
- inputs:
- type: FilePath
- scriptPath: ./vsts/scripts/pushImagesToRegistry.sh
- args: '$(Build.ArtifactStagingDirectory)/drop/images/${{ parameters.acrPmeProdName }}-cli-images-mcr.txt'
- condition: and(succeeded(), eq(variables['ReleaseBuildImages'], 'true'))
-
-- task: Shellpp@0
- displayName: 'Push runtime images to PME staging ACR'
- inputs:
- type: FilePath
- scriptPath: ./vsts/scripts/pushImagesToRegistry.sh
- args: '$(Build.ArtifactStagingDirectory)/drop/images/${{ parameters.acrPmeProdName }}-runtime-images-mcr.txt'
- condition: and(succeeded(), eq(variables['ReleaseRuntimeImages'], 'true'))
-
-- task: Docker@2
- displayName: Logout from PME ACR
- inputs:
- command: logout
- containerRegistry: '${{ parameters.acrPmeProdSrvConnection }}'
-
-- task: ShellScript@2
- displayName: 'Clean up Docker containers and images'
- inputs:
- scriptPath: ./vsts/scripts/cleanDocker.sh
- condition: true
\ No newline at end of file
diff --git a/vsts/pipelines/templates/_securityChecks.yml b/vsts/pipelines/templates/_securityChecks.yml
deleted file mode 100644
index e5ab02583a..0000000000
--- a/vsts/pipelines/templates/_securityChecks.yml
+++ /dev/null
@@ -1,84 +0,0 @@
-steps:
-- checkout: self
- clean: true
-
-- task: securedevelopmentteam.vss-secure-development-tools.build-task-policheck.PoliCheck@1
- displayName: 'Run PoliCheck'
- inputs:
- targetType: F
- condition: always()
-
-- task: securedevelopmentteam.vss-secure-development-tools.build-task-credscan.CredScan@2
- displayName: 'Run CredScan'
- inputs:
- debugMode: false
- condition: always()
-
-- task: NuGetToolInstaller@1
- inputs:
- versionSpec: 5.8.x
-
-- task: UseDotNet@2
- displayName: 'Use .NET Core sdk 7.x'
- inputs:
- version: 7.0.306
-
-- script: |
- dotnet --version && dotnet msbuild -version && echo
- displayName: 'Print dotnet and msbuild version'
-
-- task: NuGetCommand@2
- displayName: 'Run "nuget restore" on Oryx solution'
- inputs:
- command: 'restore'
- restoreSolution: '$(Build.SourcesDirectory)\Oryx.sln'
-
-- task: VSBuild@1
- displayName: 'Build the Oryx solution'
- inputs:
- solution: '$(Build.SourcesDirectory)\Oryx.sln'
- configuration: 'debug'
- createLogFile: true
- logFileVerbosity: diagnostic
-
-- task: PowerShell@2
- displayName: 'Wait 30 seconds after building solution'
- inputs:
- targetType: 'inline'
- script: 'Start-Sleep -Seconds 30'
-
-- task: securedevelopmentteam.vss-secure-development-tools.build-task-roslynanalyzers.RoslynAnalyzers@2
- displayName: 'Run Roslyn Analyzers'
- condition: always()
-
-- task: securedevelopmentteam.vss-secure-development-tools.build-task-binskim.BinSkim@3
- displayName: 'Run BinSkim '
- inputs:
- arguments: 'analyze Microsoft.Oryx*.dll --recurse --output $(Build.BinariesDirectory)\binskim.sarif --verbose'
- condition: always()
-
-- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
- displayName: 'Component Detection - OSS Compliance'
- inputs:
- ignoreDirectories: '$(Build.SourcesDirectory)/tests'
-
-- task: securedevelopmentteam.vss-secure-development-tools.build-task-postanalysis.PostAnalysis@1
- displayName: 'Post Analysis'
- inputs:
- BinSkim: true
- CredScan: true
- PoliCheck: true
- RoslynAnalyzers: true
- continueOnError: false
-
-- task: AntiMalware@3
- displayName: 'Run Antimalware Scan'
- inputs:
- InputType: 'Basic'
- ScanType: 'CustomScan'
- EnableServices: true
- TreatSignatureUpdateFailureAs: 'Warning'
- SupportLogOnError: false
- FileDirPath: '$(Build.StagingDirectory)'
- SignatureFreshness: 'UpToDate'
- TreatStaleSignatureAs: 'Warning'
\ No newline at end of file
diff --git a/vsts/pipelines/templates/_setReleaseTag.yml b/vsts/pipelines/templates/_setReleaseTag.yml
deleted file mode 100644
index e08e805b14..0000000000
--- a/vsts/pipelines/templates/_setReleaseTag.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-steps:
-- task: DownloadPipelineArtifact@2
- displayName: 'Download artifact file having release tag name'
- inputs:
- targetPath: $(Build.SourcesDirectory)/artifacts/releaseTag
- artifactName: 'releaseTag'
-
-- script: |
- set -e
- file="$(Build.SourcesDirectory)/artifacts/releaseTag/releaseTag.txt"
- echo "Release tag name is:"
- cat "$file"
- tagName="$(Build.BuildNumber)"
- if [ -f "$file" ]; then
- tagName=`cat $file`
- fi
- echo "##vso[task.setvariable variable=RELEASE_TAG_NAME;]$tagName"
- displayName: 'Read release tag name from artifact file and set it as environment variable'
- name: setReleaseTag
\ No newline at end of file
diff --git a/vsts/pipelines/templates/_signBinary.yml b/vsts/pipelines/templates/_signBinary.yml
deleted file mode 100644
index bd27bef72e..0000000000
--- a/vsts/pipelines/templates/_signBinary.yml
+++ /dev/null
@@ -1,111 +0,0 @@
-steps:
-- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
- displayName: 'Component Detection - OSS Compliance'
- inputs:
- ignoreDirectories: '$(Build.SourcesDirectory)/tests'
-
-- powershell: |
- Write-Host "##vso[task.setvariable variable=SignType;isOutput=true]real"
- name: setSignTypeVariable
- displayName: 'Set sign binary variable'
- condition: >
- and(in(variables['Build.Reason'], 'Schedule', 'Manual'), eq(variables['Build.DefinitionName'], 'Oryx-CI'),
- or(
- startsWith(variables['Build.SourceBranch'], 'refs/heads/main'),
- startsWith(variables['Build.SourceBranch'], 'refs/heads/patch/'),
- startsWith(variables['Build.SourceBranch'],'refs/heads/exp/' )))
-
-- script: |
- echo $(setSignTypeVariable.SignType)
- name: SignType
-
-- task: NuGetToolInstaller@0
- displayName: 'Use NuGet 4.6.2'
- inputs:
- versionSpec: 4.6.2
- condition: and(succeeded(), eq(variables['setSignTypeVariable.SignType'], 'real'))
-
-- task: ms-vseng.MicroBuildTasks.30666190-6959-11e5-9f96-f56098202fef.MicroBuildSigningPlugin@1
- displayName: 'Install Signing Plugin'
- inputs:
- signType: '$(setSignTypeVariable.SignType)'
- condition: and(succeeded(), eq(variables['setSignTypeVariable.SignType'], 'real'))
-
-- task: UseDotNet@2
- displayName: 'Use .NET Core sdk 7.x'
- inputs:
- version: 7.0.306
-
-- powershell: |
- Write-Host "Setting up git_commit and build_number as env variable"
- $env:GIT_COMMIT=$(git rev-parse HEAD)
- $env:BUILD_NUMBER=$env:BUILD_BUILDNUMBER
- dotnet publish -r linux-x64 -c Release src\BuildScriptGeneratorCLI\BuildScriptGeneratorCli.csproj
- dotnet publish -r linux-x64 -c Release src\BuildServer\BuildServer.csproj
- displayName: 'dotnet publish and after setting git_commit and build_number as env variable'
- condition: and(succeeded(), eq(variables['setSignTypeVariable.SignType'], 'real'))
-
-- task: VSBuild@1
- displayName: 'Sign Oryx Binaries'
- inputs:
- solution: 'src/BuildScriptGeneratorCli/Oryx_sign.signproj'
- msbuildArgs: '/t:SignFiles /p:RuntimeIdentifier=linux-x64 /p:MicroBuild_SigningEnabled=true'
- configuration: '$(BuildConfiguration)'
- condition: and(succeeded(), eq(variables['setSignTypeVariable.SignType'], 'real'))
-
-- task: VSBuild@1
- displayName: 'Sign Oryx Build Server Binaries'
- inputs:
- solution: 'src/BuildServer/BuildServer.signproj'
- msbuildArgs: '/t:SignFiles /p:RuntimeIdentifier=linux-x64 /p:MicroBuild_SigningEnabled=true'
- configuration: '$(BuildConfiguration)'
- condition: and(succeeded(), eq(variables['setSignTypeVariable.SignType'], 'real'))
-
-- task: ArchiveFiles@2
- displayName: 'Create compressed file of Oryx binaries'
- inputs:
- rootFolderOrFile: 'src\BuildScriptGeneratorCli\bin\$(BuildConfiguration)\linux-x64\publish'
- includeRootFolder: false
- archiveType: tar
- tarCompression: 'gz'
- archiveFile: '$(Build.ArtifactStagingDirectory)/oryx_linux_x64.tar.gz'
- replaceExistingArchive: true
- verbose: true
- condition: and(succeeded(), eq(variables['setSignTypeVariable.SignType'], 'real'))
-
-- task: ArchiveFiles@2
- displayName: 'Create compressed file of Oryx Build Server binaries'
- inputs:
- rootFolderOrFile: 'src\BuildServer\bin\$(BuildConfiguration)\linux-x64\publish'
- includeRootFolder: false
- archiveType: tar
- tarCompression: 'gz'
- archiveFile: '$(Build.ArtifactStagingDirectory)/oryx_buildServer_linux_x64.tar.gz'
- replaceExistingArchive: true
- verbose: true
- condition: and(succeeded(), eq(variables['setSignTypeVariable.SignType'], 'real'))
-
-- task: CopyFiles@2
- displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)/binaries'
- inputs:
- SourceFolder: 'src/BuildScriptGeneratorCli/bin/$(BuildConfiguration)/linux-x64/publish'
- Contents: '**\*'
- TargetFolder: '$(Build.ArtifactStagingDirectory)/binaries'
- CleanTargetFolder: true
- condition: and(succeeded(), eq(variables['setSignTypeVariable.SignType'], 'real'))
-
-- task: CopyFiles@2
- displayName: 'Copy BuildServer Files to: $(Build.ArtifactStagingDirectory)/binaries'
- inputs:
- SourceFolder: 'src/BuildServer/bin/$(BuildConfiguration)/linux-x64/publish'
- Contents: '**\*'
- TargetFolder: '$(Build.ArtifactStagingDirectory)/binaries'
- CleanTargetFolder: false
- condition: and(succeeded(), eq(variables['setSignTypeVariable.SignType'], 'real'))
-
-- task: PublishPipelineArtifact@0
- displayName: 'Publish Pipeline Artifact'
- inputs:
- artifactName: 'signed_binaries'
- targetPath: '$(Build.ArtifactStagingDirectory)'
- condition: and(succeeded(), eq(variables['setSignTypeVariable.SignType'], 'real'))
\ No newline at end of file
diff --git a/vsts/pipelines/templates/_signBinaryDetector.yml b/vsts/pipelines/templates/_signBinaryDetector.yml
deleted file mode 100644
index 368d021982..0000000000
--- a/vsts/pipelines/templates/_signBinaryDetector.yml
+++ /dev/null
@@ -1,71 +0,0 @@
-steps:
-- checkout: self
- clean: true
-
-- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
- displayName: 'Component Detection - OSS Compliance'
- inputs:
- ignoreDirectories: '$(Build.SourcesDirectory)/tests'
-
-- task: ms-vseng.MicroBuildTasks.30666190-6959-11e5-9f96-f56098202fef.MicroBuildSigningPlugin@1
- displayName: 'Install Signing Plugin'
- inputs:
- signType: 'Real'
-
-- task: UseDotNet@2
- displayName: 'Use .NET Core SDK 7.x'
- inputs:
- version: 7.0.306
-
-- powershell: |
- Write-Host "Setting up git_commit and build_number as env variable"
- $env:GIT_COMMIT=$(git rev-parse HEAD)
- $env:BUILD_NUMBER=$env:BUILD_BUILDNUMBER
- $projectFile="src\Detector\Detector.csproj"
-
- $env:SIGN_PACKAGE="true"
- dotnet build Detector.sln -c Release
- dotnet restore src\Detector\Detector.signproj
- displayName: 'Build Detector.sln'
-
-- task: VSBuild@1
- displayName: 'Sign Oryx Binaries'
- inputs:
- solution: 'src/Detector/Detector.signproj'
- msbuildArgs: '/t:SignFiles /p:MicroBuild_SigningEnabled=true'
- configuration: '$(BuildConfiguration)'
-
-- powershell: |
- Write-Host "Running 'dotnet pack'..."
- dotnet pack --no-build --include-symbols -c Release src\Detector\Detector.csproj
- displayName: 'Re-package already generated NuGet packages with signed binaries'
-
-- task: VSBuild@1
- displayName: 'Sign NuGet packages'
- inputs:
- solution: 'vsts/nugetpackages.signproj'
- msbuildArgs: '/t:SignFiles /p:MicroBuild_SigningEnabled=true'
-
-- task: NuGetToolInstaller@1
- inputs:
- versionSpec: '5.6'
-
-- powershell: |
- . $(Build.SourcesDirectory)\build\detector\__detectorNugetPackagesVersions.ps1
- cd "artifacts\packages"
- nuget verify -signature `
- -CertificateFingerprint 3F9001EA83C560D712C24CF213C3D312CB3BFF51EE89435D3430BD06B5D0EECE `
- Microsoft.Oryx.Detector.$VERSION.nupkg `
- -verbosity detailed
- displayName: 'Verify nuget packages'
-
-- powershell: |
- Copy-Item -Path artifacts\packages -Destination $(Build.ArtifactStagingDirectory)\packages -Recurse
- displayName: 'Copying nuget packages to artifact staging directory'
-
-- task: PublishPipelineArtifact@0
- displayName: 'Publish Pipeline Artifact'
- inputs:
- artifactName: 'detector_signed'
- targetPath: '$(Build.ArtifactStagingDirectory)'
-
\ No newline at end of file
diff --git a/vsts/pipelines/templates/integrationTests/_dotnetcoreIntegrationJobTemplate.yml b/vsts/pipelines/templates/integrationTests/_dotnetcoreIntegrationJobTemplate.yml
deleted file mode 100644
index 55a82b60bd..0000000000
--- a/vsts/pipelines/templates/integrationTests/_dotnetcoreIntegrationJobTemplate.yml
+++ /dev/null
@@ -1,52 +0,0 @@
-parameters:
- - name: storageAccountUrl
- type: string
- default: https://oryxsdksstaging.blob.core.windows.net
- - name: testMappings
- type: object
- default:
- - category: '6.0'
- buildTag: 'debian-buster'
- - category: '6.0'
- buildTag: 'github-actions-debian-buster'
- - category: '7.0'
- buildTag: 'github-actions-debian-buster'
- - category: '8.0'
- buildTag: 'github-actions-debian-bookworm'
- - category: 'dynamic'
- buildTag: 'debian-buster'
- - category: 'dynamic'
- buildTag: 'github-actions-debian-buster'
-
-jobs:
-- ${{ each mapping in parameters.testMappings }}:
- - job:
- displayName: 'Run .NET Core ${{ mapping.category }} Integration Tests using build image tag ${{ mapping.buildTag }}'
- dependsOn:
- - Job_BuildImage_Latest
- - Job_BuildImage_GithubActions
- - Job_Buster_RuntimeImages
- - Job_Bullseye_RuntimeImages
- - Job_Bookworm_RuntimeImages
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- skipComponentGovernanceDetection: true
- timeoutInMinutes: 300
- steps:
- - script: |
- echo "##vso[task.setvariable variable=BuildBuildImages;]false"
- echo "##vso[task.setvariable variable=BuildRuntimeImages;]false"
- echo "##vso[task.setvariable variable=TestBuildImages;]false"
- echo "##vso[task.setvariable variable=TestRuntimeImages;]false"
- echo "##vso[task.setvariable variable=TestIntegrationCaseFilter;]category=dotnetcore-${{ mapping.category }}&build-image=${{ mapping.buildTag }}"
- echo "##vso[task.setvariable variable=TestIntegration;]true"
- echo "##vso[task.setvariable variable=PushBuildImages;]false"
- echo "##vso[task.setvariable variable=PushRuntimeImages;]false"
- echo "##vso[task.setvariable variable=EmbedBuildContextInImages;]false"
- echo "##vso[task.setvariable variable=storageAccountUrl;]${{ parameters.storageAccountUrl }}"
- displayName: 'Set variables'
- - template: ../_setReleaseTag.yml
- - template: ../_buildTemplate.yml
\ No newline at end of file
diff --git a/vsts/pipelines/templates/integrationTests/_golangIntegrationJobTemplate.yml b/vsts/pipelines/templates/integrationTests/_golangIntegrationJobTemplate.yml
deleted file mode 100644
index 2c620f7126..0000000000
--- a/vsts/pipelines/templates/integrationTests/_golangIntegrationJobTemplate.yml
+++ /dev/null
@@ -1,51 +0,0 @@
-parameters:
- - name: storageAccountUrl
- type: string
- default: https://oryxsdksstaging.blob.core.windows.net
- - name: testMappings
- type: object
- default:
- - category: '1.17'
- buildTag: 'full-debian-buster'
- - category: '1.17'
- buildTag: 'full-debian-bullseye'
- - category: '1.18'
- buildTag: 'full-debian-buster'
- - category: '1.18'
- buildTag: 'full-debian-bullseye'
- - category: '1.19'
- buildTag: 'full-debian-buster'
- - category: '1.19'
- buildTag: 'full-debian-bullseye'
-
-jobs:
-- ${{ each mapping in parameters.testMappings }}:
- - job:
- displayName: 'Run Golang ${{ mapping.category }} Integration Tests using build image tag ${{ mapping.buildTag }}'
- dependsOn:
- - Job_BuildImage_Full
- - Job_Buster_RuntimeImages
- - Job_Bullseye_RuntimeImages
- - Job_Bookworm_RuntimeImages
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- skipComponentGovernanceDetection: true
- timeoutInMinutes: 300
- steps:
- - script: |
- echo "##vso[task.setvariable variable=BuildBuildImages;]false"
- echo "##vso[task.setvariable variable=BuildRuntimeImages;]false"
- echo "##vso[task.setvariable variable=TestBuildImages;]false"
- echo "##vso[task.setvariable variable=TestRuntimeImages;]false"
- echo "##vso[task.setvariable variable=TestIntegrationCaseFilter;]category=golang-${{ mapping.category }}&build-image=${{ mapping.buildTag }}"
- echo "##vso[task.setvariable variable=TestIntegration;]true"
- echo "##vso[task.setvariable variable=PushBuildImages;]false"
- echo "##vso[task.setvariable variable=PushRuntimeImages;]false"
- echo "##vso[task.setvariable variable=EmbedBuildContextInImages;]false"
- echo "##vso[task.setvariable variable=storageAccountUrl;]${{ parameters.storageAccountUrl }}"
- displayName: 'Set variables'
- - template: ../_setReleaseTag.yml
- - template: ../_buildTemplate.yml
\ No newline at end of file
diff --git a/vsts/pipelines/templates/integrationTests/_nodeIntegrationJobTemplate.yml b/vsts/pipelines/templates/integrationTests/_nodeIntegrationJobTemplate.yml
deleted file mode 100644
index cc99344a3d..0000000000
--- a/vsts/pipelines/templates/integrationTests/_nodeIntegrationJobTemplate.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-parameters:
- - name: storageAccountUrl
- type: string
- default: https://oryxsdksstaging.blob.core.windows.net
- - name: testMappings
- type: object
- default:
- - category: '14-gh-buster'
- buildTag: 'github-actions-debian-buster'
- - category: '16'
- buildTag: 'debian-buster'
- - category: '18'
- buildTag: 'github-actions-debian-bullseye'
- - category: '20'
- buildTag: 'github-actions-debian-bookworm'
- - category: '20-bullseye'
- buildTag: 'github-actions-debian-bullseye'
-
-jobs:
-- ${{ each mapping in parameters.testMappings }}:
- - job:
- displayName: 'Run Node ${{ mapping.category }} Integration Tests using build image tag ${{ mapping.buildTag }}'
- dependsOn:
- - Job_BuildImage_Latest
- - Job_BuildImage_GithubActions
- - Job_Buster_RuntimeImages
- - Job_Bullseye_RuntimeImages
- - Job_Bookworm_RuntimeImages
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- skipComponentGovernanceDetection: true
- timeoutInMinutes: 300
- steps:
- - script: |
- echo "##vso[task.setvariable variable=BuildBuildImages;]false"
- echo "##vso[task.setvariable variable=BuildRuntimeImages;]false"
- echo "##vso[task.setvariable variable=TestBuildImages;]false"
- echo "##vso[task.setvariable variable=TestRuntimeImages;]false"
- echo "##vso[task.setvariable variable=TestIntegrationCaseFilter;]category=node-${{ mapping.category }}&build-image=${{ mapping.buildTag }}"
- echo "##vso[task.setvariable variable=TestIntegration;]true"
- echo "##vso[task.setvariable variable=PushBuildImages;]false"
- echo "##vso[task.setvariable variable=PushRuntimeImages;]false"
- echo "##vso[task.setvariable variable=EmbedBuildContextInImages;]false"
- echo "##vso[task.setvariable variable=storageAccountUrl;]${{ parameters.storageAccountUrl }}"
- displayName: 'Set variables'
- - template: ../_setReleaseTag.yml
- - template: ../_buildTemplate.yml
\ No newline at end of file
diff --git a/vsts/pipelines/templates/integrationTests/_phpIntegrationJobTemplate.yml b/vsts/pipelines/templates/integrationTests/_phpIntegrationJobTemplate.yml
deleted file mode 100644
index 4b0c85605f..0000000000
--- a/vsts/pipelines/templates/integrationTests/_phpIntegrationJobTemplate.yml
+++ /dev/null
@@ -1,60 +0,0 @@
-parameters:
- - name: storageAccountUrl
- type: string
- default: https://oryxsdksstaging.blob.core.windows.net
- - name: testMappings
- type: object
- default:
- - category: '7.4'
- buildTag: 'github-actions-debian-buster'
- - category: '8.0'
- buildTag: 'github-actions-debian-buster'
- - category: '8.0'
- buildTag: 'github-actions-debian-bullseye'
- - category: '8.1'
- buildTag: 'github-actions-debian-buster'
- - category: '8.1'
- buildTag: 'github-actions-debian-bullseye'
- - category: '8.2'
- buildTag: 'github-actions-debian-buster'
- - category: '8.2'
- buildTag: 'github-actions-debian-bullseye'
- - category: '8.3'
- buildTag: 'github-actions-debian-buster'
- - category: '8.3'
- buildTag: 'github-actions-debian-bullseye'
- - category: '8.3'
- buildTag: 'github-actions-debian-bookworm'
-
-jobs:
-- ${{ each mapping in parameters.testMappings }}:
- - job:
- displayName: 'Run PHP ${{ mapping.category }} Integration Tests using build image tag ${{ mapping.buildTag }}'
- dependsOn:
- - Job_BuildImage_Latest
- - Job_BuildImage_GithubActions
- - Job_Buster_RuntimeImages
- - Job_Bullseye_RuntimeImages
- - Job_Bookworm_RuntimeImages
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- skipComponentGovernanceDetection: true
- timeoutInMinutes: 300
- steps:
- - script: |
- echo "##vso[task.setvariable variable=BuildBuildImages;]false"
- echo "##vso[task.setvariable variable=BuildRuntimeImages;]false"
- echo "##vso[task.setvariable variable=TestBuildImages;]false"
- echo "##vso[task.setvariable variable=TestRuntimeImages;]false"
- echo "##vso[task.setvariable variable=TestIntegrationCaseFilter;]category=php-${{ mapping.category }}&build-image=${{ mapping.buildTag }}"
- echo "##vso[task.setvariable variable=TestIntegration;]true"
- echo "##vso[task.setvariable variable=PushBuildImages;]false"
- echo "##vso[task.setvariable variable=PushRuntimeImages;]false"
- echo "##vso[task.setvariable variable=EmbedBuildContextInImages;]false"
- echo "##vso[task.setvariable variable=storageAccountUrl;]${{ parameters.storageAccountUrl }}"
- displayName: 'Set variables'
- - template: ../_setReleaseTag.yml
- - template: ../_buildTemplate.yml
\ No newline at end of file
diff --git a/vsts/pipelines/templates/integrationTests/_pythonIntegrationJobTemplate.yml b/vsts/pipelines/templates/integrationTests/_pythonIntegrationJobTemplate.yml
deleted file mode 100644
index 4361135a71..0000000000
--- a/vsts/pipelines/templates/integrationTests/_pythonIntegrationJobTemplate.yml
+++ /dev/null
@@ -1,58 +0,0 @@
-parameters:
- - name: storageAccountUrl
- type: string
- default: https://oryxsdksstaging.blob.core.windows.net
- - name: testMappings
- type: object
- default:
- - category: '3.7'
- buildTag: 'github-actions-debian-bullseye'
- - category: '3.8'
- buildTag: 'github-actions-debian-bullseye'
- - category: '3.9'
- buildTag: 'debian-buster'
- - category: '3.9'
- buildTag: 'github-actions-debian-buster'
- - category: '3.10'
- buildTag: 'github-actions-debian-bullseye'
- - category: '3.11'
- buildTag: 'github-actions-debian-bullseye'
- - category: '3.11'
- buildTag: 'github-actions-debian-bookworm'
- - category: '3.12'
- buildTag: 'github-actions-debian-bullseye'
- - category: '3.12'
- buildTag: 'github-actions-debian-bookworm'
-
-jobs:
-- ${{ each mapping in parameters.testMappings }}:
- - job:
- displayName: 'Run Python ${{ mapping.category }} Integration Tests using build image tag ${{ mapping.buildTag }}'
- dependsOn:
- - Job_BuildImage_Latest
- - Job_BuildImage_GithubActions
- - Job_Buster_RuntimeImages
- - Job_Bullseye_RuntimeImages
- - Job_Bookworm_RuntimeImages
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- skipComponentGovernanceDetection: true
- timeoutInMinutes: 300
- steps:
- - script: |
- echo "##vso[task.setvariable variable=BuildBuildImages;]false"
- echo "##vso[task.setvariable variable=BuildRuntimeImages;]false"
- echo "##vso[task.setvariable variable=TestBuildImages;]false"
- echo "##vso[task.setvariable variable=TestRuntimeImages;]false"
- echo "##vso[task.setvariable variable=TestIntegrationCaseFilter;]category=python-${{ mapping.category }}&build-image=${{ mapping.buildTag }}"
- echo "##vso[task.setvariable variable=TestIntegration;]true"
- echo "##vso[task.setvariable variable=PushBuildImages;]false"
- echo "##vso[task.setvariable variable=PushRuntimeImages;]false"
- echo "##vso[task.setvariable variable=EmbedBuildContextInImages;]false"
- echo "##vso[task.setvariable variable=storageAccountUrl;]${{ parameters.storageAccountUrl }}"
- displayName: 'Set variables'
- - template: ../_setReleaseTag.yml
- - template: ../_buildTemplate.yml
\ No newline at end of file
diff --git a/vsts/pipelines/testACRImgUpload.yml b/vsts/pipelines/testACRImgUpload.yml
deleted file mode 100644
index ff79d03797..0000000000
--- a/vsts/pipelines/testACRImgUpload.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-parameters:
- - name: nightlyTagName
- displayName: The tag of image built by nightly pipeline
- - name: containerRegistryName
- displayName: Container registry name for pushing built image
- type: string
- default: oryxtestmcr.azurecr.io
-
-resources:
-- repo: self
- fetchDepth: 15
-
-variables:
- group: Oryx
- Packaging.EnableSBOMSigning: true
-
-stages:
- - stage: Copy
- displayName: Copy Stage
-
- jobs:
- - job: Start_Copy
- steps:
- - template: templates/_copyImgFromDevToTest.yml
- parameters:
- nightlyTag: ${{ parameters.nightlyTagName }}
-
-trigger: none
\ No newline at end of file
diff --git a/vsts/pipelines/validation-detector.yml b/vsts/pipelines/validation-detector.yml
deleted file mode 100644
index 3cd46a4153..0000000000
--- a/vsts/pipelines/validation-detector.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-# specific branch
-pr:
- paths:
- exclude:
- - /*
- include:
- - Detector.sln
- - src/Detector/*
- - tests/Detector.Tests/*
- - vsts/nugetpackages.signproj
- - vsts/pipelines/validation-detector.yml
-
-jobs:
-- job: Job_Detector
- displayName: Detector Validation
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- timeoutInMinutes: 480
- steps:
- - template: templates/_buildTemplateDetector.yml
\ No newline at end of file
diff --git a/vsts/pipelines/validation.yml b/vsts/pipelines/validation.yml
deleted file mode 100644
index a7afdcede7..0000000000
--- a/vsts/pipelines/validation.yml
+++ /dev/null
@@ -1,171 +0,0 @@
-parameters:
- - name: storageAccountUrl
- displayName: SDK storage account URL for testing
- type: string
- default: https://oryxsdksstaging.blob.core.windows.net
- - name: buildImages
- type: object
- default:
- -
- key: Latest
- value: latest
- -
- key: LtsVersions
- value: ltsversions
- -
- key: Jamstack
- value: jamstack
- -
- key: GithubActions
- value: githubactions
- -
- key: VsoFocal
- value: vso-focal
- -
- key: VsoBullseye
- value: vso-bullseye
- -
- key: Full
- value: full
- -
- key: Cli
- value: cli-stretch
- -
- key: CliBuster
- value: cli-buster
- -
- key: CliBullseye
- value: cli-bullseye
- -
- key: CliBuilderBullseye
- value: cli-builder-bullseye
- -
- key: Buildpack
- value: buildpack
-
-resources:
-- repo: self
- fetchDepth: 15
-
-variables:
- group: Oryx
- Packaging.EnableSBOMSigning: true
-
-jobs:
-- job: Job_Security
- displayName: Security
- pool:
- name: Azure Pipelines
- vmImage: windows-2022
- steps:
- - template: templates/_securityChecks.yml
-
-- ${{ each buildImage in parameters.buildImages }}:
- - job: Job_BuildImage_${{ buildImage.key }}
- displayName: Build and Test Build ${{ buildImage.key }} Image
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- - group: Oryx
- timeoutInMinutes: 480
- steps:
- - script: |
- echo "##vso[task.setvariable variable=BuildBuildImages;]true"
- echo "##vso[task.setvariable variable=TestBuildImages;]true"
- echo "##vso[task.setvariable variable=PushBuildImages;]false"
- echo "##vso[task.setvariable variable=PushRuntimeImages;]false"
- echo "##vso[task.setvariable variable=EmbedBuildContextInImages;]true"
- echo "##vso[task.setvariable variable=RELEASE_TAG_NAME;]$(Build.BuildNumber)"
- echo "##vso[task.setvariable variable=storageAccountUrl;]${{ parameters.storageAccountUrl }}"
- if [[ "${{ buildImage.value }}" =~ "cli-builder" ]]; then
- echo "##vso[task.setvariable variable=PushBuilderImages;]true"
- fi
- displayName: 'Set variables'
- - template: templates/_buildTemplate.yml
- parameters:
- imageType: ${{ buildImage.value }}
-
-# commented out temporarily
-# - job: Job_BuilderImages
-# displayName: Build Builder Images
-# pool:
-# name: AzurePipelines-EO
-# demands:
-# - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
-# timeoutInMinutes: 480
-# steps:
-# - template: templates/_builderTemplate.yml
-# dependsOn: Job_BuildImage_CliBuilderBullseye
-
-- job: Job_Buster_RuntimeImages
- displayName: Build and Test Buster Runtime Images
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- - group: Oryx
- timeoutInMinutes: 480
- steps:
- - script: |
- echo "##vso[task.setvariable variable=BuildRuntimeImages;]true"
- echo "##vso[task.setvariable variable=TestRuntimeImages;]true"
- echo "##vso[task.setvariable variable=PushBuildImages;]false"
- echo "##vso[task.setvariable variable=PushRuntimeImages;]false"
- echo "##vso[task.setvariable variable=EmbedBuildContextInImages;]true"
- echo "##vso[task.setvariable variable=RELEASE_TAG_NAME;]$(Build.BuildNumber)"
- echo "##vso[task.setvariable variable=storageAccountUrl;]${{ parameters.storageAccountUrl }}"
- displayName: 'Set variables'
- - template: templates/_buildTemplate.yml
- parameters:
- imageType: buster
-
-- job: Job_Bullseye_RuntimeImages
- displayName: Build and Test Bullseye Runtime Images
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- - group: Oryx
- timeoutInMinutes: 480
- steps:
- - script: |
- echo "##vso[task.setvariable variable=BuildRuntimeImages;]true"
- echo "##vso[task.setvariable variable=TestRuntimeImages;]true"
- echo "##vso[task.setvariable variable=PushBuildImages;]false"
- echo "##vso[task.setvariable variable=PushRuntimeImages;]false"
- echo "##vso[task.setvariable variable=EmbedBuildContextInImages;]true"
- echo "##vso[task.setvariable variable=RELEASE_TAG_NAME;]$(Build.BuildNumber)"
- echo "##vso[task.setvariable variable=storageAccountUrl;]${{ parameters.storageAccountUrl }}"
- displayName: 'Set variables'
- - template: templates/_buildTemplate.yml
- parameters:
- imageType: bullseye
-
-- job: Job_Bookworm_RuntimeImages
- displayName: Build and Test Bookworm Runtime Images
- pool:
- name: AzurePipelines-EO
- demands:
- - ImageOverride -equals AzurePipelinesUbuntu20.04compliant
- variables:
- - group: Oryx
- timeoutInMinutes: 480
- steps:
- - script: |
- echo "##vso[task.setvariable variable=BuildRuntimeImages;]true"
- echo "##vso[task.setvariable variable=TestRuntimeImages;]true"
- echo "##vso[task.setvariable variable=PushBuildImages;]false"
- echo "##vso[task.setvariable variable=PushRuntimeImages;]false"
- echo "##vso[task.setvariable variable=EmbedBuildContextInImages;]true"
- echo "##vso[task.setvariable variable=RELEASE_TAG_NAME;]$(Build.BuildNumber)"
- echo "##vso[task.setvariable variable=storageAccountUrl;]${{ parameters.storageAccountUrl }}"
- displayName: 'Set variables'
- - template: templates/_buildTemplate.yml
- parameters:
- imageType: bookworm
-
-trigger: none
\ No newline at end of file
diff --git a/vsts/scripts/cleanDevAcr.sh b/vsts/scripts/cleanDevAcr.sh
deleted file mode 100755
index 21a6a123c2..0000000000
--- a/vsts/scripts/cleanDevAcr.sh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-
-set -e
-
-declare -r ACR_NAME='oryxdevmcr'
-declare -r AZ_NAME_OUTPUT_PARAMS="--name $ACR_NAME --output tsv"
-
-if [[ "$1" == "--yes" ]]; then
- YES="$1"
-fi
-
-# Prepare an array with all repository names in the registry
-echo "Active subscription: `az account show --query 'name'`"
-REPOS=(`az acr repository list $AZ_NAME_OUTPUT_PARAMS`)
-echo "Found ${#REPOS[@]} repositories in ACR instance '$ACR_NAME'"
-echo
-
-datecmd='date'
-if [[ "$OSTYPE" == "darwin"* ]]; then datecmd='gdate'; fi
-
-tsLimit=`$datecmd --iso-8601=seconds -d '2 months ago'`
-declare -r azQuery="[?timestamp<=\`$tsLimit\`].digest"
-
-for repo in "${REPOS[@]}"
-do
- echo "Fetching manifests in repository '$repo'..."
- digests=(`az acr repository show-manifests $AZ_NAME_OUTPUT_PARAMS --repository $repo --orderby time_asc --query "$azQuery"`)
-
- echo "Deleting ${#digests[@]} images created before '$tsLimit' in repository '$repo'..."
- for digest in "${digests[@]}"
- do
- az acr repository delete --name $ACR_NAME --image "$repo@$digest" $YES
- echo "> Deleted $digest"
- done
- echo
-done
diff --git a/vsts/scripts/cleanDocker.sh b/vsts/scripts/cleanDocker.sh
deleted file mode 100644
index 4a6c2dbadf..0000000000
--- a/vsts/scripts/cleanDocker.sh
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/bin/bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-
-declare -r BUILD_NUMBER="$BUILD_BUILDNUMBER"
-declare -r DOCKER_SYSTEM_PRUNE="${ORYX_DOCKER_SYSTEM_PRUNE:-false}"
-
-echo
-echo "Printing all running containers and stopped containers"
-echo
-docker ps -a
-echo
-echo "Kill all running containers and delete all stopped containers"
-echo
-docker kill $(docker ps -q)
-docker rm -f $(docker ps -a -q)
-
-function UntagImages() {
- local imagePattern=$1
- local imagesToUntag=$(docker images --filter=reference="$imagePattern" --format "{{.Repository}}:{{.Tag}}")
-
- echo
- echo "Found following images having the pattern '$imagePattern'. Untagging them ..."
- echo $imagesToUntag
- echo
-
- if [ ! -z "$imagesToUntag" ]
- then
- docker rmi -f $imagesToUntag
- fi
-}
-
-echo
-echo "Current list of docker images:"
-echo
-docker images
-
-# An image that is built in our pipelines is tagged with 'latest' and 'build number'.
-# The following is to untag an image with the 'build number' tag so that when the next time
-# images are built, the older images can become dangled which can later be cleaned up.
-#
-# **NOTE**
-# - We still keep the tags of the following pattern because we still need some cache so that next builds are faster
-# a. oryxdevmcr.azurecr.io/public/oryx/*:latest
-# - We should untag these images only after they have been pushed to a remote repository.
-UntagImages "alpine"
-UntagImages "test-*"
-UntagImages "oryxdevms/*:*.*"
-UntagImages "oryxdevms/*:latest"
-UntagImages "oryxtests/*:latest"
-UntagImages "oryxprod/*:latest"
-UntagImages "oryxprod/*:*.*"
-UntagImages "terrapindev.azurecr.io/*"
-UntagImages "terraprodwus2registry.azurecr.io/*"
-UntagImages "oryxmcr.azurecr.io/public/oryx/*:latest"
-UntagImages "oryxmcr.azurecr.io/public/oryx/*:*.*"
-UntagImages "mcr.microsoft.com/oryx/*:20190417.1"
-UntagImages "mcr.microsoft.com/oryx/*:20190506.1"
-UntagImages "mcr.microsoft.com/oryx/*:20190506.2"
-UntagImages "mcr.microsoft.com/oryx/*:20190506.3"
-UntagImages "mcr.microsoft.com/oryx/*:20190506.4"
-UntagImages node:4.4.7
-UntagImages node:4.5.0
-UntagImages node:4.8.7
-UntagImages node:6.2.2
-UntagImages node:6.6.0
-UntagImages node:6.9.5
-UntagImages node:6.10.3
-UntagImages node:6.11.5
-UntagImages node:8.0.0
-UntagImages node:8.1.4
-UntagImages node:8.2.1
-UntagImages node:8.8.1
-UntagImages node:8.9.4
-
-echo
-echo "Updated list of docker images:"
-echo
-docker images
-
-echo
-echo "Cleanup: Run 'docker system prune': $DOCKER_SYSTEM_PRUNE"
-if [ "$DOCKER_SYSTEM_PRUNE" == "true" ]
-then
- docker system prune -f
-
- echo
- echo "Updated list of docker images:"
- echo
- docker images
-fi
\ No newline at end of file
diff --git a/vsts/scripts/copyAllBlobsToProdStorageAccount.sh b/vsts/scripts/copyAllBlobsToProdStorageAccount.sh
deleted file mode 100644
index 7b440b82e2..0000000000
--- a/vsts/scripts/copyAllBlobsToProdStorageAccount.sh
+++ /dev/null
@@ -1,110 +0,0 @@
-#!/bin/bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-
-set -ex
-
-declare -r REPO_DIR=$( cd $( dirname "$0" ) && cd .. && cd .. && pwd )
-source $REPO_DIR/platforms/__common.sh
-
-azCopyDir="/tmp/azcopy-tool"
-
-function blobContainerExistsInProd() {
- local containerName="$1"
- local exitCode=1
- curl -I "$PROD_SDK_STORAGE_BASE_URL/$containerName?restype=container" 2> /tmp/curlError.txt 1> /tmp/curlOut.txt
- grep "HTTP/1.1 200 OK" /tmp/curlOut.txt &> /dev/null
- exitCode=$?
- rm -f /tmp/curlOut.txt
- rm -f /tmp/curlError.txt
- if [ $exitCode -eq 0 ]; then
- return 0
- else
- return 1
- fi
-}
-
-function copyBlobContainerToProd() {
- set +x
- local platformName="$1"
-
- if shouldOverwriteSdk || shouldOverwritePlatformSdk $platformName; then
- echo
- echo "Overwriting blob container '$platformName' in storage account '$destinationSdk'."
- # azcopy copy [source] [destination] [flags]
- if [ $dryRun == "False" ] ; then
- "$azCopyDir/azcopy" copy \
- "$sourceSdk/$platformName$sasToken" \
- "$PROD_SDK_STORAGE_BASE_URL/$platformName$PROD_STORAGE_SAS_TOKEN" --overwrite true --recursive
- else
- "$azCopyDir/azcopy" copy \
- "$sourceSdk/$platformName$sasToken" \
- "$PROD_SDK_STORAGE_BASE_URL/$platformName$PROD_STORAGE_SAS_TOKEN" --overwrite true --recursive --dry-run
- fi
- elif blobContainerExistsInProd $platformName; then
- echo
- echo "Blob container '$platformName' already exists in Prod storage account. Skipping copying it..."
- else
- echo
- echo "Blob container '$platformName' does not exist in Prod. Copying it from $sourceSdk..."
- # azcopy copy [source] [destination] [flags]
- if [ $dryRun == "False" ] ; then
- "$azCopyDir/azcopy" copy \
- "$sourceSdk/$platformName$sasToken" \
- "$PROD_SDK_STORAGE_BASE_URL/$platformName$PROD_STORAGE_SAS_TOKEN" --overwrite false --recursive
- else
- "$azCopyDir/azcopy" copy \
- "$sourceSdk/$platformName$sasToken" \
- "$PROD_SDK_STORAGE_BASE_URL/$platformName$PROD_STORAGE_SAS_TOKEN" --overwrite false --recursive --dry-run
- fi
- fi
- set -x
-}
-
-if [ ! -f "$azCopyDir/azcopy" ]; then
- curl -SL https://aka.ms/downloadazcopy-v10-linux -o /tmp/azcopy_download.tar.gz
- tar -xvf /tmp/azcopy_download.tar.gz -C /tmp
- rm -rf /tmp/azcopy_download.tar.gz
- mkdir -p $azCopyDir
- cp /tmp/azcopy_linux_amd64_*/azcopy $azCopyDir
-
- echo "Version of azcopy tool being used:"
- $azCopyDir/azcopy --version
-fi
-
-sourceSdk=""
-sasToken=""
-
-if [ "$1" = $SANDBOX_SDK_STORAGE_BASE_URL ]; then
- sourceSdk=$SANDBOX_SDK_STORAGE_BASE_URL
- sasToken=$SANDBOX_STORAGE_SAS_TOKEN
-elif [ "$1" = $DEV_SDK_STORAGE_BASE_URL ]; then
- sourceSdk=$DEV_SDK_STORAGE_BASE_URL
- sasToken=$DEV_STORAGE_SAS_TOKEN
-elif [ "$1" = $PRIVATE_STAGING_SDK_STORAGE_BASE_URL ]; then
- sourceSdk=$PRIVATE_STAGING_SDK_STORAGE_BASE_URL
- set +x
- sasToken=$ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN
- set -x
-else
- echo "Error: $1 is an invalid source storage account url."
- exit 1
-fi
-
-dryRun=$2
-if [ $dryRun != "True" ] && [ $dryRun != "False" ]; then
- echo "Error: Dry run must be True or False. Was: '$dryRun'"
- exit 1
-fi
-
-copyBlobContainerToProd "dotnet"
-copyBlobContainerToProd "python"
-copyBlobContainerToProd "nodejs"
-copyBlobContainerToProd "php"
-copyBlobContainerToProd "php-composer"
-copyBlobContainerToProd "ruby"
-copyBlobContainerToProd "java"
-copyBlobContainerToProd "maven"
-copyBlobContainerToProd "golang"
diff --git a/vsts/scripts/copySdksFromProdToStorageAccount.sh b/vsts/scripts/copySdksFromProdToStorageAccount.sh
deleted file mode 100644
index aa31a758d8..0000000000
--- a/vsts/scripts/copySdksFromProdToStorageAccount.sh
+++ /dev/null
@@ -1,121 +0,0 @@
-#!/bin/bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-
-set -ex
-
-declare -r REPO_DIR=$( cd $( dirname "$0" ) && cd .. && cd .. && pwd )
-source $REPO_DIR/platforms/__common.sh
-
-azCopyDir="/tmp/azcopy-tool"
-
-function blobContainerExistsInDestination() {
- local containerName="$1"
- local exitCode=1
- curl -I "$destinationSdkUrl/$containerName?restype=container" 2> /tmp/curlError.txt 1> /tmp/curlOut.txt
- grep "HTTP/1.1 200 OK" /tmp/curlOut.txt &> /dev/null
- exitCode=$?
- rm -f /tmp/curlOut.txt
- rm -f /tmp/curlError.txt
- if [ $exitCode -eq 0 ]; then
- return 0
- else
- return 1
- fi
-}
-
-function copyBlobContainerFromProdToDestination() {
- set +x
- local platformName="$1"
-
- if [ $overwrite == "True" ] ; then
- echo
- echo "Overwriting blob container '$platformName' in storage account '$destinationSdkUrl'."
- # azcopy copy [source] [destination] [flags]
- if [ $dryRun == "False" ] ; then
- "$azCopyDir/azcopy" copy \
- "$PROD_SDK_STORAGE_BASE_URL/$platformName$PROD_STORAGE_SAS_TOKEN" \
- "$destinationSdkUrl/$platformName$sasToken" --overwrite true --recursive
- else
- "$azCopyDir/azcopy" copy \
- "$PROD_SDK_STORAGE_BASE_URL/$platformName$PROD_STORAGE_SAS_TOKEN" \
- "$destinationSdkUrl/$platformName$sasToken" --overwrite true --recursive --dry-run
- fi
- elif blobContainerExistsInDestination $platformName; then
- echo
- echo "Blob container '$platformName' already exists in storage account '$destinationSdkUrl'. Skipping copying it..."
- else
- echo
- echo "Blob container '$platformName' does not exist in storage account '$destinationSdkUrl'. Copying it from $PROD_SDK_STORAGE_BASE_URL..."
- # azcopy copy [source] [destination] [flags]
- if [ $dryRun == "False" ] ; then
- "$azCopyDir/azcopy" copy \
- "$PROD_SDK_STORAGE_BASE_URL/$platformName$PROD_STORAGE_SAS_TOKEN" \
- "$destinationSdkUrl/$platformName$sasToken" --overwrite false --recursive
- else
- "$azCopyDir/azcopy" copy \
- "$PROD_SDK_STORAGE_BASE_URL/$platformName$PROD_STORAGE_SAS_TOKEN" \
- "$destinationSdkUrl/$platformName$sasToken" --overwrite false --recursive --dry-run
- fi
- fi
- set -x
-}
-
-if [ ! -f "$azCopyDir/azcopy" ]; then
- curl -SL https://aka.ms/downloadazcopy-v10-linux -o /tmp/azcopy_download.tar.gz
- tar -xvf /tmp/azcopy_download.tar.gz -C /tmp
- rm -rf /tmp/azcopy_download.tar.gz
- mkdir -p $azCopyDir
- cp /tmp/azcopy_linux_amd64_*/azcopy $azCopyDir
-
- echo "Version of azcopy tool being used:"
- $azCopyDir/azcopy --version
-fi
-
-destinationSdkUrl="https://$1.blob.core.windows.net"
-sasToken=""
-set +x
-
-# case insensitive matching because both secrets and urls are case insensitive
-shopt -s nocasematch
-if [[ "$destinationSdkUrl" == $SANDBOX_SDK_STORAGE_BASE_URL ]]; then
- sasToken=$SANDBOX_STORAGE_SAS_TOKEN
-elif [[ "$destinationSdkUrl" == $DEV_SDK_STORAGE_BASE_URL ]]; then
- sasToken=$DEV_STORAGE_SAS_TOKEN
-elif [[ "$destinationSdkUrl" == $PRIVATE_STAGING_SDK_STORAGE_BASE_URL ]]; then
- sasToken=$ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN
-elif [[ "$destinationSdkUrl" == $PROD_BACKUP_SDK_STORAGE_BASE_URL ]]; then
- sasToken=$PROD_BACKUP_STORAGE_SAS_TOKEN
-# check if the personal sas token has been found in the oryx key vault
-elif [[ "$PERSONAL_STORAGE_SAS_TOKEN" != "\$($1-PERSONAL-STORAGE-SAS-TOKEN)" ]]; then
- sasToken=$PERSONAL_STORAGE_SAS_TOKEN
-else
- echo "Error: $destinationSdkUrl is an invalid destination storage account url."
- exit 1
-fi
-shopt -u nocasematch
-set -x
-
-dryRun=$2
-if [ $dryRun != "True" ] && [ $dryRun != "False" ]; then
- echo "Error: Dry run must be True or False. Was: '$dryRun'"
- exit 1
-fi
-
-overwrite=$3
-if [ $overwrite != "True" ] && [ $overwrite != "False" ]; then
- echo "Error: Overwrite must be True or False. Was: '$overwrite'"
- exit 1
-fi
-
-copyBlobContainerFromProdToDestination "dotnet"
-copyBlobContainerFromProdToDestination "python"
-copyBlobContainerFromProdToDestination "nodejs"
-copyBlobContainerFromProdToDestination "php"
-copyBlobContainerFromProdToDestination "php-composer"
-copyBlobContainerFromProdToDestination "ruby"
-copyBlobContainerFromProdToDestination "java"
-copyBlobContainerFromProdToDestination "maven"
-copyBlobContainerFromProdToDestination "golang"
diff --git a/vsts/scripts/createReleaseTag.sh b/vsts/scripts/createReleaseTag.sh
deleted file mode 100755
index 97a8c51ff7..0000000000
--- a/vsts/scripts/createReleaseTag.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/bash
-
-# branch name is of the format: refs/heads/patch/21090924.1
-replacingText="refs/heads/"
-sourceBranch=$(echo "$BUILD_SOURCEBRANCH" | sed -e "s.$replacingText..g")
-
-tagName="$BUILD_BUILDNUMBER"
-if [[ "$sourceBranch" == exp/* ]]; then
- tagName="exp-$BUILD_BUILDNUMBER"
-elif [[ "$sourceBranch" == patch/* ]]; then
- IFS=/
- read -ra branchNameParts <<< "$sourceBranch"
-
- # Name of the tag which is being patched (ex: 20190730.1)
- patchedTagName=${branchNameParts[1]}
-
- # We want tags for patch releases in the format: 20190730.1-patch1, 20190730.1-patch2 etc.
- baseReleaseTagUrl="https://github.com/microsoft/Oryx/releases/tag"
- patchNumber=0
-
- # Increment patch numbers until we find one for which we have not created a release already
- while true; do
- patchNumber=$((patchNumber + 1))
- fullPatchTagName="$patchedTagName-patch$patchNumber"
- releaseUrl="$baseReleaseTagUrl/$fullPatchTagName"
-
- curl -I "$releaseUrl" 1> /tmp/createReleaseTag.txt 2> /dev/null
- grep "HTTP/1.1 404 Not Found" /tmp/createReleaseTag.txt &> /dev/null
- exitCode=$?
- rm -f /tmp/createReleaseTag.txt
- if [ $exitCode -eq 0 ]; then
- tagName="$fullPatchTagName"
- break
- fi
- done
-fi
-
-echo "Setting release tag name to '$tagName'..."
-echo "##vso[task.setvariable variable=RELEASE_TAG_NAME;]$tagName"
\ No newline at end of file
diff --git a/vsts/scripts/generateReleaseNotes.sh b/vsts/scripts/generateReleaseNotes.sh
deleted file mode 100644
index 8160fcf3c2..0000000000
--- a/vsts/scripts/generateReleaseNotes.sh
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-
-# This script reads `./CHANGELOG.md` file and produces a file that is added as a build artifact which
-# contains the changes only to a partcular build.
-# To achieve this, we use the tags that the release adds to the git repo, and do a `git diff` between the
-# changelog file in that tag and HEAD. The output of this diff is later parsed to only output the new lines.
-# In order for this script to work, the agent running it should have the full git repo available.
-
-set -e
-
-DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
-CHANGELOG_FILE="$DIR/../CHANGELOG.md"
-
-OUTPUT_FILE=$1
-if [ -z "$OUTPUT_FILE" ]; then
- # Create a default file using DevOps' pipeline artifacts directory
- OUTPUT_FILE=$BUILD_ARTIFACTSTAGINGDIRECTORY/Release-notes.md
-fi
-
-echo "Release notes will be placed in $OUTPUT_FILE"
-
-# First, we look for the latest tag that was pushed. Since our builds numbers are lexicographically ordered,
-# YYYYMMDD.P, we just take the latest value that starts with a `2` to avoid other tags that might be in the repo.
-# Optimistic note: yes, this script will break in year 3000, but we can fix it then.
-LAST_TAG=$(git tag --sort=committerdate | tail -n 1)
-
-if [ -z "$LAST_TAG" ]; then
- echo "Couldn't find a base tag, will output the entire file"
- # Ignore the lines starting with [//] which we're using as comments.
- cat $CHANGELOG_FILE | grep -v -e '^\[//\]' > $OUTPUT_FILE
-else
- echo "Getting the diff from latest tag, $LAST_TAG"
- # Get the diff for the changelog file
- # The regex ^+[^+] is used to capture only the added lines, and the [^+], which means "exclude '+', removes the
- # lines that git adds to the diff output containing the file name. Finally, we remove the '+' from the beginning
- # of the selected lines.
- git diff $LAST_TAG HEAD | grep -e ^+[^+] | sed 's/^+//' > $OUTPUT_FILE
-fi
diff --git a/vsts/scripts/publishFilesToAzureStorage.sh b/vsts/scripts/publishFilesToAzureStorage.sh
deleted file mode 100755
index a728016a61..0000000000
--- a/vsts/scripts/publishFilesToAzureStorage.sh
+++ /dev/null
@@ -1,85 +0,0 @@
-#!/bin/bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-
-set -e
-
-declare -r REPO_DIR=$( cd $( dirname "$0" ) && cd .. && cd .. && pwd )
-source $REPO_DIR/platforms/__common.sh
-commit=$GIT_COMMIT
-storageAccountUrl="$1"
-
-uploadFiles() {
- local platform="$1"
- local artifactsDir="$ARTIFACTS_DIR/platformSdks/$platform"
- if [ ! -d "$artifactsDir" ]; then
- return
- fi
-
- allFiles=$(find $artifactsDir -type f -name '*.tar.gz' -o -name 'defaultVersion.*txt')
- for fileToUpload in $allFiles
- do
- echo "Uploading $fileToUpload to $platform"
- fileName=$(basename $fileToUpload)
- fileNameWithoutExtension=${fileName%".tar.gz"}
-
- # Check if there is a metadata file for the corresponding tar.gz file and
- # read and upload it along with the blob
- fileMetadata=""
- metdataFile="$artifactsDir/$fileNameWithoutExtension-metadata.txt"
- if [ -f "$metdataFile" ]; then
- while IFS= read -r line
- do
- line=$(echo $line | tr -d '\r')
- fileMetadata+=" $line"
- done < "$metdataFile"
- fi
-
- checksum=$(sha512sum $fileToUpload | cut -d " " -f 1)
- if [ "$platform" == "golang" ];then
- checksum=$(sha256sum $fileToUpload | cut -d " " -f 1)
- fi
-
- if shouldOverwriteSdk || shouldOverwritePlatformSdk $platform || [[ "$fileToUpload" == *defaultVersion*txt ]]; then
- echo "running az command with override"
- az storage blob upload \
- --name $fileName \
- --file "$fileToUpload" \
- --container-name $platform \
- --blob-endpoint $storageAccountUrl \
- --auth-mode login \
- --metadata \
- Buildnumber="$BUILD_BUILDNUMBER" \
- Commit="$commit" \
- Branch="$BUILD_SOURCEBRANCHNAME" \
- Checksum="$checksum" \
- $fileMetadata \
- --overwrite true \
- --verbose
- else
- echo "running az command without override"
- az storage blob upload \
- --name $fileName \
- --file "$fileToUpload" \
- --container-name $platform \
- --blob-endpoint $storageAccountUrl \
- --auth-mode login \
- --metadata \
- Buildnumber="$BUILD_BUILDNUMBER" \
- Commit="$commit" \
- Branch="$BUILD_SOURCEBRANCHNAME" \
- Checksum="$checksum" \
- $fileMetadata \
- --verbose
- fi
- done
-}
-
-
-platforms=("nodejs" "python" "dotnet" "php" "php-composer" "ruby" "java" "maven" "golang")
-for platform in "${platforms[@]}"
-do
- uploadFiles $platform
-done
diff --git a/vsts/scripts/publishSdksFromSourceToDestStorageAccount.sh b/vsts/scripts/publishSdksFromSourceToDestStorageAccount.sh
deleted file mode 100644
index 1ce5466213..0000000000
--- a/vsts/scripts/publishSdksFromSourceToDestStorageAccount.sh
+++ /dev/null
@@ -1,162 +0,0 @@
-#!/bin/bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-
-declare -r REPO_DIR=$( cd $( dirname "$0" ) && cd .. && cd .. && pwd )
-source $REPO_DIR/platforms/__common.sh
-
-azCopyDir="/tmp/azcopy-tool"
-
-dryRun=$1
-if [ $dryRun != "True" ] && [ $dryRun != "False" ]; then
- echo "Error: Dry run must be True or False. Was: '$dryRun'"
- exit 1
-fi
-
-export AZCOPY_AUTO_LOGIN_TYPE=AZCLI
-export AZCOPY_TENANT_ID=$tenantId
-
-function blobExistsInProd() {
- local containerName="$1"
- local blobName="$2"
- local statusCode
- statusCode=$(curl -s -o /dev/null -w "%{http_code}" -I "$DEST_SDK_STORAGE_BASE_URL/$containerName/$blobName")
-
- if [ "$statusCode" -eq 200 ]; then
- return 0
- else
- return 1
- fi
-}
-
-function copyBlob() {
- local platformName="$1"
- local blobName="$2"
- local arg=""
-
- if shouldOverwriteSdk || shouldOverwritePlatformSdk $platformName || isDefaultVersionFile $blobName; then
- echo
- echo "Blob '$blobName' exists in Prod storage container '$platformName'. Overwriting it..."
- arg=" --overwrite true"
- fi
-
- if blobExistsInProd $platformName $blobName && [ -z "$arg" ]; then
- echo
- echo "Blob '$blobName' already exists in Prod storage container '$platformName'. Skipping copying it..."
- else
- echo
- echo "Blob '$blobName' does not exist in Prod storage container '$platformName'. Copying it..."
- if [ $dryRun == "False" ]; then
- "$azCopyDir/azcopy" copy \
- "$SOURCE_SDK_STORAGE_BASE_URL/$platformName/$blobName" \
- "$DEST_SDK_STORAGE_BASE_URL/$platformName/$blobName" $arg --from-to BlobBlob --trusted-microsoft-suffixes *.azurefd.net
- else
- "$azCopyDir/azcopy" copy \
- "$SOURCE_SDK_STORAGE_BASE_URL/$platformName/$blobName" \
- "$DEST_SDK_STORAGE_BASE_URL/$platformName/$blobName" --dry-run $arg --from-to BlobBlob --trusted-microsoft-suffixes *.azurefd.net
- fi
- fi
-}
-
-function copyPlatformBlobsToProd() {
- local platformName="$1"
- copyPlatformBlobsToProdForOsFlavor "$platformName" "stretch"
- copyPlatformBlobsToProdForOsFlavor "$platformName" "buster"
- copyPlatformBlobsToProdForOsFlavor "$platformName" "bullseye"
- copyPlatformBlobsToProdForOsFlavor "$platformName" "bookworm"
- copyPlatformBlobsToProdForOsFlavor "$platformName" "focal-scm"
- copyPlatformBlobsToProdForOsFlavor "$platformName" "noble"
-}
-
-function copyPlatformBlobsToProdForOsFlavor() {
- local platformName="$1"
- local osFlavor="$2"
- local versionsFile="$REPO_DIR/platforms/$platformName/versions/$osFlavor/versionsToBuild.txt"
- local defaultFile=""
- local binaryPrefix=""
-
- if [ "$platformName" == "php-composer" ]; then
- versionsFile="$REPO_DIR/platforms/php/composer/versions/$osFlavor/versionsToBuild.txt"
- elif [ "$platformName" == "maven" ]; then
- versionsFile="$REPO_DIR/platforms/java/maven/versions/$osFlavor/versionsToBuild.txt"
- fi
-
- if [ "$osFlavor" == "stretch" ]; then
- defaultFile="defaultVersion.txt"
- copyBlob "$platformName" "$defaultFile"
- binaryPrefix="$platformName"
- else
- binaryPrefix="$platformName-$osFlavor"
- fi
-
- # Function to copy platform blobs to production for a specific Os flavor
- # Dotnet, nodejs, php and python platforms are currently supporting bookworm.
- # Allowed combinations:
- # - platformName=dotnet and osFlavor=bookworm
- # - platformName=nodejs and osFlavor=bookworm
- # - platformName=php and osFlavor=bookworm
- # - platformName=python and osFlavor=bookworm
- # - platformName=dotnet and osFlavor=noble
- # - platformName=python and osFlavor=noble
- # Not allowed combinations:
- # - Any platformName other than dotnet, node js, python and php with osFlavor=bookworm
- # - Any platformName other than dotnet, python, php and node with osFlavor=noble
- if [ "$osFlavor" == "bookworm" ] && \
- [ "$platformName" != "dotnet" ] && \
- [ "$platformName" != "nodejs" ] && \
- [ "$platformName" != "php" ] && \
- [ "$platformName" != "php-composer" ] && \
- [ "$platformName" != "python" ]; then
- # Do not copy blobs
- echo "Copying blobs for platformName=$platformName and osFlavor=$osFlavor is not supported yet."
- elif [ "$osFlavor" == "noble" ] && \
- [ "$platformName" != "dotnet" ] && \
- [ "$platformName" != "nodejs" ] && \
- [ "$platformName" != "php" ] && \
- [ "$platformName" != "php-composer" ] && \
- [ "$platformName" != "python" ]; then
- # Do not copy blobs
- echo "Copying blobs for platformName=$platformName and osFlavor=$osFlavor is not supported yet."
- else
- defaultFile="defaultVersion.$osFlavor.txt"
- copyBlob "$platformName" "$defaultFile"
-
- # Here '3' is a file descriptor which is specifically used to read the versions file.
- # This is used since 'azcopy' command seems to also be using the standard file descriptor for stdin '0'
- # which causes some issues when trying to loop through the lines of the file.
- while IFS= read -u 3 -r line || [[ -n $line ]]
- do
- # Ignore whitespace and comments
- if [ -z "$line" ] || [[ $line = \#* ]] ; then
- continue
- fi
-
- IFS=',' read -ra LINE_INFO <<< "$line"
- version=$(echo -e "${LINE_INFO[0]}" | sed -e 's/^[[:space:]]*//')
- copyBlob "$platformName" "$binaryPrefix-$version.tar.gz"
- done 3< "$versionsFile"
- fi
-}
-
-if [ ! -f "$azCopyDir/azcopy" ]; then
- curl -SL https://aka.ms/downloadazcopy-v10-linux -o /tmp/azcopy_download.tar.gz
- tar -xvf /tmp/azcopy_download.tar.gz -C /tmp
- rm -rf /tmp/azcopy_download.tar.gz
- mkdir -p $azCopyDir
- cp /tmp/azcopy_linux_amd64_*/azcopy $azCopyDir
-
- echo "Version of azcopy tool being used:"
- $azCopyDir/azcopy --version
-fi
-
-copyPlatformBlobsToProd "dotnet"
-copyPlatformBlobsToProd "python"
-copyPlatformBlobsToProd "nodejs"
-copyPlatformBlobsToProd "php"
-copyPlatformBlobsToProd "php-composer"
-copyPlatformBlobsToProd "ruby"
-copyPlatformBlobsToProd "java"
-copyPlatformBlobsToProd "maven"
-copyPlatformBlobsToProd "golang"
diff --git a/vsts/scripts/publishSdksFromStagingToProdStorageAccount.sh b/vsts/scripts/publishSdksFromStagingToProdStorageAccount.sh
deleted file mode 100644
index 808bd9ee07..0000000000
--- a/vsts/scripts/publishSdksFromStagingToProdStorageAccount.sh
+++ /dev/null
@@ -1,160 +0,0 @@
-#!/bin/bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-
-set -e
-
-declare -r REPO_DIR=$( cd $( dirname "$0" ) && cd .. && cd .. && pwd )
-source $REPO_DIR/platforms/__common.sh
-
-azCopyDir="/tmp/azcopy-tool"
-
-dryRun=$1
-if [ $dryRun != "True" ] && [ $dryRun != "False" ]; then
- echo "Error: Dry run must be True or False. Was: '$dryRun'"
- exit 1
-fi
-
-function blobExistsInProd() {
- local containerName="$1"
- local blobName="$2"
- local exitCode=1
- curl -I $PROD_SDK_STORAGE_BASE_URL/$containerName/$blobName 2> /tmp/curlError.txt 1> /tmp/curlOut.txt
- grep "HTTP/1.1 200 OK" /tmp/curlOut.txt &> /dev/null
- exitCode=$?
- rm -f /tmp/curlOut.txt
- rm -f /tmp/curlError.txt
- if [ $exitCode -eq 0 ]; then
- return 0
- else
- return 1
- fi
-}
-
-function copyBlob() {
- set +x
- local platformName="$1"
- local blobName="$2"
- local isDefaultVersionFile="$3"
-
- if shouldOverwriteSdk || shouldOverwritePlatformSdk $platformName || isDefaultVersionFile $blobName; then
- echo
- echo "Blob '$blobName' exists in Prod storage container '$platformName'. Overwriting it..."
- if [ $dryRun == "False" ]; then
- "$azCopyDir/azcopy" copy \
- "$PRIVATE_STAGING_SDK_STORAGE_BASE_URL/$platformName/$blobName$ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN" \
- "$PROD_SDK_STORAGE_BASE_URL/$platformName/$blobName$PROD_STORAGE_SAS_TOKEN" --overwrite true
- else
- "$azCopyDir/azcopy" copy \
- "$PRIVATE_STAGING_SDK_STORAGE_BASE_URL/$platformName/$blobName$ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN" \
- "$PROD_SDK_STORAGE_BASE_URL/$platformName/$blobName$PROD_STORAGE_SAS_TOKEN" --overwrite true --dry-run
- fi
- elif blobExistsInProd $platformName $blobName; then
- echo
- echo "Blob '$blobName' already exists in Prod storage container '$platformName'. Skipping copying it..."
- else
- echo
- echo "Blob '$blobName' does not exist in Prod storage container '$platformName'. Copying it..."
- if [ $dryRun == "False" ]; then
- "$azCopyDir/azcopy" copy \
- "$PRIVATE_STAGING_SDK_STORAGE_BASE_URL/$platformName/$blobName$ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN" \
- "$PROD_SDK_STORAGE_BASE_URL/$platformName/$blobName$PROD_STORAGE_SAS_TOKEN"
- else
- "$azCopyDir/azcopy" copy \
- "$PRIVATE_STAGING_SDK_STORAGE_BASE_URL/$platformName/$blobName$ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN" \
- "$PROD_SDK_STORAGE_BASE_URL/$platformName/$blobName$PROD_STORAGE_SAS_TOKEN" --dry-run
- fi
- fi
- set -x
-}
-
-function copyPlatformBlobsToProd() {
- local platformName="$1"
- copyPlatformBlobsToProdForDebianFlavor "$platformName" "stretch"
- copyPlatformBlobsToProdForDebianFlavor "$platformName" "buster"
- copyPlatformBlobsToProdForDebianFlavor "$platformName" "bullseye"
- copyPlatformBlobsToProdForDebianFlavor "$platformName" "bookworm"
- copyPlatformBlobsToProdForDebianFlavor "$platformName" "focal-scm"
-}
-
-function copyPlatformBlobsToProdForDebianFlavor() {
- local platformName="$1"
- local debianFlavor="$2"
- local versionsFile="$REPO_DIR/platforms/$platformName/versions/$debianFlavor/versionsToBuild.txt"
- local defaultFile=""
- local binaryPrefix=""
-
- if [ "$platformName" == "php-composer" ]; then
- versionsFile="$REPO_DIR/platforms/php/composer/versions/$debianFlavor/versionsToBuild.txt"
- elif [ "$platformName" == "maven" ]; then
- versionsFile="$REPO_DIR/platforms/java/maven/versions/$debianFlavor/versionsToBuild.txt"
- fi
-
- if [ "$debianFlavor" == "stretch" ]; then
- defaultFile="defaultVersion.txt"
- copyBlob "$platformName" "$defaultFile"
- binaryPrefix="$platformName"
- else
- binaryPrefix="$platformName-$debianFlavor"
- fi
-
- # Function to copy platform blobs to production for a specific Debian flavor
- # Dotnet, nodejs, php and python platforms are currently supporting bookworm.
- # Allowed combinations:
- # - platformName=dotnet and debianFlavor=bookworm
- # - platformName=nodejs and debianFlavor=bookworm
- # - platformName=php and debianFlavor=bookworm
- # - platformName=python and debianFlavor=bookworm
- # Not allowed combinations:
- # - Any platformName other than dotnet, node js, python and php with debianFlavor=bookworm
- if [ "$debianFlavor" == "bookworm" ] && \
- [ "$platformName" != "dotnet" ] && \
- [ "$platformName" != "nodejs" ] && \
- [ "$platformName" != "php" ] && \
- [ "$platformName" != "php-composer" ] && \
- [ "$platformName" != "python" ]; then
- # Do not copy blobs
- echo "Copying blobs for platformName=$platformName and debianFlavor=$debianFlavor is not supported yet."
- else
- defaultFile="defaultVersion.$debianFlavor.txt"
- copyBlob "$platformName" "$defaultFile"
-
- # Here '3' is a file descriptor which is specifically used to read the versions file.
- # This is used since 'azcopy' command seems to also be using the standard file descriptor for stdin '0'
- # which causes some issues when trying to loop through the lines of the file.
- while IFS= read -u 3 -r line || [[ -n $line ]]
- do
- # Ignore whitespace and comments
- if [ -z "$line" ] || [[ $line = \#* ]] ; then
- continue
- fi
-
- IFS=',' read -ra LINE_INFO <<< "$line"
- version=$(echo -e "${LINE_INFO[0]}" | sed -e 's/^[[:space:]]*//')
- copyBlob "$platformName" "$binaryPrefix-$version.tar.gz"
- done 3< "$versionsFile"
- fi
-}
-
-if [ ! -f "$azCopyDir/azcopy" ]; then
- curl -SL https://aka.ms/downloadazcopy-v10-linux -o /tmp/azcopy_download.tar.gz
- tar -xvf /tmp/azcopy_download.tar.gz -C /tmp
- rm -rf /tmp/azcopy_download.tar.gz
- mkdir -p $azCopyDir
- cp /tmp/azcopy_linux_amd64_*/azcopy $azCopyDir
-
- echo "Version of azcopy tool being used:"
- $azCopyDir/azcopy --version
-fi
-
-copyPlatformBlobsToProd "dotnet"
-copyPlatformBlobsToProd "python"
-copyPlatformBlobsToProd "nodejs"
-copyPlatformBlobsToProd "php"
-copyPlatformBlobsToProd "php-composer"
-copyPlatformBlobsToProd "ruby"
-copyPlatformBlobsToProd "java"
-copyPlatformBlobsToProd "maven"
-copyPlatformBlobsToProd "golang"
diff --git a/vsts/scripts/pullAndTag.sh b/vsts/scripts/pullAndTag.sh
deleted file mode 100644
index c7dd3adae5..0000000000
--- a/vsts/scripts/pullAndTag.sh
+++ /dev/null
@@ -1,170 +0,0 @@
-#!/bin/bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-
-set -euo pipefail
-# $1 > buildimage-acr.txt
-declare imagefilter="oryxdevmcr.azurecr.io/public/oryx"
-
-function tagBuildImageForIntegrationTest() {
- local devbuildImageName="$1"
- local devbuildImageType="$2"
- local buildImageFilter="$3"
- local buildImageTagFilter="$4"
- local buildDefName="$BUILD_DEFINITIONNAME"
- local buildNumber="$RELEASE_TAG_NAME"
-
- # Check if a build image filter was provided, and return early if it's not the suffix of the provided build image
- if [ -n "$buildImageFilter" ] && [[ "$devbuildImageName" != *"$buildImageFilter" ]];then
- return
- fi
-
- # Check if a build tag filter was provided, and return early if it doesn't match the provided build tag
- if [ -n "$buildImageTagFilter" ] && [ "$devbuildImageType" != "$buildImageTagFilter" ];then
- return
- fi
-
- # Always use specific build number based tag and then use the same tag to create a 'latest' tag and push it
- if [ -z "$devbuildImageType" ]; then
- buildImage=$devbuildImageName:$buildDefName.$buildNumber
- # Trim the build number tag and append the '':latest' to end of it
- newtag=$devbuildImageName:latest
- else
- buildImage=$devbuildImageName:$devbuildImageType-$buildDefName.$buildNumber
- newtag=$devbuildImageName:$devbuildImageType
- fi
-
- echo "Pulling the build image $buildImage ..."
- docker pull "$buildImage" | sed 's/^/ /'
-
- echo
- echo "Tagging the source image with tag $newtag ..."
-
- docker tag "$buildImage" "$newtag" | sed 's/^/ /'
- echo
- echo -------------------------------------------------------------------------------
-
-}
-
-buildImageFilter=""
-buildImageTagFilter=""
-platformFilter=""
-platformVersionFilter=""
-
-if [ -n "$TESTINTEGRATIONCASEFILTER" ];then
- IFS='&'
- read -a splitArr <<< "$TESTINTEGRATIONCASEFILTER"
- for val in "${splitArr[@]}";
- do
- if [[ "$val" == "category="* ]];then
- categoryPrefix="category="
- strippedVal=${val#"$categoryPrefix"}
- IFS='-'
- read -a tempSplitArr <<< "$strippedVal"
- len=${#tempSplitArr[@]}
- platformFilter="${tempSplitArr[0]}"
- if [[ $len -gt 1 ]];then
- platformVersionFilter="${tempSplitArr[1]}"
- fi
- fi
-
- if [[ "$val" == "build-image="* ]];then
- buildImagePrefix="build-image="
- strippedVal=${val#"$buildImagePrefix"}
- buildImageFilter="build"
- buildImageTagFilter="$strippedVal"
- if [[ "$strippedVal" == "cli-debian-stretch" ]];then
- buildImageFilter="cli"
- buildImageTagFilter="debian-stretch"
- elif [[ "$strippedVal" == "cli-debian-buster" ]];then
- buildImageFilter="cli"
- buildImageTagFilter="debian-buster"
- elif [[ "$strippedVal" == "cli-debian-bullseye" ]];then
- buildImageFilter="cli"
- buildImageTagFilter="debian-bullseye"
- elif [[ "$strippedVal" == "cli-builder-debian-bullseye" ]];then
- buildImageFilter="cli"
- buildImageTagFilter="builder-debian-bullseye"
- fi
- fi
- done
-fi
-
-echo "Build image filter is set for '$buildImageFilter:$buildImageTagFilter'"
-
-tagBuildImageForIntegrationTest "$imagefilter/build" "azfunc-jamstack-debian-stretch" "$buildImageFilter" "$buildImageTagFilter"
-tagBuildImageForIntegrationTest "$imagefilter/build" "azfunc-jamstack-debian-buster" "$buildImageFilter" "$buildImageTagFilter"
-tagBuildImageForIntegrationTest "$imagefilter/build" "azfunc-jamstack-debian-bullseye" "$buildImageFilter" "$buildImageTagFilter"
-tagBuildImageForIntegrationTest "$imagefilter/build" "github-actions-debian-buster" "$buildImageFilter" "$buildImageTagFilter"
-tagBuildImageForIntegrationTest "$imagefilter/build" "github-actions-debian-bullseye" "$buildImageFilter" "$buildImageTagFilter"
-tagBuildImageForIntegrationTest "$imagefilter/build" "github-actions-debian-bookworm" "$buildImageFilter" "$buildImageTagFilter"
-tagBuildImageForIntegrationTest "$imagefilter/build" "full-debian-buster" "$buildImageFilter" "$buildImageTagFilter"
-tagBuildImageForIntegrationTest "$imagefilter/build" "full-debian-bullseye" "$buildImageFilter" "$buildImageTagFilter"
-tagBuildImageForIntegrationTest "$imagefilter/cli" "debian-stretch" "$buildImageFilter" "$buildImageTagFilter"
-tagBuildImageForIntegrationTest "$imagefilter/cli" "debian-buster" "$buildImageFilter" "$buildImageTagFilter"
-tagBuildImageForIntegrationTest "$imagefilter/cli" "debian-bullseye" "$buildImageFilter" "$buildImageTagFilter"
-tagBuildImageForIntegrationTest "$imagefilter/cli" "builder-debian-bullseye" "$buildImageFilter" "$buildImageTagFilter"
-
-
-# Extract language string from string (e.g extract 'python' from 'category=python', 'debian-stretch' from 'build-image=debian-stretch')
-if [ -n "$TESTINTEGRATIONCASEFILTER" ];then
- # For DB tests we want only the build images to be present at the agent machine
- if [[ "$platformFilter" != "db" ]];then
-
- # Always convert filter for runtime images to lower case
- echo "Runtime image filter is set for $platformFilter with version $platformVersionFilter"
-
- # Create a local file that consolidates the different runtime image files into one to be read from
- # Note: we don't write this file to the drop folder as we don't want this file written to for every integration test job
- sourceFile="$BUILD_SOURCESDIRECTORY/temp/images/runtime-images-acr.txt"
-
- if [[ ! -f "$sourceFile" ]]; then
- echo "Creating consolidated runtime image file '$sourceFile'..."
- mkdir -p "$BUILD_SOURCESDIRECTORY/temp/images"
- touch "$sourceFile"
- fi
-
- echo "Consolidating runtime image files into '$sourceFile'..."
-
- (cat "$BUILD_ARTIFACTSTAGINGDIRECTORY/drop/images/runtime-images-acr.buster.txt"; echo) >> "$sourceFile"
- (cat "$BUILD_ARTIFACTSTAGINGDIRECTORY/drop/images/runtime-images-acr.bullseye.txt"; echo) >> "$sourceFile"
- (cat "$BUILD_ARTIFACTSTAGINGDIRECTORY/drop/images/runtime-images-acr.bookworm.txt"; echo) >> "$sourceFile"
-
- echo "Iterating over previously pushed images defined in new '$sourceFile' file..."
-
- while read sourceImage; do
- # Always use specific build number based tag and then use the same tag
- # to create a version tag and push it
- if [[ "$sourceImage" != *:latest ]]; then
- if [[ "$sourceImage" == *"$platformFilter:$platformVersionFilter"* ]]; then
- echo "Pulling the runtime image $sourceImage ..."
- docker pull "$sourceImage" | sed 's/^/ /'
-
- # Trim the build number tag and append the version to end of it
- image="${sourceImage%:*}"
- echo
- echo "image $image"
- tagName="${sourceImage#$image:*}"
- echo "tagName $tagName"
- version="${tagName%%-*}"
-
- if [[ "$tagName" == *-fpm* ]]; then
- version="$version"-fpm
- fi
-
- echo "version $version"
- newtag="$image:$version"
-
- echo
- echo "Tagging the source image with tag $newtag ..."
- docker tag "$sourceImage" "$newtag" | sed 's/^/ /'
- echo
- echo -------------------------------------------------------------------------------
- fi
- fi
- done <"$sourceFile"
- fi
-fi
-
diff --git a/vsts/scripts/pushBaseImagesToRegistry.sh b/vsts/scripts/pushBaseImagesToRegistry.sh
deleted file mode 100755
index 2aac91da2d..0000000000
--- a/vsts/scripts/pushBaseImagesToRegistry.sh
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-
-set -euo pipefail
-# $1 > file that has all the tags
-# e.g. /data/agent/_work/206/a/drop/images/yarn-cache-build/oryxmcr-base-images-mcr.txt
-
-bookwormBaseImagesFile="$1"-bookworm-base-images-mcr.txt
-bullseyeBaseImagesFile="$1"-bullseye-base-images-mcr.txt
-busterBaseImagesFile="$1"-buster-base-images-mcr.txt
-
-echo "base image tag file is in directory: $1"
-
-if [ -f "$bookwormBaseImagesFile" ]; then
- echo "$bookwormBaseImagesFile exists. pushing bookworm image tags ..."
- while read imageName; do
- # read the tags from file
- echo "Pushing image $imageName ..."
- docker push "$imageName"
- done <"$bookwormBaseImagesFile"
-fi
-
-if [ -f "$bullseyeBaseImagesFile" ]; then
- echo "$bullseyeBaseImagesFile exists. pushing bullseye image tags ..."
- while read imageName; do
- # read the tags from file
- echo "Pushing image $imageName ..."
- docker push "$imageName"
- done <"$bullseyeBaseImagesFile"
-fi
-
-if [ -f "$busterBaseImagesFile" ]; then
- echo "$busterBaseImagesFile exists. pushing buster image tags ..."
- while read imageName; do
- # read the tags from file
- echo "Pushing image $imageName ..."
- docker push "$imageName"
- done <"$busterBaseImagesFile"
-fi
diff --git a/vsts/scripts/pushImagesToRegistry.sh b/vsts/scripts/pushImagesToRegistry.sh
deleted file mode 100755
index f79369d2b0..0000000000
--- a/vsts/scripts/pushImagesToRegistry.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-
-set -euo pipefail
-# $1 > file that has all the tags
-
-imagesFile="$1"
-
-echo "image tag file is in directory: $1"
-
-if [ -f "$imagesFile" ]; then
- echo "$imagesFile exists. pushing image tags ..."
- while read imageName; do
- # read the tags from file
- echo "Pushing image $imageName ..."
- docker push "$imageName"
- done <"$imagesFile"
-fi
-
-
diff --git a/vsts/scripts/removeDockerArtifacts.sh b/vsts/scripts/removeDockerArtifacts.sh
deleted file mode 100644
index f173dc0b40..0000000000
--- a/vsts/scripts/removeDockerArtifacts.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-
-declare -r BUILD_NUMBER="$BUILD_BUILDNUMBER"
-declare -r DOCKER_SYSTEM_PRUNE="${ORYX_DOCKER_SYSTEM_PRUNE:-true}"
-
-# The following code snippet is a hack to workaround the following issue:
-# Our CI agents run under a non-root account, but docker containers run under the 'root' account.
-# Since a non-root account cannot delete files created by a 'root' account, we try to run a
-# docker container and run the clean up command from there using the volume mounted directory trick.
-#
-# This is required for end-to-end tests to work, where a host's directory is volume mounted to a build
-# image and the same host directory is volume mounted to a runtime image too.
-#
-# Even though Docker has a way to run a container as a non-root (for example, in our case the CI agent account),
-# this causes problems in build image where we try to install packages and stuff and we run into permission problems.
-# Since that is too intrusive and error prone, this hack allows us to not worry about those permission issues.
-
-mountedDirs="/tmp/OryxTestsMountedDirs"
-echo
-echo "Mounted Directory: "$mountedDirs
-echo
-
-if [ -d "$mountedDirs" ]; then
- echo
- echo "Cleaning up files created by test containers ..."
- docker run -v $mountedDirs:/tempDirs alpine /bin/sh -c "rm -rf /tempDirs/* && ls /tempDirs"
-fi
\ No newline at end of file
diff --git a/vsts/scripts/tagBaseImagesForRelease.sh b/vsts/scripts/tagBaseImagesForRelease.sh
deleted file mode 100644
index 3eeee31008..0000000000
--- a/vsts/scripts/tagBaseImagesForRelease.sh
+++ /dev/null
@@ -1,112 +0,0 @@
-#!/bin/bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-
-set -o pipefail
-
-declare -r artifactsDir="$BUILD_ARTIFACTSTAGINGDIRECTORY/drop/images"
-declare -r outFileName="base-images-mcr.txt"
-declare -r buildNumber=$BUILD_BUILDNUMBER
-
-function retagImageWithStagingRepository()
-{
- echo "Number of arguments passed: $@"
- echo "Pulling and retagging bases images from '$1'..."
-
- # '$1' is the imagetag file name
- # '$2' is the image name e.g dotnetcore
- # '$3' argument is the debianflavor e.g buster or stretch
-
- echo "Reading file '$1' to pull images from dev acr ..."
- echo "Retagging images for image '$3' based '$2' for registry '$acrProdRepoPrefix'..."
-
- local artifactsFile="$artifactsDir/$1"
- local outFile="$artifactsDir/$2/$acrProdRepoPrefix-$3-$outFileName"
-
- echo "output tags to be written to: '$outFile'"
-
- while read sourceImage; do
- # Always use specific build number based tag and then use the same tag to create a 'latest' tag and push it
- if [[ $sourceImage != *:latest ]]; then
- echo "Pulling the source image $sourceImage ..."
- docker pull "$sourceImage" | sed 's/^/ /'
-
- # Following is an example of released tag for this image
- # build-yarn-cache:20190621.3
-
- newtag=$(echo "$sourceImage" | sed -r 's/oryxdevmcr/'"$acrProdRepoPrefix"'/')
- echo
- echo "Tagging the source image with tag $newtag ..."
- echo "$newtag">>"$outFile"
- docker tag "$sourceImage" "$newtag" | sed 's/^/ /'
- echo -------------------------------------------------------------------------------
- fi
- done <"$artifactsFile"
-}
-
-# first argument to the script is the image name e.g dotnetcore
-# second argument to the script is the acrrepoprefix, e.g. oryxmcr
-
-imageName=$1
-acrProdRepoPrefix="$2"
-
-if [[ -z $imageName ]]; then
- echo
- echo "Invalid parameter: imageName cann't be blank"
- exit 1
-fi
-
-echo "Creating release tags for '$imageName' ..."
-mkdir -p $artifactsDir/$imageName
-
-if [ "$imageName" == "node" ]
-then
- echo ""
- retagImageWithStagingRepository node-runtimeimage-bases-buster.txt $imageName buster
- retagImageWithStagingRepository node-runtimeimage-bases-bullseye.txt $imageName bullseye
- retagImageWithStagingRepository node-runtimeimage-bases-bookworm.txt $imageName bookworm
-elif [ "$imageName" == "python-build" ]
-then
- echo ""
- retagImageWithStagingRepository python-buildimage-bases.txt $imageName $acrProdRepoPrefix
-elif [ "$imageName" == "python" ]
-then
- echo ""
- echo $imageName
- retagImageWithStagingRepository python-runtimeimage-bases-bullseye.txt $imageName bullseye
- retagImageWithStagingRepository python-runtimeimage-bases-bookworm.txt $imageName bookworm
-elif [ "$imageName" == "php-build" ]
-then
- echo ""
- retagImageWithStagingRepository php-buildimage-bases.txt $imageName $acrProdRepoPrefix
-elif [ "$imageName" == "php" ]
-then
- echo ""
- retagImageWithStagingRepository php-runtimeimage-bases-buster.txt $imageName buster
- retagImageWithStagingRepository php-runtimeimage-bases-bullseye.txt $imageName bullseye
- retagImageWithStagingRepository php-runtimeimage-bases-bookworm.txt $imageName bookworm
-elif [ "$imageName" == "php-fpm" ]
-then
- echo ""
- echo $imageName
- retagImageWithStagingRepository php-fpm-runtimeimage-bases-buster.txt $imageName buster
- retagImageWithStagingRepository php-fpm-runtimeimage-bases-bullseye.txt $imageName bullseye
- retagImageWithStagingRepository php-fpm-runtimeimage-bases-bookworm.txt $imageName bookworm
-elif [ "$imageName" == "dotnetcore" ]
-then
- echo ""
- echo $imageName
- retagImageWithStagingRepository dotnetcore-runtimeimage-bases-buster.txt $imageName buster
- retagImageWithStagingRepository dotnetcore-runtimeimage-bases-bullseye.txt $imageName bullseye
- retagImageWithStagingRepository dotnetcore-runtimeimage-bases-bookworm.txt $imageName bookworm
-elif [ "$imageName" == "ruby" ]
-then
- echo ""
- echo $imageName
- retagImageWithStagingRepository ruby-runtimeimage-bases-buster.txt $imageName buster
-else
- echo "ImageName $imageName is invalid/not supported.. "
- exit 1
-fi
\ No newline at end of file
diff --git a/vsts/scripts/tagBuildImagesForRelease.sh b/vsts/scripts/tagBuildImagesForRelease.sh
deleted file mode 100644
index 2ddadf3083..0000000000
--- a/vsts/scripts/tagBuildImagesForRelease.sh
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/bin/bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-
-set -x
-set -o pipefail
-
-declare -r REPO_DIR=$( cd $( dirname "$0" ) && cd .. && cd .. && pwd )
-source $REPO_DIR/build/__variables.sh
-
-outPmeFileMCR="$BUILD_ARTIFACTSTAGINGDIRECTORY/drop/images/oryxprodmcr-build-images-mcr.txt"
-
-if [ -f "$outPmeFileMCR" ]; then
- rm $outPmeFileMCR
-fi
-
-function tagBuildImage() {
- local devRegistryImageName="$1"
- local prodRegistryLatestTagName="$2"
- local prodRegistrySpecificTagName="$3"
- local prodPmeRegistryRepoName="oryxprodmcr.azurecr.io/public/oryx/build"
- sourceBranchName=$BUILD_SOURCEBRANCHNAME
-
- echo "Pulling the source image $devRegistryImageName..."
- docker pull "$devRegistryImageName" | sed 's/^/ /'
-
- echo
- echo "Tagging the source image for $prodPmeRegistryRepoName with tag $prodRegistrySpecificTagName..."
- prodPmeRegistryImageName="$prodPmeRegistryRepoName:$prodRegistrySpecificTagName"
- docker tag "$devRegistryImageName" "$prodPmeRegistryImageName"
- echo "$prodPmeRegistryImageName">>"$outPmeFileMCR"
-
- if [ "$sourceBranchName" == "main" ]; then
- echo "Tagging the source image for $prodPmeRegistryRepoName with tag $prodRegistryLatestTagName..."
- prodPmeRegistryImageName="$prodPmeRegistryRepoName:$prodRegistryLatestTagName"
- docker tag "$devRegistryImageName" "$prodPmeRegistryRepoName:$prodRegistryLatestTagName"
- echo "$prodPmeRegistryImageName">>"$outPmeFileMCR"
-
- else
- echo "Not creating 'latest' tag as source branch is not 'main'. Current branch is $sourceBranchName"
- fi
-
- echo -------------------------------------------------------------------------------
-}
-
-tagBuildImage "oryxdevmcr.azurecr.io/public/oryx/build:$BUILD_DEFINITIONNAME.$RELEASE_TAG_NAME" "latest" "$RELEASE_TAG_NAME"
-tagBuildImage "oryxdevmcr.azurecr.io/public/oryx/build:azfunc-jamstack-debian-buster-$BUILD_DEFINITIONNAME.$RELEASE_TAG_NAME" "azfunc-jamstack-debian-buster" "azfunc-jamstack-debian-buster-$RELEASE_TAG_NAME"
-tagBuildImage "oryxdevmcr.azurecr.io/public/oryx/build:azfunc-jamstack-debian-bullseye-$BUILD_DEFINITIONNAME.$RELEASE_TAG_NAME" "azfunc-jamstack-debian-bullseye" "azfunc-jamstack-debian-bullseye-$RELEASE_TAG_NAME"
-tagBuildImage "oryxdevmcr.azurecr.io/public/oryx/build:github-actions-debian-buster-$BUILD_DEFINITIONNAME.$RELEASE_TAG_NAME" "github-actions-debian-buster" "github-actions-debian-buster-$RELEASE_TAG_NAME"
-tagBuildImage "oryxdevmcr.azurecr.io/public/oryx/build:github-actions-debian-bullseye-$BUILD_DEFINITIONNAME.$RELEASE_TAG_NAME" "github-actions-debian-bullseye" "github-actions-debian-bullseye-$RELEASE_TAG_NAME"
-tagBuildImage "oryxdevmcr.azurecr.io/public/oryx/build:github-actions-debian-bookworm-$BUILD_DEFINITIONNAME.$RELEASE_TAG_NAME" "github-actions-debian-bookworm" "github-actions-debian-bookworm-$RELEASE_TAG_NAME"
-tagBuildImage "oryxdevmcr.azurecr.io/public/oryx/build:full-debian-buster-$BUILD_DEFINITIONNAME.$RELEASE_TAG_NAME" "full-debian-buster" "full-debian-buster-$RELEASE_TAG_NAME"
-tagBuildImage "oryxdevmcr.azurecr.io/public/oryx/build:full-debian-bullseye-$BUILD_DEFINITIONNAME.$RELEASE_TAG_NAME" "full-debian-bullseye" "full-debian-bullseye-$RELEASE_TAG_NAME"
-
-echo "printing pme tags from $outPmeFileMCR"
-cat $outPmeFileMCR
-echo -------------------------------------------------------------------------------
\ No newline at end of file
diff --git a/vsts/scripts/tagBuilderImagesForRelease.sh b/vsts/scripts/tagBuilderImagesForRelease.sh
deleted file mode 100644
index 3672586ff2..0000000000
--- a/vsts/scripts/tagBuilderImagesForRelease.sh
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/bin/bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-
-set -exo pipefail
-
-declare -r REPO_DIR=$( cd $( dirname "$0" ) && cd .. && cd .. && pwd )
-source $REPO_DIR/build/__variables.sh
-
-outPmeFileMCR="$BUILD_ARTIFACTSTAGINGDIRECTORY/drop/images/oryxprodmcr-builder-images-mcr.txt"
-
-if [ -f "$outPmeFileMCR" ]; then
- rm $outPmeFileMCR
-fi
-
-function tagBuilderImage() {
- local devRegistryImageName="$1"
- local prodRegistryLatestTagName="$2"
- local prodRegistrySpecificTagName="$3"
- local prodPmeRegistryRepoName="oryxprodmcr.azurecr.io/public/oryx/builder"
- sourceBranchName=$BUILD_SOURCEBRANCHNAME
-
- echo "Pulling the source image $devRegistryImageName..."
- docker pull "$devRegistryImageName" | sed 's/^/ /'
-
- echo
- echo "Tagging the source image for $prodPmeRegistryRepoName with tag $prodRegistrySpecificTagName..."
- prodPmeRegistryImageName="$prodPmeRegistryRepoName:$prodRegistrySpecificTagName"
- docker tag "$devRegistryImageName" "$prodPmeRegistryImageName"
- echo "$prodPmeRegistryImageName">>"$outPmeFileMCR"
-
- if [ "$sourceBranchName" == "main" ]; then
- echo "Tagging the source image for $prodPmeRegistryRepoName with tag $prodRegistryLatestTagName..."
- prodPmeRegistryImageName="$prodPmeRegistryRepoName:$prodRegistryLatestTagName"
- docker tag "$devRegistryImageName" "$prodPmeRegistryRepoName:$prodRegistryLatestTagName"
- echo "$prodPmeRegistryImageName">>"$outPmeFileMCR"
-
- else
- echo "Not creating 'latest' tag as source branch is not 'main'. Current branch is $sourceBranchName"
- fi
-
- echo -------------------------------------------------------------------------------
-}
-
-tagBuilderImage "$ACR_PUBLIC_PREFIX/builder:$BUILD_DEFINITIONNAME.$RELEASE_TAG_NAME" "latest" "$RELEASE_TAG_NAME"
-tagBuilderImage "$ACR_PUBLIC_PREFIX/builder:capps-$BUILD_DEFINITIONNAME.$RELEASE_TAG_NAME" "capps" "capps-$RELEASE_TAG_NAME"
-tagBuilderImage "$ACR_PUBLIC_PREFIX/builder:buildpack-$BUILD_DEFINITIONNAME.$RELEASE_TAG_NAME" "buildpack" "buildpack-$RELEASE_TAG_NAME"
-tagBuilderImage "$ACR_PUBLIC_PREFIX/builder:stack-base-$BUILD_DEFINITIONNAME.$RELEASE_TAG_NAME" "stack-base" "stack-base-$RELEASE_TAG_NAME"
-tagBuilderImage "$ACR_PUBLIC_PREFIX/builder:stack-build-$BUILD_DEFINITIONNAME.$RELEASE_TAG_NAME" "stack-build" "stack-build-$RELEASE_TAG_NAME"
-tagBuilderImage "$ACR_PUBLIC_PREFIX/builder:stack-run-$BUILD_DEFINITIONNAME.$RELEASE_TAG_NAME" "stack-run" "stack-run-$RELEASE_TAG_NAME"
-
-echo "printing pme tags from $outPmeFileMCR"
-cat $outPmeFileMCR
-echo -------------------------------------------------------------------------------
\ No newline at end of file
diff --git a/vsts/scripts/tagBuildpacksImagesForRelease.sh b/vsts/scripts/tagBuildpacksImagesForRelease.sh
deleted file mode 100644
index fa3ac2b482..0000000000
--- a/vsts/scripts/tagBuildpacksImagesForRelease.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-
-set -o pipefail
-
-declare -r REPO_DIR=$( cd $( dirname "$0" ) && cd .. && cd .. && pwd )
-source $REPO_DIR/build/__variables.sh
-
-declare -r outPmeFile="$BUILD_ARTIFACTSTAGINGDIRECTORY/drop/images/oryxprodmcr-buildpack-images-mcr.txt"
-declare -r sourceImageRepo="oryxdevmcr.azurecr.io/public/oryx"
-declare -r prodPmeImageRepo="oryxprodmcr.azurecr.io/public/oryx"
-
-sourceBranchName=$BUILD_SOURCEBRANCHNAME
-
-if [ -f "$outPmeFile" ]; then
- rm $outPmeFile
-fi
-
-packImage="$sourceImageRepo/pack:$BUILD_DEFINITIONNAME.$RELEASE_TAG_NAME"
-echo "Pulling pack image '$packImage'..."
-docker pull "$packImage"
-echo "Retagging pack image with '$RELEASE_TAG_NAME'..."
-
-echo "$prodPmeImageRepo/pack:$RELEASE_TAG_NAME">>"$outPmeFile"
-docker tag "$packImage" "$prodPmeImageRepo/pack:$RELEASE_TAG_NAME"
-
-if [ "$sourceBranchName" == "main" ]; then
- echo "Retagging pack image with 'stable'..."
-
- docker tag "$packImage" "$prodPmeImageRepo/pack:stable"
- echo "$prodPmeImageRepo/pack:stable">>"$outPmeFile"
-else
- echo "Not creating 'stable' or 'latest' tags as source branch is not 'main'. Current branch is $sourceBranchName"
-fi
-
-echo "printing pme tags from $outPmeFile"
-cat $outPmeFile
-echo -------------------------------------------------------------------------------
\ No newline at end of file
diff --git a/vsts/scripts/tagCliImagesForRelease.sh b/vsts/scripts/tagCliImagesForRelease.sh
deleted file mode 100644
index d7be28db2a..0000000000
--- a/vsts/scripts/tagCliImagesForRelease.sh
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/bin/bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-
-set -o pipefail
-
-declare -r REPO_DIR=$( cd $( dirname "$0" ) && cd .. && cd .. && pwd )
-source $REPO_DIR/build/__variables.sh
-
-declare -r outPmeFile="$BUILD_ARTIFACTSTAGINGDIRECTORY/drop/images/oryxprodmcr-cli-images-mcr.txt"
-declare -r sourceImageRepo="oryxdevmcr.azurecr.io/public/oryx"
-declare -r prodPmeImageRepo="oryxprodmcr.azurecr.io/public/oryx"
-
-sourceBranchName=$BUILD_SOURCEBRANCHNAME
-
-if [ -f "$outPmeFile" ]; then
- rm $outPmeFile
-fi
-
-# CLI Images
-cliImage="$sourceImageRepo/cli:debian-stretch-$BUILD_DEFINITIONNAME.$RELEASE_TAG_NAME"
-cliBusterImage="$sourceImageRepo/cli:debian-buster-$BUILD_DEFINITIONNAME.$RELEASE_TAG_NAME"
-cliBullseyeImage="$sourceImageRepo/cli:debian-bullseye-$BUILD_DEFINITIONNAME.$RELEASE_TAG_NAME"
-echo "Pulling CLI image '$cliImage'..."
-docker pull "$cliImage"
-
-echo "Retagging CLI image for $prodPmeImageRepo with 'debian-stretch-$RELEASE_TAG_NAME'..."
-echo "$prodPmeImageRepo/cli:debian-stretch-$RELEASE_TAG_NAME">>"$outPmeFile"
-docker tag "$cliImage" "$prodPmeImageRepo/cli:debian-stretch-$RELEASE_TAG_NAME"
-
-echo "Pulling CLI buster image '$cliBusterImage'..."
-docker pull "$cliBusterImage"
-
-echo "Retagging CLI buster image for $prodPmeImageRepo with 'debian-buster-$RELEASE_TAG_NAME'..."
-echo "$prodPmeImageRepo/cli:debian-buster-$RELEASE_TAG_NAME">>"$outPmeFile"
-docker tag "$cliBusterImage" "$prodPmeImageRepo/cli:debian-buster-$RELEASE_TAG_NAME"
-
-echo "Pulling CLI bullseye image '$cliBullseyeImage'"
-docker pull "$cliBullseyeImage"
-
-echo "Retagging CLI bullseye image for $prodPmeImageRepo with 'debian-bullseye-$RELEASE_TAG_NAME'..."
-echo "$prodPmeImageRepo/cli:debian-bullseye-$RELEASE_TAG_NAME">>"$outPmeFile"
-docker tag "$cliBullseyeImage" "$prodPmeImageRepo/cli:debian-bullseye-$RELEASE_TAG_NAME"
-
-# CLI Builder images
-devCliBuilderBullseyeImage="$sourceImageRepo/cli:builder-debian-bullseye-$BUILD_DEFINITIONNAME.$RELEASE_TAG_NAME"
-builderProdTag="builder-debian-bullseye-$RELEASE_TAG_NAME"
-builderProdStableTag="builder-debian-bullseye-stable"
-prodCliBuilderBullseyeImage="$prodPmeImageRepo/cli:$builderProdTag"
-echo "Pulling CLI builder bullseye image '$devCliBuilderBullseyeImage'..."
-docker pull "$devCliBuilderBullseyeImage"
-
-echo "Retagging CLI builder bullseye image for '$prodPmeImageRepo/cli' with '$builderProdTag'..."
-echo "$prodCliBuilderBullseyeImage">>"$outPmeFile"
-docker tag "$devCliBuilderBullseyeImage" "$prodCliBuilderBullseyeImage"
-
-if [ "$sourceBranchName" == "main" ]; then
- echo "Retagging CLI image with '{os type}-stable'..."
-
- docker tag "$cliImage" "$prodPmeImageRepo/cli:debian-stretch-stable"
- echo "$prodPmeImageRepo/cli:debian-stretch-stable">>"$outPmeFile"
-
- docker tag "$cliBusterImage" "$prodPmeImageRepo/cli:debian-buster-stable"
- echo "$prodPmeImageRepo/cli:debian-buster-stable">>"$outPmeFile"
-
- docker tag "$cliBullseyeImage" "$prodPmeImageRepo/cli:debian-bullseye-stable"
- echo "$prodPmeImageRepo/cli:debian-bullseye-stable">>"$outPmeFile"
-
- docker tag "$devCliBuilderBullseyeImage" "$prodPmeImageRepo/cli:$builderProdStableTag"
- echo "$prodPmeImageRepo/cli:$builderProdStableTag">>"$outPmeFile"
-else
- echo "Not creating 'stable' or 'latest' tags as source branch is not 'main'. Current branch is $sourceBranchName"
-fi
-
-echo "printing pme tags from $outPmeFile"
-cat $outPmeFile
-echo -------------------------------------------------------------------------------
\ No newline at end of file
diff --git a/vsts/scripts/tagRunTimeImagesForRelease.sh b/vsts/scripts/tagRunTimeImagesForRelease.sh
deleted file mode 100644
index 22e5de74f1..0000000000
--- a/vsts/scripts/tagRunTimeImagesForRelease.sh
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/bin/bash
-# --------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license.
-# --------------------------------------------------------------------------------------------
-
-set -o pipefail
-
-acrPmeProdRepo="oryxprodmcr"
-
-sourceBranchName=$BUILD_SOURCEBRANCHNAME
-outFilePmeMCR="$BUILD_ARTIFACTSTAGINGDIRECTORY/drop/images/$acrPmeProdRepo-runtime-images-mcr.txt"
-sourceFile="$BUILD_ARTIFACTSTAGINGDIRECTORY/drop/images/runtime-images-acr.txt"
-
-if [[ ! -f "$sourceFile" ]]; then
- echo "Creating consolidated runtime image file '$sourceFile'..."
- mkdir -p "$BUILD_SOURCESDIRECTORY/temp/images"
- touch "$sourceFile"
-fi
-
-echo "Consolidating runtime image files into '$sourceFile'..."
-
-(cat "$BUILD_ARTIFACTSTAGINGDIRECTORY/drop/images/runtime-images-acr.buster.txt"; echo) >> "$sourceFile"
-(cat "$BUILD_ARTIFACTSTAGINGDIRECTORY/drop/images/runtime-images-acr.bullseye.txt"; echo) >> "$sourceFile"
-(cat "$BUILD_ARTIFACTSTAGINGDIRECTORY/drop/images/runtime-images-acr.bookworm.txt"; echo) >> "$sourceFile"
-
-if [ -f "$outFilePmeMCR" ]; then
- rm $outFilePmeMCR
-fi
-
-declare -r skipImages=("python:3.7" "dotnetcore:3" "dotnetcore:5" "php:7" "php:8.0" "ruby" "node:14")
-
-# This is a temporary function that will be used to skip unused images and will save some space on the agent.
-should_skip() {
- local image="$1"
- local matched=false
- for word in "${skipImages[@]}"; do
- if [[ "$image" == *"$word"* ]]; then
- matched=true
- break
- fi
- done
- echo "$matched"
-}
-
-echo "Iterating over previously pushed images defined in new '$sourceFile' file..."
-
-while read sourceImage; do
-# Always use specific build number based tag and then use the same tag to create a 'latest' tag and push it
- if [[ $sourceImage == *:*-* && $(should_skip "$sourceImage") == "false" ]]; then
- echo "Pulling the source image $sourceImage ..."
- docker pull "$sourceImage" | sed 's/^/ /'
-
- # We tag out runtime images in dev differently than in tag. In dev we have builddefnitionname as part of tag.
- # We don't want that in our prod tag. Also we want versions (like node-10.10:latest to be tagged as
- # node:10.10-latest) as part of tag. We need to parse the tags so that we can reconstruct tags suitable for our
- # prod images.
-
- IFS=':'
- read -ra imageNameParts <<< "$sourceImage"
- repo=${imageNameParts[0]}
- tag=${imageNameParts[1]}
- replaceText="$BUILD_DEFINITIONNAME."
- releaseTagName=$(echo $tag | sed "s/$replaceText//g")
-
- IFS='-'
- read -ra tagParts <<< "$tag"
- version="${tagParts[0]}"
-
- read -ra repoParts <<< "$repo"
- acrRepoName=${repoParts[0]}
- acrProdPmeRepo=$(echo $acrRepoName | sed "s/oryxdevmcr/"$acrPmeProdRepo"/g")
- acrPmeLatest="$acrProdPmeRepo:$version"
- acrPmeSpecific="$acrProdPmeRepo:$releaseTagName"
-
- echo
- echo "Tagging the source image with tag $acrPmeSpecific..."
-
- echo "$acrPmeSpecific">>"$outFilePmeMCR"
- docker tag "$sourceImage" "$acrPmeSpecific"
-
- if [ "$sourceBranchName" == "main" ]; then
- echo "Tagging the source image with tag $acrPmeLatest..."
- echo "$acrPmeLatest">>"$outFilePmeMCR"
- docker tag "$sourceImage" "$acrPmeLatest"
- else
- echo "Not creating 'latest' tag as source branch is not 'main'. Current branch is $sourceBranchName"
- fi
- echo -------------------------------------------------------------------------------
- fi
-done <"$sourceFile"
-
-echo "printing pme tags from $outFilePmeMCR"
-cat $outFilePmeMCR
-echo -------------------------------------------------------------------------------
\ No newline at end of file