65 lines
2.0 KiB
YAML
65 lines
2.0 KiB
YAML
id: "qsharp"
|
|
aliases:
|
|
- "q"
|
|
- "qs"
|
|
name: "Q#"
|
|
|
|
install:
|
|
# Apparently, the Q# project template is hardcoded to use version
|
|
# 3.x of the .NET SDK. Not sure why.
|
|
prepare: &install-dotnet
|
|
preface: |
|
|
wget "https://packages.microsoft.com/config/ubuntu/${ubuntu_ver}/packages-microsoft-prod.deb"
|
|
sudo --preserve-env=DEBIAN_FRONTEND apt-get install ./packages-microsoft-prod.deb
|
|
sudo --preserve-env=DEBIAN_FRONTEND apt-get update
|
|
apt:
|
|
- $(grep-aptavail -wF Package "dotnet-sdk-3\.[0-9.]+" -s Package -n | sort -Vr | head -n1)
|
|
<<: *install-dotnet
|
|
# We should cache the .dotnet directory to avoid a .NET banner being
|
|
# printed, and we should cache the main directory because there is a
|
|
# generated main.csproj file that is needed by .NET. Finally we
|
|
# should cache the .nuget directory as well as the build artifacts
|
|
# inside main to avoid a 30s initial compile time.
|
|
#
|
|
# We could optimize further but I don't feel like it right now.
|
|
manual: |
|
|
install -d "${pkg}/opt/qsharp/skel-home"
|
|
install -d "${pkg}/opt/qsharp/skel-src"
|
|
|
|
dotnet new -i Microsoft.Quantum.ProjectTemplates
|
|
dotnet new console -lang Q# -o main
|
|
dotnet run --project main
|
|
|
|
shopt -s dotglob
|
|
cp -R main "${pkg}/opt/qsharp/skel-src/"
|
|
cp -R "${HOME}/.dotnet" "${HOME}/.nuget" "${pkg}/opt/qsharp/skel-home/"
|
|
rm "${pkg}/opt/qsharp/skel-src/main/Program.qs"
|
|
chmod -R a=u,go-w "${pkg}/opt/qsharp"
|
|
manualInstall: |
|
|
wget "https://packages.microsoft.com/config/ubuntu/${ubuntu_ver}/packages-microsoft-prod.deb"
|
|
sudo --preserve-env=DEBIAN_FRONTEND apt-get update
|
|
sudo --preserve-env=DEBIAN_FRONTEND apt-get install ./packages-microsoft-prod.deb
|
|
|
|
setup: |
|
|
shopt -s dotglob
|
|
cp -R /opt/qsharp/skel-src/* ./
|
|
cp -R /opt/qsharp/skel-home/* "${HOME}/"
|
|
|
|
main: "main/Main.qs"
|
|
template: |
|
|
namespace main {
|
|
|
|
open Microsoft.Quantum.Canon;
|
|
open Microsoft.Quantum.Intrinsic;
|
|
|
|
@EntryPoint()
|
|
operation Main() : Unit {
|
|
Message("Hello, world!");
|
|
}
|
|
}
|
|
|
|
run: |
|
|
dotnet run --project main
|
|
|
|
timeoutFactor: 4
|