Merge pull request #67 from aminya/notice [skip ci]

This commit is contained in:
Amin Yahyaabadi 2022-05-02 22:46:59 -07:00 committed by GitHub
commit 49248d2ce6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 42 additions and 51 deletions

View File

@ -89,7 +89,7 @@ jobs:
- ubuntu-20.04 - ubuntu-20.04
container: container:
- "ubuntu_node.dockerfile" - "ubuntu_node.dockerfile"
- "ubuntu_stable_node.dockerfile" - "ubuntu_20.04_node.dockerfile"
node: node:
- 14 - 14
pnpm: pnpm:

View File

@ -180,7 +180,7 @@ Here is an example for using setup_cpp to make a builder image that has the Cpp
```dockerfile ```dockerfile
#### Base Image #### Base Image
FROM ubuntu:devel AS base FROM ubuntu:22.04 AS base
# add setup_cpp # add setup_cpp
WORKDIR "/" WORKDIR "/"
@ -203,7 +203,7 @@ RUN bash -c 'source ~/.cpprc \
&& make build' && make build'
### Running environment ### Running environment
# use a distroless image or ubuntu:devel if you wish # use a distroless image or ubuntu:22.04 if you wish
FROM gcr.io/distroless/cc FROM gcr.io/distroless/cc
# copy the built binaries and their runtime dependencies # copy the built binaries and their runtime dependencies
COPY --from=builder /home/app/build/my_exe/Release/ /home/app/ COPY --from=builder /home/app/build/my_exe/Release/ /home/app/
@ -258,7 +258,7 @@ The following gives an example for setting up a C++ environment inside GitLab pi
.gitlab-ci.yaml .gitlab-ci.yaml
```yaml ```yaml
image: ubuntu:devel image: ubuntu:22.04
stages: stages:
- test - test

View File

@ -1,5 +1,5 @@
#### Base Image #### Base Image
FROM ubuntu:devel AS base FROM ubuntu:22.04 AS base
# add setup_cpp # add setup_cpp
WORKDIR "/" WORKDIR "/"
@ -22,7 +22,7 @@ RUN bash -c 'source ~/.cpprc \
&& make build' && make build'
### Running environment ### Running environment
# use a distroless image or ubuntu:devel if you wish # use a distroless image or ubuntu:22.04 if you wish
FROM gcr.io/distroless/cc FROM gcr.io/distroless/cc
# copy the built binaries and their runtime dependencies # copy the built binaries and their runtime dependencies
COPY --from=builder /home/app/build/my_exe/Release/ /home/app/ COPY --from=builder /home/app/build/my_exe/Release/ /home/app/

View File

@ -1,4 +1,4 @@
FROM ubuntu:devel AS base FROM ubuntu:22.04 AS base
RUN apt-get update -qq RUN apt-get update -qq
RUN apt-get install -y --no-install-recommends nodejs RUN apt-get install -y --no-install-recommends nodejs
@ -21,7 +21,7 @@ RUN bash -c 'source ~/.cpprc \
&& make build' && make build'
### Running environment ### Running environment
# use a distroless image or ubuntu:devel if you wish # use a distroless image or ubuntu:22.04 if you wish
FROM gcr.io/distroless/cc FROM gcr.io/distroless/cc
# copy the built binaries and their runtime dependencies # copy the built binaries and their runtime dependencies
COPY --from=builder /home/app/build/my_exe/Release/ /home/app/ COPY --from=builder /home/app/build/my_exe/Release/ /home/app/

2
dist/setup_cpp.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -12,12 +12,12 @@
"setup_cpp": "./dist/setup_cpp.js" "setup_cpp": "./dist/setup_cpp.js"
}, },
"scripts": { "scripts": {
"build": "run-p test.tsc build.parcel copy.matchers", "build": "shx rm -rf dist/ && shx mkdir ./dist && run-p test.tsc build.parcel copy.matchers",
"build.docker": "pnpm build && docker build -f ./dev/docker/ubuntu_node.dockerfile -t setup_cpp .", "build.docker": "pnpm build && docker build -f ./dev/docker/ubuntu_node.dockerfile -t setup_cpp .",
"build.parcel": "shx rm -rf ./dist/*.js ./dist/*.js.map && cross-env NODE_ENV=production parcel build --detailed-report", "build.parcel": "cross-env NODE_ENV=production parcel build --detailed-report",
"bump": "ncu -u -x execa && pnpm update", "bump": "ncu -u -x execa && pnpm update",
"clean": "shx rm -rf .parcel-cache dist exe", "clean": "shx rm -rf .parcel-cache dist exe",
"copy.matchers": "shx rm -rf ./dist/*.json && shx cp ./src/gcc/gcc_matcher.json ./dist/ && shx cp ./src/msvc/msvc_matcher.json ./dist && shx cp ./src/python/python_matcher.json ./dist/ && shx cp ./src/llvm/llvm_matcher.json ./dist/ ", "copy.matchers": "shx cp ./src/gcc/gcc_matcher.json ./dist/ && shx cp ./src/msvc/msvc_matcher.json ./dist && shx cp ./src/python/python_matcher.json ./dist/ && shx cp ./src/llvm/llvm_matcher.json ./dist/ ",
"dev": "cross-env NODE_ENV=development parcel watch", "dev": "cross-env NODE_ENV=development parcel watch",
"format": "prettier --write .", "format": "prettier --write .",
"lint": "eslint . --fix", "lint": "eslint . --fix",

View File

@ -5,7 +5,7 @@ import { setupBrewPack } from "../utils/setup/setupBrewPack"
import { setupChocoPack } from "../utils/setup/setupChocoPack" import { setupChocoPack } from "../utils/setup/setupChocoPack"
import { addBinExtension } from "../utils/extension/extension" import { addBinExtension } from "../utils/extension/extension"
import { extractTar } from "../utils/setup/extract" import { extractTar } from "../utils/setup/extract"
import { info } from "../utils/io/io" import { notice } from "../utils/io/io"
import { setupGraphviz } from "../graphviz/graphviz" import { setupGraphviz } from "../graphviz/graphviz"
import { getVersion } from "../default_versions" import { getVersion } from "../default_versions"
@ -47,7 +47,7 @@ export async function setupDoxygen(version: string, setupDir: string, arch: stri
// doxygen on stable Ubuntu repositories is very old. So, we use get the binary from the website itself // doxygen on stable Ubuntu repositories is very old. So, we use get the binary from the website itself
installationInfo = await setupBin("doxygen", version, getDoxygenPackageInfo, setupDir, arch) installationInfo = await setupBin("doxygen", version, getDoxygenPackageInfo, setupDir, arch)
} catch (err) { } catch (err) {
info(`Failed to download doxygen binary. ${err}. Falling back to apt-get.`) notice(`Failed to download doxygen binary. ${err}. Falling back to apt-get.`)
installationInfo = setupAptPack("doxygen", undefined) installationInfo = setupAptPack("doxygen", undefined)
} }
await setupGraphviz(getVersion("graphviz", undefined), "", arch) await setupGraphviz(getVersion("graphviz", undefined), "", arch)

View File

@ -7,9 +7,8 @@ import semverMajor from "semver/functions/major"
import semverCoerce from "semver/functions/coerce" import semverCoerce from "semver/functions/coerce"
import { setupMacOSSDK } from "../macos-sdk/macos-sdk" import { setupMacOSSDK } from "../macos-sdk/macos-sdk"
import path from "path" import path from "path"
import { warning } from "../utils/io/io" import { warning, info } from "../utils/io/io"
import { isGitHubCI } from "../utils/env/isci" import { isGitHubCI } from "../utils/env/isci"
import { info } from "@actions/core"
// eslint-disable-next-line @typescript-eslint/no-unused-vars // eslint-disable-next-line @typescript-eslint/no-unused-vars
export async function setupGcc(version: string, _setupDir: string, arch: string) { export async function setupGcc(version: string, _setupDir: string, arch: string) {
@ -37,19 +36,11 @@ export async function setupGcc(version: string, _setupDir: string, arch: string)
} }
case "linux": { case "linux": {
if (arch === "x64") { if (arch === "x64") {
setupAptPack("gcc", version, [ setupAptPack("gcc", version, ["ppa:ubuntu-toolchain-r/test"])
"deb http://dk.archive.ubuntu.com/ubuntu/ xenial main",
"deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe",
"ppa:ubuntu-toolchain-r/test",
])
binDir = setupAptPack("g++", version, []).binDir binDir = setupAptPack("g++", version, []).binDir
} else { } else {
info(`Install g++-multilib because gcc for ${arch} was requested`) info(`Install g++-multilib because gcc for ${arch} was requested`)
setupAptPack("gcc-multilib", version, [ setupAptPack("gcc-multilib", version, ["ppa:ubuntu-toolchain-r/test"])
"deb http://dk.archive.ubuntu.com/ubuntu/ xenial main",
"deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe",
"ppa:ubuntu-toolchain-r/test",
])
binDir = setupAptPack("g++-multilib", version, []).binDir binDir = setupAptPack("g++-multilib", version, []).binDir
} }
break break
@ -59,8 +50,6 @@ export async function setupGcc(version: string, _setupDir: string, arch: string)
// case "none": { // case "none": {
// if (arch === "arm" || arch === "arm64") { // if (arch === "arm" || arch === "arm64") {
// return setupAptPack("gcc-arm-none-eabi", version, [ // return setupAptPack("gcc-arm-none-eabi", version, [
// "deb http://dk.archive.ubuntu.com/ubuntu/ xenial main",
// "deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe",
// "ppa:ubuntu-toolchain-r/test", // "ppa:ubuntu-toolchain-r/test",
// ]) // ])
// } else { // } else {

View File

@ -8,9 +8,9 @@ import { getSpecificVersionAndUrl, getVersions, semverCoerceIfInvalid } from "..
import { setupMacOSSDK } from "../macos-sdk/macos-sdk" import { setupMacOSSDK } from "../macos-sdk/macos-sdk"
import { addBinExtension } from "../utils/extension/extension" import { addBinExtension } from "../utils/extension/extension"
import { addEnv } from "../utils/env/addEnv" import { addEnv } from "../utils/env/addEnv"
import { info, setOutput } from "@actions/core" import { setOutput } from "@actions/core"
import { setupAptPack, updateAptAlternatives } from "../utils/setup/setupAptPack" import { setupAptPack, updateAptAlternatives } from "../utils/setup/setupAptPack"
import { warning } from "../utils/io/io" import { info, warning } from "../utils/io/io"
import { existsSync } from "fs" import { existsSync } from "fs"
import { isGitHubCI } from "../utils/env/isci" import { isGitHubCI } from "../utils/env/isci"
import { setupGcc } from "../gcc/gcc" import { setupGcc } from "../gcc/gcc"

View File

@ -1,4 +1,4 @@
import * as core from "@actions/core" import { getInput, endGroup, startGroup, notice } from "@actions/core"
import { setupBrew } from "./brew/brew" import { setupBrew } from "./brew/brew"
import { setupCcache } from "./ccache/ccache" import { setupCcache } from "./ccache/ccache"
import { setupMake } from "./make/make" import { setupMake } from "./make/make"
@ -40,7 +40,6 @@ import { setupVCVarsall } from "./vcvarsall/vcvarsall"
import { setupKcov } from "./kcov/kcov" import { setupKcov } from "./kcov/kcov"
import { addEnv } from "./utils/env/addEnv" import { addEnv } from "./utils/env/addEnv"
import { setupSevenZip } from "./sevenzip/sevenzip" import { setupSevenZip } from "./sevenzip/sevenzip"
import { endGroup, startGroup } from "@actions/core"
import { setupGraphviz } from "./graphviz/graphviz" import { setupGraphviz } from "./graphviz/graphviz"
/** The setup functions */ /** The setup functions */
@ -218,7 +217,7 @@ export async function main(args: string[]): Promise<number> {
} }
case "appleclang": case "appleclang":
case "applellvm": { case "applellvm": {
core.info("Assuming apple-clang is already installed") notice("Assuming apple-clang is already installed")
addEnv("CC", "clang") addEnv("CC", "clang")
addEnv("CXX", "clang++") addEnv("CXX", "clang++")
successMessages.push(getSuccessMessage("apple-clang", undefined)) successMessages.push(getSuccessMessage("apple-clang", undefined))
@ -249,7 +248,7 @@ export async function main(args: string[]): Promise<number> {
successMessages.forEach((tool) => success(tool)) successMessages.forEach((tool) => success(tool))
errorMessages.forEach((tool) => error(tool)) errorMessages.forEach((tool) => error(tool))
core.info("setup_cpp finished") info("setup_cpp finished")
if (!isGitHubCI()) { if (!isGitHubCI()) {
switch (process.platform) { switch (process.platform) {
@ -290,7 +289,7 @@ export function getCompilerInfo(maybeCompiler: string) {
if (semverValid(maybeVersion) !== null) { if (semverValid(maybeVersion) !== null) {
return { compiler, version: maybeVersion } return { compiler, version: maybeVersion }
} else { } else {
core.info(`Invalid semver version ${maybeVersion} used for the compiler.`) notice(`Invalid semver version ${maybeVersion} used for the compiler.`)
return { compiler, version: maybeVersion } return { compiler, version: maybeVersion }
} }
} }
@ -298,7 +297,7 @@ export function getCompilerInfo(maybeCompiler: string) {
} }
function printHelp() { function printHelp() {
core.info(` info(`
setup_cpp [options] setup_cpp [options]
setup_cpp --compiler llvm --cmake true --ninja true --ccache true --vcpkg true setup_cpp --compiler llvm --cmake true --ninja true --ccache true --vcpkg true
@ -340,7 +339,7 @@ All the available tools:
/** Get an object from github actions */ /** Get an object from github actions */
function maybeGetInput(key: string) { function maybeGetInput(key: string) {
const value = core.getInput(key.toLowerCase()) const value = getInput(key.toLowerCase())
if (value !== "false" && value !== "") { if (value !== "false" && value !== "") {
return value return value
} }

View File

@ -1,4 +1,4 @@
import { addPath } from "@actions/core" import { addPath } from "../utils/env/addEnv"
import { setupAptPack } from "../utils/setup/setupAptPack" import { setupAptPack } from "../utils/setup/setupAptPack"
import { setupBrewPack } from "../utils/setup/setupBrewPack" import { setupBrewPack } from "../utils/setup/setupBrewPack"
import { setupChocoPack } from "../utils/setup/setupChocoPack" import { setupChocoPack } from "../utils/setup/setupChocoPack"

View File

@ -1,5 +1,4 @@
import { setupChocoPack } from "../utils/setup/setupChocoPack" import { setupChocoPack } from "../utils/setup/setupChocoPack"
import { info } from "@actions/core"
import { setupVCVarsall } from "../vcvarsall/vcvarsall" import { setupVCVarsall } from "../vcvarsall/vcvarsall"
// eslint-disable-next-line @typescript-eslint/ban-ts-comment // eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore // @ts-ignore
@ -7,7 +6,7 @@ import { vsversion_to_versionnumber, findVcvarsall } from "msvc-dev-cmd/lib.js"
import { isGitHubCI } from "../utils/env/isci" import { isGitHubCI } from "../utils/env/isci"
import path from "path" import path from "path"
import { existsSync } from "fs" import { existsSync } from "fs"
import { error, warning } from "../utils/io/io" import { error, info, warning } from "../utils/io/io"
type MSVCVersion = "2022" | "17.0" | "2019" | "16.0" | "2017" | "15.0" | "2015" | "14.0" | "2013" | "12.0" | string type MSVCVersion = "2022" | "17.0" | "2019" | "16.0" | "2017" | "15.0" | "2015" | "14.0" | "2013" | "12.0" | string

View File

@ -1,10 +1,9 @@
import * as core from "@actions/core"
import { addPath } from "../utils/env/addEnv" import { addPath } from "../utils/env/addEnv"
import { setupAptPack } from "../utils/setup/setupAptPack" import { setupAptPack } from "../utils/setup/setupAptPack"
import { setupBrewPack } from "../utils/setup/setupBrewPack" import { setupBrewPack } from "../utils/setup/setupBrewPack"
import { setupChocoPack } from "../utils/setup/setupChocoPack" import { setupChocoPack } from "../utils/setup/setupChocoPack"
import { isGitHubCI } from "../utils/env/isci" import { isGitHubCI } from "../utils/env/isci"
import { warning } from "@actions/core" import { warning, info } from "../utils/io/io"
export async function setupPython(version: string, setupDir: string, arch: string) { export async function setupPython(version: string, setupDir: string, arch: string) {
if (!isGitHubCI()) { if (!isGitHubCI()) {
@ -15,7 +14,7 @@ export async function setupPython(version: string, setupDir: string, arch: strin
const { setupActionsPython } = await import("./actions_python") const { setupActionsPython } = await import("./actions_python")
return setupActionsPython(version, setupDir, arch) return setupActionsPython(version, setupDir, arch)
} catch (err) { } catch (err) {
warning(err as Error) warning((err as Error).toString())
return setupPythonViaSystem(version, setupDir, arch) return setupPythonViaSystem(version, setupDir, arch)
} }
} }
@ -50,6 +49,6 @@ export function setupPythonViaSystem(version: string, setupDir: string, _arch: s
} }
function activateWinPython(binDir: string) { function activateWinPython(binDir: string) {
core.info(`Add ${binDir} to PATH`) info(`Add ${binDir} to PATH`)
addPath(binDir) addPath(binDir)
} }

View File

@ -1,4 +1,4 @@
import { exportVariable, addPath as ghAddPath, info } from "@actions/core" import { exportVariable, addPath as ghAddPath, info, setFailed } from "@actions/core"
import { isGitHubCI } from "./isci" import { isGitHubCI } from "./isci"
import { untildify_user as untildify } from "../path/untildify" import { untildify_user as untildify } from "../path/untildify"
import { appendFileSync, existsSync, readFileSync } from "fs" import { appendFileSync, existsSync, readFileSync } from "fs"
@ -21,7 +21,7 @@ export function addEnv(name: string, val: string | undefined) {
} catch (err2) { } catch (err2) {
error(err2 as Error) error(err2 as Error)
} }
error(`Failed to export environment variable ${name}=${val}. You should add it manually.`) setFailed(`Failed to export environment variable ${name}=${val}. You should add it manually.`)
} }
} }
@ -41,7 +41,7 @@ export function addPath(path: string) {
} catch (err2) { } catch (err2) {
error(err2 as Error) error(err2 as Error)
} }
error(`Failed to add ${path} to the percistent PATH. You should add it manually.`) setFailed(`Failed to add ${path} to the percistent PATH. You should add it manually.`)
} }
} }

View File

@ -13,6 +13,10 @@ export function warning(msg: string) {
return isGitHubCI() ? core.warning(msg) : console.log(`\x1b[33m${msg}\x1b[0m`) return isGitHubCI() ? core.warning(msg) : console.log(`\x1b[33m${msg}\x1b[0m`)
} }
export function notice(msg: string) {
return isGitHubCI() ? core.notice(msg) : console.log(`\x1b[94m${msg}\x1b[0m`)
}
export function info(msg: string) { export function info(msg: string) {
return isGitHubCI() ? core.info(msg) : console.log(msg) return isGitHubCI() ? core.info(msg) : console.log(msg)
} }

View File

@ -1,11 +1,12 @@
import { addPath, warning } from "@actions/core"
import execa from "execa" import execa from "execa"
import { existsSync } from "fs" import { existsSync } from "fs"
import { dirname, join } from "path" import { dirname, join } from "path"
import which from "which" import which from "which"
import { addPath } from "../utils/env/addEnv"
import { isRoot } from "../utils/env/sudo" import { isRoot } from "../utils/env/sudo"
import { execSudo } from "../utils/exec/sudo" import { execSudo } from "../utils/exec/sudo"
import { addShellExtension, addShellHere } from "../utils/extension/extension" import { addShellExtension, addShellHere } from "../utils/extension/extension"
import { notice } from "../utils/io/io"
import { setupAptPack } from "../utils/setup/setupAptPack" import { setupAptPack } from "../utils/setup/setupAptPack"
import { InstallationInfo } from "../utils/setup/setupBin" import { InstallationInfo } from "../utils/setup/setupBin"
@ -27,7 +28,7 @@ export function setupVcpkg(_version: string, setupDir: string, _arch: string): I
if (!existsSync(join(setupDir, addShellExtension("bootstrap-vcpkg")))) { if (!existsSync(join(setupDir, addShellExtension("bootstrap-vcpkg")))) {
execa.sync("git", ["clone", "https://github.com/microsoft/vcpkg"], { cwd: dirname(setupDir), stdio: "inherit" }) execa.sync("git", ["clone", "https://github.com/microsoft/vcpkg"], { cwd: dirname(setupDir), stdio: "inherit" })
} else { } else {
warning(`Vcpkg folder already exists at ${setupDir}`) notice(`Vcpkg folder already exists at ${setupDir}. This might mean that ~/vcpkg is restored from the cache.`)
} }
execa.sync(addShellExtension(addShellHere("bootstrap-vcpkg")), { cwd: setupDir, shell: true, stdio: "inherit" }) execa.sync(addShellExtension(addShellHere("bootstrap-vcpkg")), { cwd: setupDir, shell: true, stdio: "inherit" })

View File

@ -1,9 +1,9 @@
import { info } from "@actions/core"
import { existsSync } from "fs" import { existsSync } from "fs"
// eslint-disable-next-line @typescript-eslint/ban-ts-comment // eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore // @ts-ignore
import { setupMSVCDevCmd } from "msvc-dev-cmd/lib.js" import { setupMSVCDevCmd } from "msvc-dev-cmd/lib.js"
import { addEnv } from "../utils/env/addEnv" import { addEnv } from "../utils/env/addEnv"
import { info } from "../utils/io/io"
function getArch(arch: string): string { function getArch(arch: string): string {
switch (arch) { switch (arch) {