mirror of https://github.com/aminya/setup-cpp.git
Compare commits
290 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
04f0267e50 | |
|
|
1155f23302 | |
|
|
867d72f10a | |
|
|
daf5d4b9da | |
|
|
31141736b3 | |
|
|
9792a2bbe0 | |
|
|
27061795a8 | |
|
|
1f17f92d6a | |
|
|
bd777f32ba | |
|
|
f3c42a2724 | |
|
|
38bbe83367 | |
|
|
156935991e | |
|
|
51ca1f1f80 | |
|
|
5c16b2f2fd | |
|
|
7c7690a1ac | |
|
|
aaf5bb78ea | |
|
|
4878b35f60 | |
|
|
957a3565d3 | |
|
|
aa2e7dbda1 | |
|
|
c9b0b918df | |
|
|
9306008c10 | |
|
|
9bc9b8cd8a | |
|
|
3481e9e840 | |
|
|
cc0e9fb8ec | |
|
|
131fbe52b0 | |
|
|
d93d404f38 | |
|
|
a55b1da658 | |
|
|
24822b26f9 | |
|
|
747e9cfe05 | |
|
|
26bd7cda45 | |
|
|
6f1d3cd81e | |
|
|
bb0daa4e32 | |
|
|
a276e6e3d1 | |
|
|
1c89539b8f | |
|
|
b32feb04d5 | |
|
|
d8571402cb | |
|
|
aa0fcb9bee | |
|
|
988cdb3377 | |
|
|
d09e6b8dab | |
|
|
c43a237684 | |
|
|
6004eca28b | |
|
|
d42bb0b88f | |
|
|
c9eb020813 | |
|
|
3cb32ec74d | |
|
|
fb3f6ad2f8 | |
|
|
559fcdd572 | |
|
|
8e6c0edd38 | |
|
|
8ffe76cee3 | |
|
|
0fa8654824 | |
|
|
928af1ef3b | |
|
|
751b635450 | |
|
|
056bb3b1d9 | |
|
|
fe10751e1c | |
|
|
c0171961c2 | |
|
|
ce9f94db97 | |
|
|
9392dd1bd8 | |
|
|
2e6bb1caa0 | |
|
|
004edc1952 | |
|
|
46cbfc276f | |
|
|
396258ba63 | |
|
|
70e614fd48 | |
|
|
075261cd2b | |
|
|
fcda129998 | |
|
|
42ccc76417 | |
|
|
af7dd8c367 | |
|
|
b21cd99e0b | |
|
|
085eecfbd1 | |
|
|
197080ad94 | |
|
|
15c6190549 | |
|
|
38b4d16f6e | |
|
|
00a96b353f | |
|
|
8d6f65af17 | |
|
|
55470af31b | |
|
|
820b8f3163 | |
|
|
3a19939866 | |
|
|
3b773c4e87 | |
|
|
0d11c74dbd | |
|
|
f0dab3c2eb | |
|
|
f015113d31 | |
|
|
9dc9c217f4 | |
|
|
5649ee9e2d | |
|
|
ecb2ccca2e | |
|
|
2a58e75f05 | |
|
|
f1825e19b6 | |
|
|
e09ae7eb8e | |
|
|
45a956b27e | |
|
|
1cfde8e589 | |
|
|
a4ca8de391 | |
|
|
022729da27 | |
|
|
6b72a94712 | |
|
|
464f3a00d5 | |
|
|
faff663ab1 | |
|
|
da1971da81 | |
|
|
dbf5b5e2bf | |
|
|
3fd1b0b32c | |
|
|
988b5fd210 | |
|
|
c9348d3629 | |
|
|
9b5350fb6e | |
|
|
b7dcc5b7e6 | |
|
|
264de9ab1a | |
|
|
fc5f36e99b | |
|
|
1134b80cc2 | |
|
|
6540167f34 | |
|
|
62036a9dd7 | |
|
|
350b16f518 | |
|
|
4c0bf0acdb | |
|
|
ecc6c767e0 | |
|
|
00fe6df1cf | |
|
|
46ac5adacc | |
|
|
e10853e3f5 | |
|
|
3fffbe9648 | |
|
|
c9145519e3 | |
|
|
5c5dffcda7 | |
|
|
6c94aa9d63 | |
|
|
80ffb63efd | |
|
|
5accdbc0a7 | |
|
|
d8c2b30cb3 | |
|
|
829f53844a | |
|
|
28288fd7bc | |
|
|
5ea110ae8d | |
|
|
9bc8921c0a | |
|
|
e8ac0e7160 | |
|
|
9d12750bbe | |
|
|
c9007c8f5a | |
|
|
05bd2b5297 | |
|
|
3d8c387d48 | |
|
|
55f022dea4 | |
|
|
75890615f7 | |
|
|
a7162273d0 | |
|
|
f40cb3bc3f | |
|
|
ac92a10732 | |
|
|
d10f4b6db0 | |
|
|
8fb6bd1b28 | |
|
|
a993d3ff56 | |
|
|
d0235b0adb | |
|
|
79f7ff95eb | |
|
|
3bc026fd01 | |
|
|
6c5ed96033 | |
|
|
70850773b2 | |
|
|
186f2dc52d | |
|
|
b683fdffce | |
|
|
bb5b6b1b44 | |
|
|
6370aaa025 | |
|
|
95a7de4f2e | |
|
|
d6447bbe91 | |
|
|
71c0122abf | |
|
|
ad7d44b1e3 | |
|
|
7e66da1495 | |
|
|
f37a612a84 | |
|
|
d60a91780b | |
|
|
a5ee5b0e9b | |
|
|
dc7c474237 | |
|
|
a8782096b0 | |
|
|
f5f4ddffea | |
|
|
6ef4c24024 | |
|
|
d1834415a9 | |
|
|
68964ee26c | |
|
|
6ee48d5c81 | |
|
|
fc7a5158bd | |
|
|
1837c0d47a | |
|
|
83d70f96bc | |
|
|
be9dd533df | |
|
|
2e04f42cca | |
|
|
6ecab5ef9d | |
|
|
8eb691a796 | |
|
|
895d69ee98 | |
|
|
8e78c541a2 | |
|
|
c04f432701 | |
|
|
24ed36b061 | |
|
|
d34b955da5 | |
|
|
ae24e964ab | |
|
|
8a0c8a726b | |
|
|
ad49f54a72 | |
|
|
f23c0b8778 | |
|
|
d8d2caee94 | |
|
|
477dd40685 | |
|
|
2ee99e208e | |
|
|
0730cb5e36 | |
|
|
5b56272eaf | |
|
|
bcc7fc2a92 | |
|
|
d04bcbf1dc | |
|
|
e6bd753a7f | |
|
|
4d2ad5fc8b | |
|
|
1158c50fa0 | |
|
|
9a2e61232c | |
|
|
4c992d0556 | |
|
|
ba81f6ae16 | |
|
|
5a0bbafcb2 | |
|
|
3108fdcf8d | |
|
|
dd785bad39 | |
|
|
18f6af3e6c | |
|
|
f737a07371 | |
|
|
6cd53aa7e2 | |
|
|
f4fab9f74a | |
|
|
7974077db1 | |
|
|
045f4c5242 | |
|
|
2fe3219ef1 | |
|
|
7ea6387acb | |
|
|
01ccf4c1cc | |
|
|
be9505b2e5 | |
|
|
2428548d77 | |
|
|
ae4905b61c | |
|
|
8b1e80507e | |
|
|
af1b02b5ed | |
|
|
9845e6e84d | |
|
|
1273879b4d | |
|
|
a96be2f0e6 | |
|
|
fd0d475a53 | |
|
|
81892a4640 | |
|
|
d11e5d7d70 | |
|
|
29c12dc98c | |
|
|
a63071ebb3 | |
|
|
8115710285 | |
|
|
660206b3e3 | |
|
|
b59e0ce00b | |
|
|
374c0cd9ec | |
|
|
2250f08263 | |
|
|
1916446e22 | |
|
|
67fad8bf37 | |
|
|
a4bc77491c | |
|
|
a835d4b72e | |
|
|
6ef1af9182 | |
|
|
fb55d3cdfe | |
|
|
29cd2e193a | |
|
|
1d64427488 | |
|
|
3cc2476a87 | |
|
|
56767a8edb | |
|
|
a76dd1b9e9 | |
|
|
12841b3f65 | |
|
|
b4d8a5c5a6 | |
|
|
f51e073858 | |
|
|
828e0bb625 | |
|
|
f3b54ce57b | |
|
|
413acc39d5 | |
|
|
7fee45544a | |
|
|
a2dc2bcd46 | |
|
|
6eadc0b59c | |
|
|
8d0a96782d | |
|
|
6cb9980520 | |
|
|
65cf4fec22 | |
|
|
4532f2e61b | |
|
|
4b9980f829 | |
|
|
eab64e395d | |
|
|
15f3a89bc3 | |
|
|
c99abc9332 | |
|
|
595d13eb74 | |
|
|
799b040705 | |
|
|
e4a5426f18 | |
|
|
db6e8f43c7 | |
|
|
935a8bc14f | |
|
|
57e4acf400 | |
|
|
15b21af353 | |
|
|
873a0ce059 | |
|
|
ae8148bb39 | |
|
|
43327b967b | |
|
|
627988e604 | |
|
|
70694dbfc8 | |
|
|
8b8619681b | |
|
|
1b57bfb75c | |
|
|
e4cc1b5646 | |
|
|
09063da084 | |
|
|
14d5c85db3 | |
|
|
f1b09297e4 | |
|
|
24a3400624 | |
|
|
d28287bcdd | |
|
|
ff692ffecf | |
|
|
8ed3641662 | |
|
|
555c4d7266 | |
|
|
65fdb2804b | |
|
|
e7e3464df0 | |
|
|
458bb0507a | |
|
|
0a8eedb221 | |
|
|
380714f257 | |
|
|
17c1155177 | |
|
|
8e4db9105a | |
|
|
50c4edcfba | |
|
|
7b7f98df79 | |
|
|
d4b7fadbc1 | |
|
|
61a2c6e82a | |
|
|
8dd7e1e5c1 | |
|
|
eb5c9f99ea | |
|
|
c5a4ff71d9 | |
|
|
b3b549cd20 | |
|
|
4839c1d280 | |
|
|
6e542e60af | |
|
|
97b09dfba2 | |
|
|
7d8a4af8c4 | |
|
|
40453112a2 | |
|
|
b9d35d9335 | |
|
|
db266b5009 |
|
|
@ -1,7 +1,9 @@
|
|||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"extends": ["config:base"],
|
||||
"schedule": ["every weekend"],
|
||||
"labels": ["dependencies"],
|
||||
"separateMajorMinor": "false",
|
||||
"separateMajorMinor": true,
|
||||
"packageRules": [
|
||||
{
|
||||
"matchDepTypes": ["devDependencies"],
|
||||
|
|
@ -18,8 +20,8 @@
|
|||
},
|
||||
{
|
||||
"matchDatasources": ["npm"],
|
||||
"matchPackageNames": ["eslint", "numerous", "execa"],
|
||||
"rangeStrategy": "pin"
|
||||
"matchPackageNames": ["eslint", "numerous", "execa", "which", ",@types/eslint"],
|
||||
"enabled": false
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ concurrency:
|
|||
|
||||
env:
|
||||
NODE_OPTIONS: --enable-source-maps
|
||||
version: "1.8.0"
|
||||
|
||||
jobs:
|
||||
Build:
|
||||
|
|
@ -23,30 +24,32 @@ jobs:
|
|||
os:
|
||||
- ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ github.head_ref || github.ref_name }}
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: "./.nvmrc"
|
||||
|
||||
- name: Setup Pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
- name: Setup Bun
|
||||
uses: oven-sh/setup-bun@v2
|
||||
with:
|
||||
bun-version-file: "package.json"
|
||||
|
||||
- name: Install
|
||||
run: |
|
||||
pnpm install
|
||||
bun install
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
pnpm build
|
||||
pnpm build.docker-ci
|
||||
bun run build
|
||||
bun run build.docker-ci
|
||||
|
||||
- name: Lint
|
||||
run: |
|
||||
pnpm run test.lint
|
||||
bun run test.lint
|
||||
|
||||
- name: Update Dist
|
||||
run: |
|
||||
|
|
@ -54,7 +57,7 @@ jobs:
|
|||
if [[ "${{ github.ref_name }}" =~ ^refs/heads/ ]]; then
|
||||
git config user.name "github-actions[bot]"
|
||||
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
|
||||
git add dist/
|
||||
git commit -m "chore(build): update dist"
|
||||
git push
|
||||
|
|
@ -66,7 +69,7 @@ jobs:
|
|||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Upload Dist
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v6
|
||||
if: always()
|
||||
with:
|
||||
name: dist
|
||||
|
|
@ -84,49 +87,65 @@ jobs:
|
|||
fail-fast: false
|
||||
matrix:
|
||||
os:
|
||||
- windows-2019
|
||||
- ubuntu-20.04
|
||||
- macos-13 # x64
|
||||
- windows-2022
|
||||
- ubuntu-22.04
|
||||
- ubuntu-22.04-arm
|
||||
- macos-15-intel # x64
|
||||
- macos-14 # arm64
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Download Artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@v7
|
||||
with:
|
||||
name: dist
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: "./.nvmrc"
|
||||
|
||||
- name: Setup Pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
- name: Setup Bun
|
||||
uses: oven-sh/setup-bun@v2
|
||||
with:
|
||||
bun-version-file: "package.json"
|
||||
|
||||
- name: Cache node_modules
|
||||
if: ${{ !contains(matrix.os, 'windows') }}
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: |
|
||||
~/.pnpm-store
|
||||
D:\.pnpm-store
|
||||
~/.bun
|
||||
./node_modules
|
||||
key: "setupcpp-node_modules-cache-OS:${{ matrix.os }}-${{ hashFiles('./.npmrc', './package.json', './.nvmrc', './pnpm-*.yaml') }}"
|
||||
key: "setupcpp-node_modules-cache-OS:${{ matrix.os }}-${{ hashFiles('./.npmrc', './package.json', './.nvmrc', './bun.lock') }}"
|
||||
restore-keys: |
|
||||
"setupcpp-node_modules-cache-OS:${{ matrix.os }}-"
|
||||
|
||||
- name: Cache Turbo
|
||||
uses: rharkor/caching-for-turbo@v1.8
|
||||
|
||||
- name: Cache .cache
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: |
|
||||
./.cache/eslint
|
||||
./.cache/cspell
|
||||
/home/runner/.cache/dprint
|
||||
key: "setupcpp-cache-OS:${{ matrix.os }}-${{ hashFiles('./*.json', './.*rc', './*.yml') }}"
|
||||
restore-keys: |
|
||||
"setupcpp-cache-OS:${{ matrix.os }}-"
|
||||
|
||||
- name: Install
|
||||
run: |
|
||||
pnpm install
|
||||
bun install
|
||||
|
||||
# Create self-contained executable that bundles Nodejs
|
||||
- name: Create Executable
|
||||
run: |
|
||||
pnpm run pack.exe
|
||||
bun run pack.exe
|
||||
|
||||
- name: Upload Executables
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v6
|
||||
with:
|
||||
name: exe-${{ matrix.os }}
|
||||
path: |
|
||||
|
|
@ -142,49 +161,50 @@ jobs:
|
|||
matrix:
|
||||
os:
|
||||
- windows-2022
|
||||
- windows-2019
|
||||
- ubuntu-24.04-arm
|
||||
- ubuntu-24.04
|
||||
- ubuntu-22.04-arm
|
||||
- ubuntu-22.04
|
||||
- ubuntu-20.04
|
||||
# - ubuntu-20.04
|
||||
- macos-15 # arm64
|
||||
# - macos-15-large # x64
|
||||
- macos-14 # arm64
|
||||
# - macos-14-large # x64
|
||||
- macos-15-intel # x64
|
||||
# - macos-14-xlarge #arm64
|
||||
- macos-13 # x64
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Download Dist
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@v7
|
||||
with:
|
||||
name: dist
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: "./.nvmrc"
|
||||
|
||||
- name: Setup Pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
- name: Setup Bun
|
||||
uses: oven-sh/setup-bun@v2
|
||||
with:
|
||||
bun-version-file: "package.json"
|
||||
|
||||
- name: Cache node_modules
|
||||
if: ${{ !contains(matrix.os, 'windows') }}
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: |
|
||||
~/.pnpm-store
|
||||
D:\.pnpm-store
|
||||
~/.bun
|
||||
./node_modules
|
||||
key: "setupcpp-node_modules-cache-OS:${{ matrix.os }}-${{ hashFiles('./.npmrc', './package.json', './.nvmrc', './pnpm-*.yaml') }}"
|
||||
key: "setupcpp-node_modules-cache-OS:${{ matrix.os }}-${{ hashFiles('./.npmrc', './package.json', './.nvmrc', './bun.lock') }}"
|
||||
restore-keys: |
|
||||
"setupcpp-node_modules-cache-OS:${{ matrix.os }}-"
|
||||
|
||||
- name: Install
|
||||
run: |
|
||||
pnpm install
|
||||
bun install
|
||||
|
||||
# - name: Setup SSH debugging session
|
||||
# uses: mxschmitt/action-tmate@v3
|
||||
|
|
@ -192,12 +212,12 @@ jobs:
|
|||
- name: Tests
|
||||
if: ${{ !contains(github.event.head_commit.message, '[skip test]') }}
|
||||
run: |
|
||||
pnpm run test
|
||||
bun run test
|
||||
env:
|
||||
RUNNER_OS_NAME: ${{ matrix.os }}
|
||||
|
||||
- name: Setup Node 20
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
|
|
@ -216,7 +236,7 @@ jobs:
|
|||
|
||||
- name: Setup Node 12
|
||||
if: ${{ !contains(matrix.os, 'macos-14') && !contains(matrix.os, 'macos-15') }}
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: 12
|
||||
- name: Smoke Test Legacy Bundle
|
||||
|
|
@ -225,7 +245,7 @@ jobs:
|
|||
node ./dist/legacy/setup-cpp.js --gcc true --cmake true
|
||||
|
||||
Docker:
|
||||
name: Docker-${{ matrix.container.image }}-${{ matrix.platform }}
|
||||
name: Docker-${{ matrix.container.image }}-${{ matrix.platform }}-${{ matrix.container.tag }}
|
||||
needs: [Build]
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
|
|
@ -236,44 +256,80 @@ jobs:
|
|||
platform:
|
||||
- linux/amd64
|
||||
container:
|
||||
- { distro: "ubuntu", image: "setup-cpp-ubuntu", tag: "22.04-1.1.0" }
|
||||
- { distro: "fedora", image: "setup-cpp-fedora", tag: "40-1.1.0" }
|
||||
- { distro: "arch", image: "setup-cpp-arch", tag: "base-1.1.0" }
|
||||
- { distro: "ubuntu", image: "setup-cpp-ubuntu", tag: "24.04" }
|
||||
- { distro: "ubuntu", image: "setup-cpp-ubuntu", tag: "22.04" }
|
||||
- { distro: "ubuntu", image: "setup-cpp-ubuntu", tag: "20.04" }
|
||||
- { distro: "fedora", image: "setup-cpp-fedora", tag: "44" }
|
||||
- { distro: "arch", image: "setup-cpp-arch", tag: "base" }
|
||||
- { distro: "alpine", image: "setup-cpp-alpine", tag: "3.21", base_version: "22-alpine3.21" }
|
||||
include:
|
||||
- os: ubuntu-24.04-arm
|
||||
platform: linux/arm64
|
||||
container: { distro: "ubuntu", image: "setup-cpp-ubuntu", tag: "22.04-1.1.0" }
|
||||
container: { distro: "ubuntu", image: "setup-cpp-ubuntu", tag: "24.04" }
|
||||
- os: ubuntu-24.04-arm
|
||||
platform: linux/arm64
|
||||
container: { distro: "ubuntu", image: "setup-cpp-ubuntu", tag: "22.04" }
|
||||
- os: ubuntu-24.04-arm
|
||||
platform: linux/arm64
|
||||
container: { distro: "ubuntu", image: "setup-cpp-ubuntu", tag: "20.04" }
|
||||
- os: ubuntu-24.04-arm
|
||||
platform: linux/arm64
|
||||
container: { distro: "alpine", image: "setup-cpp-alpine", tag: "3.21", base_version: "22-alpine3.21" }
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Download Dist
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@v7
|
||||
with:
|
||||
name: dist
|
||||
|
||||
- name: Define Platform Suffix
|
||||
id: platform
|
||||
run: |
|
||||
if [[ "${{ matrix.platform }}" == "linux/amd64" ]]; then
|
||||
echo "suffix=amd64" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "suffix=arm64" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v3
|
||||
if: ${{ github.event_name != 'pull_request' }}
|
||||
if: ${{ github.event_name != 'pull_request' || contains(github.event.head_commit.message, '[push docker]') }}
|
||||
with:
|
||||
username: aminya
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Build setup-cpp-${{matrix.container.distro }}
|
||||
id: build_base
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: .
|
||||
file: ./dev/docker/ci/${{ matrix.container.distro }}.dockerfile
|
||||
push: ${{ github.event_name != 'pull_request' }}
|
||||
push: ${{ github.event_name != 'pull_request' || contains(github.event.head_commit.message, '[push docker]') }}
|
||||
load: true
|
||||
provenance: false
|
||||
platforms: ${{ matrix.platform }}
|
||||
tags: aminya/${{ matrix.container.image }}:${{ matrix.container.tag }},aminya/${{ matrix.container.image }}:latest
|
||||
cache-from: type=registry,ref=user/app:latest
|
||||
tags: aminya/${{ matrix.container.image }}:${{ matrix.container.tag }}-${{ env.version }}-${{ steps.platform.outputs.suffix }}
|
||||
cache-from: type=registry,ref=aminya/${{ matrix.container.image }}:${{ matrix.container.tag }}-${{ env.version }}-${{ steps.platform.outputs.suffix }}
|
||||
cache-to: type=inline
|
||||
build-args: BASE_VERSION=${{ matrix.container.base_version || matrix.container.tag }}
|
||||
|
||||
- name: Tag latest locally
|
||||
run: |
|
||||
docker tag aminya/${{ matrix.container.image }}:${{ matrix.container.tag }}-${{ env.version }}-${{ steps.platform.outputs.suffix }} aminya/${{ matrix.container.image }}:latest
|
||||
docker tag aminya/${{ matrix.container.image }}:${{ matrix.container.tag }}-${{ env.version }}-${{ steps.platform.outputs.suffix }} aminya/${{ matrix.container.image }}:${{ matrix.container.tag }}
|
||||
|
||||
- name: Push latest to Docker Hub
|
||||
if: ${{ github.event_name != 'pull_request' && matrix.container.distro != 'ubuntu' && matrix.container.distro != 'alpine' }}
|
||||
run: |
|
||||
docker push aminya/${{ matrix.container.image }}:latest
|
||||
docker push aminya/${{ matrix.container.image }}:${{ matrix.container.tag }}
|
||||
|
||||
- name: Docker Readme for setup-cpp-${{matrix.container.distro }}
|
||||
if: ${{ github.event_name != 'pull_request' }}
|
||||
uses: peter-evans/dockerhub-description@v4
|
||||
if: ${{ github.event_name != 'pull_request' || contains(github.event.head_commit.message, '[push docker]') }}
|
||||
uses: peter-evans/dockerhub-description@v5
|
||||
with:
|
||||
username: aminya
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
|
@ -281,19 +337,35 @@ jobs:
|
|||
readme-filepath: ./README_DOCKER.md
|
||||
|
||||
- name: Build setup-cpp-${{matrix.container.distro }}-llvm
|
||||
id: build_llvm
|
||||
if: ${{ matrix.container.distro != 'arch' }}
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: .
|
||||
file: ./dev/docker/ci/${{ matrix.container.distro }}-llvm.dockerfile
|
||||
push: ${{ github.event_name != 'pull_request' }}
|
||||
push: ${{ github.event_name != 'pull_request' || contains(github.event.head_commit.message, '[push docker]') }}
|
||||
load: true
|
||||
provenance: false
|
||||
platforms: ${{ matrix.platform }}
|
||||
tags: aminya/${{ matrix.container.image }}-llvm:${{ matrix.container.tag }},aminya/${{ matrix.container.image }}-llvm:latest
|
||||
cache-from: type=registry,ref=user/app:latest
|
||||
tags: aminya/${{ matrix.container.image }}-llvm:${{ matrix.container.tag }}-${{ env.version }}-${{ steps.platform.outputs.suffix }}
|
||||
cache-from: type=registry,ref=aminya/${{ matrix.container.image }}-llvm:${{ matrix.container.tag }}-${{ env.version }}-${{ steps.platform.outputs.suffix }}
|
||||
cache-to: type=inline
|
||||
|
||||
- name: Tag latest locally
|
||||
if: ${{ matrix.container.distro != 'arch' }}
|
||||
run: |
|
||||
docker tag aminya/${{ matrix.container.image }}-llvm:${{ matrix.container.tag }}-${{ env.version }}-${{ steps.platform.outputs.suffix }} aminya/${{ matrix.container.image }}-llvm:latest
|
||||
docker tag aminya/${{ matrix.container.image }}-llvm:${{ matrix.container.tag }}-${{ env.version }}-${{ steps.platform.outputs.suffix }} aminya/${{ matrix.container.image }}-llvm:${{ matrix.container.tag }}
|
||||
|
||||
- name: Push latest to Docker Hub
|
||||
if: ${{ github.event_name != 'pull_request' && matrix.container.distro != 'ubuntu' && matrix.container.distro != 'alpine' && matrix.container.distro != 'arch' }}
|
||||
run: |
|
||||
docker push aminya/${{ matrix.container.image }}-llvm:latest
|
||||
docker push aminya/${{ matrix.container.image }}-llvm:${{ matrix.container.tag }}
|
||||
|
||||
- name: Docker Readme for setup-cpp-${{matrix.container.distro }}-llvm
|
||||
if: ${{ github.event_name != 'pull_request' }}
|
||||
uses: peter-evans/dockerhub-description@v4
|
||||
if: ${{ (github.event_name != 'pull_request' || contains(github.event.head_commit.message, '[push docker]')) && matrix.container.distro != 'arch' }}
|
||||
uses: peter-evans/dockerhub-description@v5
|
||||
with:
|
||||
username: aminya
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
|
@ -301,29 +373,43 @@ jobs:
|
|||
readme-filepath: ./README_DOCKER.md
|
||||
|
||||
- name: Test LLVM
|
||||
if: ${{ !contains(github.event.head_commit.message, '[skip test]') }}
|
||||
if: ${{ !contains(github.event.head_commit.message, '[skip test]') && matrix.container.distro != 'arch' }}
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: .
|
||||
file: ./dev/docker/examples/${{ matrix.container.distro }}-llvm.dockerfile
|
||||
push: false
|
||||
platforms: ${{ matrix.platform }}
|
||||
tags: aminya/test-${{ matrix.container.image }}-llvm:${{ matrix.container.tag }}
|
||||
tags: aminya/test-${{ matrix.container.image }}-llvm:${{ matrix.container.tag }}-${{ env.version }}
|
||||
|
||||
- name: Build setup-cpp-${{matrix.container.distro }}-gcc
|
||||
id: build_gcc
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: .
|
||||
file: ./dev/docker/ci/${{ matrix.container.distro }}-gcc.dockerfile
|
||||
push: ${{ github.event_name != 'pull_request' }}
|
||||
push: ${{ github.event_name != 'pull_request' || contains(github.event.head_commit.message, '[push docker]') }}
|
||||
load: true
|
||||
provenance: false
|
||||
platforms: ${{ matrix.platform }}
|
||||
tags: aminya/${{ matrix.container.image }}-gcc:${{ matrix.container.tag }},aminya/${{ matrix.container.image }}-gcc:latest
|
||||
cache-from: type=registry,ref=user/app:latest
|
||||
tags: aminya/${{ matrix.container.image }}-gcc:${{ matrix.container.tag }}-${{ env.version }}-${{ steps.platform.outputs.suffix }}
|
||||
cache-from: type=registry,ref=aminya/${{ matrix.container.image }}-gcc:${{ matrix.container.tag }}-${{ env.version }}-${{ steps.platform.outputs.suffix }}
|
||||
cache-to: type=inline
|
||||
|
||||
- name: Tag latest locally
|
||||
run: |
|
||||
docker tag aminya/${{ matrix.container.image }}-gcc:${{ matrix.container.tag }}-${{ env.version }}-${{ steps.platform.outputs.suffix }} aminya/${{ matrix.container.image }}-gcc:latest
|
||||
docker tag aminya/${{ matrix.container.image }}-gcc:${{ matrix.container.tag }}-${{ env.version }}-${{ steps.platform.outputs.suffix }} aminya/${{ matrix.container.image }}-gcc:${{ matrix.container.tag }}
|
||||
|
||||
- name: Push latest to Docker Hub
|
||||
if: ${{ github.event_name != 'pull_request' && matrix.container.distro != 'ubuntu' && matrix.container.distro != 'alpine' }}
|
||||
run: |
|
||||
docker push aminya/${{ matrix.container.image }}-gcc:latest
|
||||
docker push aminya/${{ matrix.container.image }}-gcc:${{ matrix.container.tag }}
|
||||
|
||||
- name: Docker Readme for setup-cpp-${{matrix.container.distro }}-gcc
|
||||
if: ${{ github.event_name != 'pull_request' }}
|
||||
uses: peter-evans/dockerhub-description@v4
|
||||
if: ${{ github.event_name != 'pull_request' || contains(github.event.head_commit.message, '[push docker]') }}
|
||||
uses: peter-evans/dockerhub-description@v5
|
||||
with:
|
||||
username: aminya
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
|
@ -338,37 +424,111 @@ jobs:
|
|||
file: ./dev/docker/examples/${{ matrix.container.distro }}-gcc.dockerfile
|
||||
push: false
|
||||
platforms: ${{ matrix.platform }}
|
||||
tags: aminya/test-${{ matrix.container.image }}-gcc:${{ matrix.container.tag }}
|
||||
tags: aminya/test-${{ matrix.container.image }}-gcc:${{ matrix.container.tag }}-${{ env.version }}
|
||||
|
||||
- name: Build setup-cpp-${{matrix.container.distro }}-mingw
|
||||
if: ${{ !contains(matrix.container.distro, 'fedora') }}
|
||||
id: build_mingw
|
||||
if: ${{ matrix.container.distro != 'fedora' && !(matrix.container.distro == 'alpine' && matrix.platform == 'linux/arm64') }}
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: .
|
||||
file: ./dev/docker/ci/${{ matrix.container.distro }}-mingw.dockerfile
|
||||
push: ${{ github.event_name != 'pull_request' }}
|
||||
push: ${{ github.event_name != 'pull_request' || contains(github.event.head_commit.message, '[push docker]') }}
|
||||
load: true
|
||||
provenance: false
|
||||
platforms: ${{ matrix.platform }}
|
||||
tags: aminya/${{ matrix.container.image }}-mingw:${{ matrix.container.tag }},aminya/${{ matrix.container.image }}-mingw:latest
|
||||
cache-from: type=registry,ref=user/app:latest
|
||||
tags: aminya/${{ matrix.container.image }}-mingw:${{ matrix.container.tag }}-${{ env.version }}-${{ steps.platform.outputs.suffix }}
|
||||
cache-from: type=registry,ref=aminya/${{ matrix.container.image }}-mingw:${{ matrix.container.tag }}-${{ env.version }}-${{ steps.platform.outputs.suffix }}
|
||||
cache-to: type=inline
|
||||
|
||||
- name: Tag latest locally
|
||||
if: ${{ matrix.container.distro != 'fedora' && !(matrix.container.distro == 'alpine' && matrix.platform == 'linux/arm64') }}
|
||||
run: |
|
||||
docker tag aminya/${{ matrix.container.image }}-mingw:${{ matrix.container.tag }}-${{ env.version }}-${{ steps.platform.outputs.suffix }} aminya/${{ matrix.container.image }}-mingw:latest
|
||||
docker tag aminya/${{ matrix.container.image }}-mingw:${{ matrix.container.tag }}-${{ env.version }}-${{ steps.platform.outputs.suffix }} aminya/${{ matrix.container.image }}-mingw:${{ matrix.container.tag }}
|
||||
- name: Push latest to Docker Hub
|
||||
if: ${{ github.event_name != 'pull_request' && matrix.container.distro != 'ubuntu' && matrix.container.distro != 'fedora' && matrix.container.distro != 'alpine' }}
|
||||
run: |
|
||||
docker push aminya/${{ matrix.container.image }}-mingw:latest
|
||||
docker push aminya/${{ matrix.container.image }}-mingw:${{ matrix.container.tag }}
|
||||
|
||||
- name: Docker Readme for setup-cpp-${{matrix.container.distro }}-mingw
|
||||
if: ${{ github.event_name != 'pull_request' }}
|
||||
uses: peter-evans/dockerhub-description@v4
|
||||
if: ${{ github.event_name != 'pull_request' && matrix.container.distro != 'fedora' && !(matrix.container.distro == 'alpine' && matrix.platform == 'linux/arm64') }}
|
||||
uses: peter-evans/dockerhub-description@v5
|
||||
with:
|
||||
username: aminya
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
repository: aminya/${{ matrix.container.image }}-mingw
|
||||
readme-filepath: ./README_DOCKER.md
|
||||
|
||||
- name: Test Mingw
|
||||
if: ${{ !contains(github.event.head_commit.message, '[skip test]') && !contains(matrix.container.distro, 'fedora') }}
|
||||
if: ${{ !contains(github.event.head_commit.message, '[skip test]') && matrix.container.distro != 'fedora' && matrix.container.distro != 'alpine' }}
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: .
|
||||
file: ./dev/docker/examples/${{ matrix.container.distro }}-mingw.dockerfile
|
||||
push: false
|
||||
platforms: ${{ matrix.platform }}
|
||||
tags: aminya/test-${{ matrix.container.image }}-mingw:${{ matrix.container.tag }}
|
||||
tags: aminya/test-${{ matrix.container.image }}-mingw:${{ matrix.container.tag }}-${{ env.version }}
|
||||
|
||||
Docker-Manifest:
|
||||
needs: [Docker]
|
||||
runs-on: ubuntu-24.04
|
||||
if: ${{ github.event_name != 'pull_request' || contains(github.event.head_commit.message, '[push docker]') }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
container:
|
||||
- { distro: "ubuntu", image: "setup-cpp-ubuntu", tag: "20.04", suffix: "", latest: false }
|
||||
- { distro: "ubuntu", image: "setup-cpp-ubuntu", tag: "20.04", suffix: "-llvm", latest: false }
|
||||
- { distro: "ubuntu", image: "setup-cpp-ubuntu", tag: "20.04", suffix: "-gcc", latest: false }
|
||||
- { distro: "ubuntu", image: "setup-cpp-ubuntu", tag: "20.04", suffix: "-mingw", latest: false }
|
||||
|
||||
- { distro: "ubuntu", image: "setup-cpp-ubuntu", tag: "22.04", suffix: "", latest: false }
|
||||
- { distro: "ubuntu", image: "setup-cpp-ubuntu", tag: "22.04", suffix: "-llvm", latest: false }
|
||||
- { distro: "ubuntu", image: "setup-cpp-ubuntu", tag: "22.04", suffix: "-gcc", latest: false }
|
||||
- { distro: "ubuntu", image: "setup-cpp-ubuntu", tag: "22.04", suffix: "-mingw", latest: false }
|
||||
|
||||
- { distro: "ubuntu", image: "setup-cpp-ubuntu", tag: "24.04", suffix: "", latest: true }
|
||||
- { distro: "ubuntu", image: "setup-cpp-ubuntu", tag: "24.04", suffix: "-llvm", latest: true }
|
||||
- { distro: "ubuntu", image: "setup-cpp-ubuntu", tag: "24.04", suffix: "-gcc", latest: true }
|
||||
- { distro: "ubuntu", image: "setup-cpp-ubuntu", tag: "24.04", suffix: "-mingw", latest: true }
|
||||
|
||||
- { distro: "alpine", image: "setup-cpp-alpine", tag: "3.21", suffix: "", latest: true }
|
||||
- { distro: "alpine", image: "setup-cpp-alpine", tag: "3.21", suffix: "-llvm", latest: true }
|
||||
- { distro: "alpine", image: "setup-cpp-alpine", tag: "3.21", suffix: "-gcc", latest: true }
|
||||
# - { distro: "alpine", image: "setup-cpp-alpine", tag: "3.21", suffix: "-mingw", latest: true }
|
||||
steps:
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: aminya
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- uses: Noelware/docker-manifest-action@0.4.3
|
||||
with:
|
||||
inputs: aminya/${{ matrix.container.image }}${{ matrix.container.suffix }}:${{ matrix.container.tag }}-${{ env.version }}
|
||||
images: aminya/${{ matrix.container.image }}${{ matrix.container.suffix }}:${{ matrix.container.tag }}-${{ env.version }}-amd64,aminya/${{ matrix.container.image }}${{ matrix.container.suffix }}:${{ matrix.container.tag }}-${{ env.version }}-arm64
|
||||
push: true
|
||||
amend: true
|
||||
|
||||
- uses: Noelware/docker-manifest-action@0.4.3
|
||||
with:
|
||||
inputs: aminya/${{ matrix.container.image }}${{ matrix.container.suffix }}:${{ matrix.container.tag }}
|
||||
images: aminya/${{ matrix.container.image }}${{ matrix.container.suffix }}:${{ matrix.container.tag }}-${{ env.version }}-amd64,aminya/${{ matrix.container.image }}${{ matrix.container.suffix }}:${{ matrix.container.tag }}-${{ env.version }}-arm64
|
||||
push: true
|
||||
amend: true
|
||||
|
||||
- uses: Noelware/docker-manifest-action@0.4.3
|
||||
if: ${{ matrix.container.latest }}
|
||||
with:
|
||||
inputs: aminya/${{ matrix.container.image }}${{ matrix.container.suffix }}:latest
|
||||
images: aminya/${{ matrix.container.image }}${{ matrix.container.suffix }}:${{ matrix.container.tag }}-${{ env.version }}-amd64,aminya/${{ matrix.container.image }}${{ matrix.container.suffix }}:${{ matrix.container.tag }}-${{ env.version }}-arm64
|
||||
push: true
|
||||
amend: true
|
||||
|
||||
Release:
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
|
|
@ -376,7 +536,7 @@ jobs:
|
|||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: Download Executables
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@v7
|
||||
with:
|
||||
pattern: exe-*
|
||||
path: ./exe/
|
||||
|
|
@ -388,7 +548,7 @@ jobs:
|
|||
chmod +x -R ./exe/
|
||||
|
||||
- name: Download Dist
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@v7
|
||||
with:
|
||||
name: dist
|
||||
path: dist/
|
||||
|
|
|
|||
|
|
@ -24,3 +24,5 @@ coverage
|
|||
/src/llvm/assets/
|
||||
|
||||
/build
|
||||
dist/library
|
||||
*.tgz
|
||||
|
|
|
|||
|
|
@ -0,0 +1,24 @@
|
|||
.DS_Store
|
||||
Thumbs.db
|
||||
**/node_modules
|
||||
**/temp-*
|
||||
**/tsconfig.tsbuildinfo
|
||||
.parcel-cache
|
||||
**/exe/
|
||||
**/log
|
||||
**/exe
|
||||
**/cache
|
||||
**/.cache
|
||||
**/coverage
|
||||
**/.turbo
|
||||
src/llvm/assets/
|
||||
**/build
|
||||
**/__tests__
|
||||
**/dev/cpp_vcpkg_project
|
||||
**/packages/*/dist/
|
||||
**/*.tgz
|
||||
**/.eslintrc.json
|
||||
**/jest.config.mjs
|
||||
.vscode/
|
||||
.github/
|
||||
biome.jsonc
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
import { buildTerserOptions } from "terser-config-atomic/dist/builder.js"
|
||||
const config = buildTerserOptions(process.env.NODE_ENV, undefined, true)
|
||||
|
||||
if (
|
||||
typeof config.compress === "object"
|
||||
&& "unsafe_math" in config.compress
|
||||
) {
|
||||
config.compress.unsafe_math = false
|
||||
}
|
||||
|
||||
export default config
|
||||
|
|
@ -72,5 +72,8 @@
|
|||
"prettier.enable": false,
|
||||
"javascript.preferences.importModuleSpecifierEnding": "js",
|
||||
"typescript.preferences.importModuleSpecifierEnding": "js",
|
||||
"eslint.useESLintClass": true
|
||||
"eslint.useESLintClass": true,
|
||||
"yaml.schemas": {
|
||||
"https://json.schemastore.org/container-structure-test.json": "/dev/docker/ci/tests/*.yml"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.21...3.28)
|
|||
|
||||
project(
|
||||
setup_cpp_tests
|
||||
VERSION 1.1.0
|
||||
VERSION 1.8.0
|
||||
DESCRIPTION "Tests for setup-cpp"
|
||||
HOMEPAGE_URL "https://github.com/aminya/setup-cpp"
|
||||
LANGUAGES CXX C)
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
# Contributing
|
||||
|
||||
You will need [`pnpm`](https://pnpm.io/installation) to build and test `setup-cpp`:
|
||||
You will need [`bun`](https://bun.com/) to build and test `setup-cpp`:
|
||||
|
||||
```shell
|
||||
pnpm install
|
||||
bun install
|
||||
```
|
||||
|
||||
To avoid permenant changes to your system, you can use the test docker images under `./dev/docker/__tests__`.
|
||||
|
|
|
|||
155
README.md
155
README.md
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
Install all the tools required for building and testing C++/C projects.
|
||||
|
||||

|
||||
[](https://github.com/aminya/setup-cpp/actions/workflows/CI.yml)
|
||||
|
||||
Setting up a **cross-platform** environment for building and testing C++/C projects is a bit tricky. Each platform has its own compilers, and each of them requires a different installation procedure. This package aims to fix this issue.
|
||||
|
||||
|
|
@ -31,12 +31,12 @@ Setting up a **cross-platform** environment for building and testing C++/C proje
|
|||
| --------------- | ----------------------------------------------------------------------------------------------------------- |
|
||||
| compiler | llvm, gcc, msvc, apple-clang, vcvarsall |
|
||||
| build system | cmake, ninja, meson, make, task, bazel |
|
||||
| package manager | vcpkg, conan, choco, brew, nala, setup-cpp |
|
||||
| package manager | vcpkg, conan, choco, brew, apt-fast, nala, git, setup-cpp |
|
||||
| analyzer/linter | clang-tidy, clang-format, cppcheck, cpplint, flawfinder, lizard, infer, cmakelang, cmake-format, cmake-lint |
|
||||
| cache | ccache, sccache |
|
||||
| documentation | doxygen, graphviz |
|
||||
| coverage | gcovr, opencppcoverage, kcov |
|
||||
| other | python, powershell, sevenzip |
|
||||
| other | python, powershell, sevenzip, tar |
|
||||
|
||||
`setup-cpp` automatically handles the dependencies of the selected tool (e.g., `python` is required for `conan`).
|
||||
|
||||
|
|
@ -70,23 +70,19 @@ NOTE: setup-cpp requires Nodejs 12 or higher. If Nodejs shipped with your distri
|
|||
|
||||
#### With executable
|
||||
|
||||
Download the executable for your platform from [here](https://github.com/aminya/setup-cpp/releases/tag/v1.1.0), and run it with the available options. You can also automate downloading using `curl`, or other similar tools.
|
||||
Download the executable for your platform from [here](https://github.com/aminya/setup-cpp/releases/tag/v1.8.0), and run it with the available options. You can also automate downloading using `curl`, or other similar tools.
|
||||
|
||||
```shell
|
||||
# windows x64
|
||||
curl -o ./setup-cpp.exe -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.1.0/setup-cpp-x64-windows.exe"
|
||||
|
||||
curl -o ./setup-cpp.exe -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.8.0/setup-cpp-x64-windows.exe"
|
||||
# linux x64
|
||||
curl -o ./setup-cpp -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.1.0/setup-cpp-x64-linux"
|
||||
chmod +x ./setup-cpp
|
||||
|
||||
curl -o ./setup-cpp -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.8.0/setup-cpp-x64-linux"
|
||||
# linux arm64
|
||||
curl -o ./setup-cpp -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.8.0/setup-cpp-arm64-linux"
|
||||
# macos arm64
|
||||
curl -o ./setup-cpp -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.1.0/setup-cpp-arm64-macos"
|
||||
chmod +x ./setup-cpp
|
||||
|
||||
curl -o ./setup-cpp -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.8.0/setup-cpp-arm64-macos"
|
||||
# macos x64
|
||||
curl -o ./setup-cpp -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.1.0/setup-cpp-x64-macos"
|
||||
chmod +x ./setup-cpp
|
||||
curl -o ./setup-cpp -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.8.0/setup-cpp-x64-macos"
|
||||
```
|
||||
|
||||
An example that installs llvm, cmake, ninja, ccache, and vcpkg:
|
||||
|
|
@ -99,6 +95,7 @@ An example that installs llvm, cmake, ninja, ccache, and vcpkg:
|
|||
|
||||
```shell
|
||||
# linux/macos example
|
||||
chmod +x ./setup-cpp
|
||||
sudo ./setup-cpp --compiler llvm --cmake true --ninja true --ccache true --vcpkg true
|
||||
source ~/.cpprc # activate cpp environment variables
|
||||
```
|
||||
|
|
@ -212,90 +209,145 @@ When using the `setup-cpp` action in GitHub Actions, by default it will also ins
|
|||
|
||||
To provide fast development environments, `setup-cpp` provides several prebuilt docker images that have the tools you need. You can use these images as a base image for your project.
|
||||
|
||||
The names are in the format `aminya/setup-cpp-<platform>:<platform_version>-<setup_cpp_version>` and `aminya/setup-cpp-<platform>-<compiler>:<platform_version>-<setup_cpp_version>`.
|
||||
The tags are in the following template:
|
||||
|
||||
#### Ubuntu Images
|
||||
- Base image: `aminya/setup-cpp-ubuntu:24.04`
|
||||
- Compiler image: `aminya/setup-cpp-ubuntu-llvm:24.04`
|
||||
- Base image with pinned setup-cpp version: `aminya/setup-cpp-ubuntu:24.04-v1.8.0`
|
||||
- Compiler image with pinned setup-cpp version: `aminya/setup-cpp-ubuntu-llvm:24.04-v1.8.0`
|
||||
|
||||
Base image with `cmake, ninja, task, vcpkg, python, make, cppcheck, gcovr, doxygen, ccache, conan, meson, cmakelang`
|
||||
The supported platforms are `ubuntu`, `alpine`, `fedora`, and `arch`. The supported compilers are `llvm`, `gcc`, and `mingw`.
|
||||
|
||||
#### Ubuntu Images (amd64 and arm64)
|
||||
|
||||
Setup-cpp provides prebuilt images for various Ubuntu versions (20.04, 22.04, 24.04) with support for base tools, and compilers `llvm`, `gcc`, and `mingw` available for `amd64` and `arm64` architectures.
|
||||
|
||||
Base image with `cmake, ninja, task, vcpkg, python, make, cppcheck, gcovr, doxygen, ccache, conan, meson, cmakelang` for Ubuntu 24.04:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-ubuntu:22.04-1.1.0 AS builder
|
||||
FROM aminya/setup-cpp-ubuntu:24.04 AS builder
|
||||
```
|
||||
|
||||
Image with `llvm` and the base tools:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-ubuntu-llvm:22.04-1.1.0 AS builder
|
||||
FROM aminya/setup-cpp-ubuntu-llvm:24.04 AS builder
|
||||
```
|
||||
|
||||
Image with `gcc` and the base tools:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-ubuntu-gcc:22.04-1.1.0 AS builder
|
||||
FROM aminya/setup-cpp-ubuntu-gcc:24.04 AS builder
|
||||
```
|
||||
|
||||
Image with `mingw` and the base tools:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-ubuntu-mingw:22.04-1.1.0 AS builder
|
||||
FROM aminya/setup-cpp-ubuntu-mingw:24.04 AS builder
|
||||
```
|
||||
|
||||
#### Fedora Images
|
||||
There are also the variants for Ubuntu `22.04`
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-ubuntu:22.04 AS builder
|
||||
FROM aminya/setup-cpp-ubuntu-llvm:22.04 AS builder
|
||||
FROM aminya/setup-cpp-ubuntu-gcc:22.04 AS builder
|
||||
FROM aminya/setup-cpp-ubuntu-mingw:22.04 AS builder
|
||||
```
|
||||
|
||||
And for Ubuntu `20.04`:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-ubuntu:20.04 AS builder
|
||||
FROM aminya/setup-cpp-ubuntu-llvm:20.04 AS builder
|
||||
FROM aminya/setup-cpp-ubuntu-gcc:20.04 AS builder
|
||||
FROM aminya/setup-cpp-ubuntu-mingw:20.04 AS builder
|
||||
```
|
||||
|
||||
#### Alpine Images (amd64 and arm64)
|
||||
|
||||
Setup-cpp provides prebuilt images for Alpine with support for base tools, and compilers `llvm`, `gcc`, and `mingw` available for `amd64` and `arm64` architectures.
|
||||
|
||||
Base image with `cmake, ninja, task, vcpkg, python, make, cppcheck, gcovr, doxygen, ccache, conan, meson, cmakelang` for Alpine 3.18:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-alpine:3.21 AS builder
|
||||
```
|
||||
|
||||
Image with `llvm` and the base tools:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-alpine-llvm:3.21 AS builder
|
||||
```
|
||||
|
||||
Image with `gcc` and the base tools:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-alpine-gcc:3.21 AS builder
|
||||
```
|
||||
|
||||
Image with `mingw` and the base tools:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-alpine-mingw:3.21 AS builder
|
||||
```
|
||||
|
||||
#### Fedora Images (amd64)
|
||||
|
||||
<details>
|
||||
|
||||
Base image with `cmake, ninja, task, vcpkg, python, make, cppcheck, gcovr, doxygen, ccache, conan, meson, cmakelang`
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-fedora:40-1.1.0 AS builder
|
||||
FROM aminya/setup-cpp-fedora:40 AS builder
|
||||
```
|
||||
|
||||
Image with `llvm` and the base tools:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-fedora-llvm:40-1.1.0 AS builder
|
||||
FROM aminya/setup-cpp-fedora-llvm:40 AS builder
|
||||
```
|
||||
|
||||
Image with `gcc` and the base tools:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-fedora-gcc:40-1.1.0 AS builder
|
||||
FROM aminya/setup-cpp-fedora-gcc:40 AS builder
|
||||
```
|
||||
|
||||
Image with `mingw` and the base tools:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-fedora-mingw:40-1.1.0 AS builder
|
||||
FROM aminya/setup-cpp-fedora-mingw:40 AS builder
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
#### ArchLinux Images
|
||||
#### ArchLinux Images (amd64)
|
||||
|
||||
<details>
|
||||
|
||||
Base image with `cmake, ninja, task, vcpkg, python, make, cppcheck, gcovr, doxygen, ccache, conan, meson, cmakelang`
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-arch:base-1.1.0 AS builder
|
||||
FROM aminya/setup-cpp-arch:base AS builder
|
||||
```
|
||||
|
||||
Image with `llvm` and the base tools:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-arch-llvm:base-1.1.0 AS builder
|
||||
FROM aminya/setup-cpp-arch-llvm:base AS builder
|
||||
```
|
||||
|
||||
Image with `gcc` and the base tools:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-arch-gcc:base-1.1.0 AS builder
|
||||
FROM aminya/setup-cpp-arch-gcc:base AS builder
|
||||
```
|
||||
|
||||
Image with `mingw` and the base tools:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-arch-mingw:base-1.1.0 AS builder
|
||||
FROM aminya/setup-cpp-arch-mingw:base AS builder
|
||||
```
|
||||
|
||||
</details>
|
||||
|
|
@ -314,7 +366,7 @@ RUN apt-get update -qq && \
|
|||
# install nodejs
|
||||
apt-get install -y --no-install-recommends nodejs npm && \
|
||||
# install setup-cpp
|
||||
npm install -g setup-cpp@v1.1.0 && \
|
||||
npm install -g setup-cpp@v1.8.0 && \
|
||||
# install the compiler and tools
|
||||
NODE_OPTIONS="--enable-source-maps" \
|
||||
setup-cpp \
|
||||
|
|
@ -338,15 +390,15 @@ RUN apt-get update -qq && \
|
|||
rm -rf /var/lib/apt/lists/* && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
ENTRYPOINT ["/bin/bash"]
|
||||
SHELL ["/bin/bash", "-l", "-c"]
|
||||
ENTRYPOINT ["/bin/bash", "-l"]
|
||||
|
||||
#### Building (example)
|
||||
FROM setup-cpp-ubuntu AS builder
|
||||
|
||||
COPY ./dev/cpp_vcpkg_project /home/app
|
||||
WORKDIR /home/app
|
||||
RUN bash -c 'source ~/.cpprc \
|
||||
&& task build'
|
||||
RUN task build
|
||||
|
||||
#### Running environment
|
||||
# use a fresh image as the runner
|
||||
|
|
@ -424,7 +476,7 @@ stages:
|
|||
apt-get install -y --no-install-recommends nodejs npm
|
||||
|
||||
# install setup-cpp
|
||||
npm install -g setup-cpp@v1.1.0
|
||||
npm install -g setup-cpp@v1.8.0
|
||||
|
||||
# install the compiler and tools
|
||||
./setup-cpp-x64-linux --compiler $compiler --cmake true --ninja true --ccache true --vcpkg true
|
||||
|
|
@ -453,6 +505,37 @@ test_linux_gcc:
|
|||
- *test
|
||||
```
|
||||
|
||||
### As a Library in Nodejs
|
||||
|
||||
```ts
|
||||
import { setupCpp, success, error } from "setup-cpp"
|
||||
|
||||
async function main() {
|
||||
const { errorMessages, successMessages } = await setupCpp({
|
||||
compiler: "llvm",
|
||||
cmake: true,
|
||||
ninja: true,
|
||||
vcpkg: true,
|
||||
})
|
||||
|
||||
for (const message of errorMessages) {
|
||||
error(message)
|
||||
}
|
||||
for (const message of successMessages) {
|
||||
success(message)
|
||||
}
|
||||
|
||||
if (errorMessages.length !== 0) {
|
||||
process.exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
main().catch(err => {
|
||||
console.error(err)
|
||||
process.exit(1)
|
||||
})
|
||||
```
|
||||
|
||||
## Articles
|
||||
|
||||
[Setup-Cpp on Dev.to](https://dev.to/aminya/setup-cpp-3ia4)
|
||||
|
|
|
|||
103
README_DOCKER.md
103
README_DOCKER.md
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
Install all the tools required for building and testing C++/C projects.
|
||||
|
||||

|
||||
[](https://github.com/aminya/setup-cpp/actions/workflows/CI.yml)
|
||||
|
||||
Setting up a **cross-platform** environment for building and testing C++/C projects is a bit tricky. Each platform has its own compilers, and each of them requires a different installation procedure. This package aims to fix this issue.
|
||||
|
||||
|
|
@ -16,82 +16,145 @@ See https://github.com/aminya/setup-cpp for more information about using `setup-
|
|||
|
||||
To provide fast development environments, `setup-cpp` provides several prebuilt docker images that have the tools you need. You can use these images as a base image for your project.
|
||||
|
||||
The names are in the format `aminya/setup-cpp-<platform>:<platform_version>-<setup_cpp_version>` and `aminya/setup-cpp-<platform>-<compiler>:<platform_version>-<setup_cpp_version>`.
|
||||
The tags are in the following template:
|
||||
|
||||
#### Ubuntu Images
|
||||
- Base image: `aminya/setup-cpp-ubuntu:24.04`
|
||||
- Compiler image: `aminya/setup-cpp-ubuntu-llvm:24.04`
|
||||
- Base image with pinned setup-cpp version: `aminya/setup-cpp-ubuntu:24.04-v1.8.0`
|
||||
- Compiler image with pinned setup-cpp version: `aminya/setup-cpp-ubuntu-llvm:24.04-v1.8.0`
|
||||
|
||||
Base image with `cmake, ninja, task, vcpkg, python, make, cppcheck, gcovr, doxygen, ccache, conan, meson, cmakelang`
|
||||
The supported platforms are `ubuntu`, `alpine`, `fedora`, and `arch`. The supported compilers are `llvm`, `gcc`, and `mingw`.
|
||||
|
||||
#### Ubuntu Images (amd64 and arm64)
|
||||
|
||||
Setup-cpp provides prebuilt images for various Ubuntu versions (20.04, 22.04, 24.04) with support for base tools, and compilers `llvm`, `gcc`, and `mingw` available for `amd64` and `arm64` architectures.
|
||||
|
||||
Base image with `cmake, ninja, task, vcpkg, python, make, cppcheck, gcovr, doxygen, ccache, conan, meson, cmakelang` for Ubuntu 24.04:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-ubuntu:22.04-1.1.0 AS builder
|
||||
FROM aminya/setup-cpp-ubuntu:24.04 AS builder
|
||||
```
|
||||
|
||||
Image with `llvm` and the base tools:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-ubuntu-llvm:22.04-1.1.0 AS builder
|
||||
FROM aminya/setup-cpp-ubuntu-llvm:24.04 AS builder
|
||||
```
|
||||
|
||||
Image with `gcc` and the base tools:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-ubuntu-gcc:22.04-1.1.0 AS builder
|
||||
FROM aminya/setup-cpp-ubuntu-gcc:24.04 AS builder
|
||||
```
|
||||
|
||||
Image with `mingw` and the base tools:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-ubuntu-mingw:22.04-1.1.0 AS builder
|
||||
FROM aminya/setup-cpp-ubuntu-mingw:24.04 AS builder
|
||||
```
|
||||
|
||||
#### Fedora Images
|
||||
|
||||
Base image with `cmake, ninja, task, vcpkg, python, make, cppcheck, gcovr, doxygen, ccache, conan, meson, cmakelang`
|
||||
There are also the variants for Ubuntu `22.04`
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-fedora:40-1.1.0 AS builder
|
||||
FROM aminya/setup-cpp-ubuntu:22.04 AS builder
|
||||
FROM aminya/setup-cpp-ubuntu-llvm:22.04 AS builder
|
||||
FROM aminya/setup-cpp-ubuntu-gcc:22.04 AS builder
|
||||
FROM aminya/setup-cpp-ubuntu-mingw:22.04 AS builder
|
||||
```
|
||||
|
||||
And for Ubuntu `20.04`:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-ubuntu:20.04 AS builder
|
||||
FROM aminya/setup-cpp-ubuntu-llvm:20.04 AS builder
|
||||
FROM aminya/setup-cpp-ubuntu-gcc:20.04 AS builder
|
||||
FROM aminya/setup-cpp-ubuntu-mingw:20.04 AS builder
|
||||
```
|
||||
|
||||
#### Alpine Images (amd64 and arm64)
|
||||
|
||||
Setup-cpp provides prebuilt images for Alpine with support for base tools, and compilers `llvm`, `gcc`, and `mingw` available for `amd64` and `arm64` architectures.
|
||||
|
||||
Base image with `cmake, ninja, task, vcpkg, python, make, cppcheck, gcovr, doxygen, ccache, conan, meson, cmakelang` for Alpine 3.18:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-alpine:3.21 AS builder
|
||||
```
|
||||
|
||||
Image with `llvm` and the base tools:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-fedora-llvm:40-1.1.0 AS builder
|
||||
FROM aminya/setup-cpp-alpine-llvm:3.21 AS builder
|
||||
```
|
||||
|
||||
Image with `gcc` and the base tools:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-fedora-gcc:40-1.1.0 AS builder
|
||||
FROM aminya/setup-cpp-alpine-gcc:3.21 AS builder
|
||||
```
|
||||
|
||||
Image with `mingw` and the base tools:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-fedora-mingw:40-1.1.0 AS builder
|
||||
FROM aminya/setup-cpp-alpine-mingw:3.21 AS builder
|
||||
```
|
||||
|
||||
#### ArchLinux Images
|
||||
#### Fedora Images (amd64)
|
||||
|
||||
<details>
|
||||
|
||||
Base image with `cmake, ninja, task, vcpkg, python, make, cppcheck, gcovr, doxygen, ccache, conan, meson, cmakelang`
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-arch:base-1.1.0 AS builder
|
||||
FROM aminya/setup-cpp-fedora:40 AS builder
|
||||
```
|
||||
|
||||
Image with `llvm` and the base tools:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-arch-llvm:base-1.1.0 AS builder
|
||||
FROM aminya/setup-cpp-fedora-llvm:40 AS builder
|
||||
```
|
||||
|
||||
Image with `gcc` and the base tools:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-arch-gcc:base-1.1.0 AS builder
|
||||
FROM aminya/setup-cpp-fedora-gcc:40 AS builder
|
||||
```
|
||||
|
||||
Image with `mingw` and the base tools:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-arch-mingw:base-1.1.0 AS builder
|
||||
FROM aminya/setup-cpp-fedora-mingw:40 AS builder
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
#### ArchLinux Images (amd64)
|
||||
|
||||
<details>
|
||||
|
||||
Base image with `cmake, ninja, task, vcpkg, python, make, cppcheck, gcovr, doxygen, ccache, conan, meson, cmakelang`
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-arch:base AS builder
|
||||
```
|
||||
|
||||
Image with `llvm` and the base tools:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-arch-llvm:base AS builder
|
||||
```
|
||||
|
||||
Image with `gcc` and the base tools:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-arch-gcc:base AS builder
|
||||
```
|
||||
|
||||
Image with `mingw` and the base tools:
|
||||
|
||||
```dockerfile
|
||||
FROM aminya/setup-cpp-arch-mingw:base AS builder
|
||||
```
|
||||
|
||||
</details>
|
||||
|
|
|
|||
|
|
@ -163,6 +163,12 @@ inputs:
|
|||
node-package-manager:
|
||||
description: "The node package manager to use (npm/yarn/pnpm) when installing setup-cpp globally"
|
||||
required: false
|
||||
git:
|
||||
description: "Wether to install git (true/false) or the specific version to install."
|
||||
required: false
|
||||
tar:
|
||||
description: "Wether to install tar (true/false) or the specific version to install."
|
||||
required: false
|
||||
|
||||
runs:
|
||||
using: "node20"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import type { TransformOptions } from "@babel/core"
|
||||
// @ts-ignore
|
||||
// @ts-expect-error no types
|
||||
import RemoveNodePrefix from "@upleveled/babel-plugin-remove-node-prefix"
|
||||
|
||||
const babelConfig: TransformOptions = {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
[install]
|
||||
linker = "hoisted"
|
||||
|
|
@ -31,6 +31,8 @@ words:
|
|||
- clangd
|
||||
- cmake
|
||||
- cmakeformat
|
||||
- cmakelang
|
||||
- cmakelint
|
||||
- cobertura
|
||||
- copr
|
||||
- CPATH
|
||||
|
|
@ -48,6 +50,7 @@ words:
|
|||
- dyld
|
||||
- eabi
|
||||
- envosman
|
||||
- envosmanrc
|
||||
- esac
|
||||
- esbuild
|
||||
- esmodule
|
||||
|
|
@ -57,11 +60,13 @@ words:
|
|||
- gcovr
|
||||
- ghes
|
||||
- Graphviz
|
||||
- gtar
|
||||
- hadolint
|
||||
- iarna
|
||||
- inja
|
||||
- isci
|
||||
- isroot
|
||||
- jsonify
|
||||
- kcov
|
||||
- LDFLAGS
|
||||
- lefticus
|
||||
|
|
@ -71,6 +76,7 @@ words:
|
|||
- libstdc
|
||||
- libtinfo
|
||||
- liuli
|
||||
- llvmorg
|
||||
- mdimporterdir
|
||||
- memoizee
|
||||
- mkdirp
|
||||
|
|
@ -100,6 +106,7 @@ words:
|
|||
- pygments
|
||||
- pypy
|
||||
- qlplugindir
|
||||
- rharkor
|
||||
- Sccache
|
||||
- setupcpp
|
||||
- setx
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
FROM aminya/setup-cpp-alpine:latest AS setup-cpp-alpine-gcc
|
||||
|
||||
# install gcc
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.mjs \
|
||||
--compiler gcc && \
|
||||
# cleanup
|
||||
rm -rf /var/cache/apk/*
|
||||
|
||||
SHELL ["/entrypoint.sh", "/bin/sh", "-c"]
|
||||
ENTRYPOINT ["/entrypoint.sh", "/bin/sh"]
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
FROM aminya/setup-cpp-alpine:latest AS setup-cpp-alpine-llvm
|
||||
|
||||
# install llvm
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.mjs \
|
||||
--compiler llvm && \
|
||||
# cleanup
|
||||
rm -rf /var/cache/apk/*
|
||||
|
||||
SHELL ["/entrypoint.sh", "/bin/sh", "-c"]
|
||||
ENTRYPOINT ["/entrypoint.sh", "/bin/sh"]
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
FROM aminya/setup-cpp-alpine:latest AS setup-cpp-alpine-mingw
|
||||
|
||||
# install mingw/powershell
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.mjs \
|
||||
--compiler mingw \
|
||||
--powershell true && \
|
||||
# cleanup
|
||||
rm -rf /var/cache/apk/*
|
||||
|
||||
SHELL ["/entrypoint.sh", "/bin/sh", "-c"]
|
||||
ENTRYPOINT ["/entrypoint.sh", "/bin/sh"]
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
ARG BASE_VERSION=22-alpine3.21
|
||||
|
||||
#### Base Image with Node.js
|
||||
FROM --platform=$BUILDPLATFORM node:${BASE_VERSION} AS alpine-nodejs
|
||||
|
||||
#### Base Image with Tools
|
||||
FROM alpine-nodejs AS setup-cpp-alpine
|
||||
|
||||
COPY "./dist/modern" "/usr/lib/setup-cpp/"
|
||||
|
||||
# install the cpp tools
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.mjs \
|
||||
--cmake true \
|
||||
--ninja true \
|
||||
--task true \
|
||||
--python true \
|
||||
--make true \
|
||||
--cppcheck true \
|
||||
--gcovr true \
|
||||
--doxygen true \
|
||||
--vcpkg true \
|
||||
--ccache true \
|
||||
--conan true \
|
||||
--cmakelang true \
|
||||
--meson true && \
|
||||
# cleanup
|
||||
rm -rf /var/cache/apk/*
|
||||
|
||||
# Custom entrypoint due to bash -l limitations on Alpine
|
||||
RUN printf '#!/bin/bash\nsource $HOME/.cpprc\nexec "$@"\n' > /entrypoint.sh && \
|
||||
chmod +x /entrypoint.sh
|
||||
|
||||
SHELL ["/entrypoint.sh", "/bin/sh", "-c"]
|
||||
ENTRYPOINT ["/entrypoint.sh", "/bin/sh"]
|
||||
|
|
@ -1,11 +1,12 @@
|
|||
FROM --platform=$BUILDPLATFORM aminya/setup-cpp-arch:latest AS setup-cpp-arch-gcc
|
||||
FROM aminya/setup-cpp-arch:latest AS setup-cpp-arch-gcc
|
||||
|
||||
# install llvm
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.js \
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.mjs \
|
||||
--compiler gcc && \
|
||||
# arch cleanup
|
||||
pacman -Scc --noconfirm && \
|
||||
rm -rf /var/cache/pacman/pkg/* && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
ENTRYPOINT ["/bin/bash"]
|
||||
SHELL ["/bin/bash", "-l", "-c"]
|
||||
ENTRYPOINT ["/bin/bash", "-l"]
|
||||
|
|
|
|||
|
|
@ -1,68 +0,0 @@
|
|||
schemaVersion: 2.0.0
|
||||
|
||||
commandTests:
|
||||
- name: cmake
|
||||
command: cmake
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*3.*"]
|
||||
- name: ninja
|
||||
command: /root/ninja/ninja
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*1.*"]
|
||||
- name: task
|
||||
command: task
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Task version:\\s*v3.*"]
|
||||
- name: python
|
||||
command: python
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Python.*"]
|
||||
- name: python3
|
||||
command: python3
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Python.*"]
|
||||
- name: make
|
||||
command: make
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*GNU Make.*"]
|
||||
- name: cppcheck
|
||||
command: cppcheck
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: gcovr
|
||||
command: gcovr
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*gcovr.*"]
|
||||
- name: doxygen
|
||||
command: doxygen
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*1.*"]
|
||||
- name: ccache
|
||||
command: ccache
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: conan
|
||||
command: conan
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: meson
|
||||
command: meson
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: cmake-format
|
||||
command: cmake-format
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: cmake-lint
|
||||
command: cmake-lint
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: gcc
|
||||
command: /usr/bin/gcc
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*gcc.*"]
|
||||
|
||||
fileExistenceTests:
|
||||
- name: "vcpkg"
|
||||
path: "/root/vcpkg"
|
||||
shouldExist: true
|
||||
|
|
@ -1,11 +1,12 @@
|
|||
FROM --platform=$BUILDPLATFORM aminya/setup-cpp-arch:latest AS setup-cpp-arch-llvm
|
||||
FROM aminya/setup-cpp-arch:latest AS setup-cpp-arch-llvm
|
||||
|
||||
# install llvm
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.js \
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.mjs \
|
||||
--compiler llvm && \
|
||||
# arch cleanup
|
||||
pacman -Scc --noconfirm && \
|
||||
rm -rf /var/cache/pacman/pkg/* && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
ENTRYPOINT ["/bin/bash"]
|
||||
SHELL ["/bin/bash", "-l", "-c"]
|
||||
ENTRYPOINT ["/bin/bash", "-l"]
|
||||
|
|
|
|||
|
|
@ -1,68 +0,0 @@
|
|||
schemaVersion: 2.0.0
|
||||
|
||||
commandTests:
|
||||
- name: cmake
|
||||
command: cmake
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*3.*"]
|
||||
- name: ninja
|
||||
command: /root/ninja/ninja
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*1.*"]
|
||||
- name: task
|
||||
command: task
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Task version:\\s*v3.*"]
|
||||
- name: python
|
||||
command: python
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Python.*"]
|
||||
- name: python3
|
||||
command: python3
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Python.*"]
|
||||
- name: make
|
||||
command: make
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*GNU Make.*"]
|
||||
- name: cppcheck
|
||||
command: cppcheck
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: gcovr
|
||||
command: gcovr
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*gcovr.*"]
|
||||
- name: doxygen
|
||||
command: doxygen
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*1.*"]
|
||||
- name: ccache
|
||||
command: ccache
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: conan
|
||||
command: conan
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: meson
|
||||
command: meson
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: cmake-format
|
||||
command: cmake-format
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: cmake-lint
|
||||
command: cmake-lint
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: clang
|
||||
command: /usr/lib/llvm-15/bin/clang
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*clang.*"]
|
||||
|
||||
fileExistenceTests:
|
||||
- name: "vcpkg"
|
||||
path: "/root/vcpkg"
|
||||
shouldExist: true
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
FROM --platform=$BUILDPLATFORM aminya/setup-cpp-arch:latest AS setup-cpp-arch-mingw
|
||||
FROM aminya/setup-cpp-arch:latest AS setup-cpp-arch-mingw
|
||||
|
||||
# install mingw/powershell
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.js \
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.mjs \
|
||||
--compiler mingw \
|
||||
--powershell true && \
|
||||
# arch cleanup
|
||||
|
|
@ -9,4 +9,5 @@ RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.js \
|
|||
rm -rf /var/cache/pacman/pkg/* && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
ENTRYPOINT ["/bin/bash"]
|
||||
SHELL ["/bin/bash", "-l", "-c"]
|
||||
ENTRYPOINT ["/bin/bash", "-l"]
|
||||
|
|
|
|||
|
|
@ -1,79 +0,0 @@
|
|||
schemaVersion: 2.0.0
|
||||
|
||||
commandTests:
|
||||
- name: cmake
|
||||
command: cmake
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*3.*"]
|
||||
- name: ninja
|
||||
command: /root/ninja/ninja
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*1.*"]
|
||||
- name: task
|
||||
command: task
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Task version:\\s*v3.*"]
|
||||
- name: python
|
||||
command: python
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Python.*"]
|
||||
- name: python3
|
||||
command: python3
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Python.*"]
|
||||
- name: make
|
||||
command: make
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*GNU Make.*"]
|
||||
- name: cppcheck
|
||||
command: cppcheck
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: gcovr
|
||||
command: gcovr
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*gcovr.*"]
|
||||
- name: doxygen
|
||||
command: doxygen
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*1.*"]
|
||||
- name: ccache
|
||||
command: ccache
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: conan
|
||||
command: conan
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: meson
|
||||
command: meson
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: cmake-format
|
||||
command: cmake-format
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: cmake-lint
|
||||
command: cmake-lint
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: mingw c compiler
|
||||
command: x86_64-w64-mingw32-gcc
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*x86_64-w64-mingw32-gcc.*"]
|
||||
- name: mingw c++ compiler
|
||||
command: x86_64-w64-mingw32-g++
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*x86_64-w64-mingw32-g\\+\\+*"]
|
||||
- name: powershell
|
||||
command: pwsh
|
||||
args: ["-Version"]
|
||||
expectedOutput: [".*PowerShell.*"]
|
||||
|
||||
fileExistenceTests:
|
||||
- name: "vcpkg"
|
||||
path: "/root/vcpkg"
|
||||
shouldExist: true
|
||||
- name: "cross root"
|
||||
path: "/usr/x86_64-w64-mingw32"
|
||||
shouldExist: true
|
||||
|
|
@ -1,6 +1,9 @@
|
|||
## base image
|
||||
FROM --platform=$BUILDPLATFORM archlinux:base AS arch-nodejs
|
||||
|
||||
# Setup bash environment
|
||||
RUN echo '[[ -f ~/.bashrc ]] && . ~/.bashrc' > /root/.bash_profile
|
||||
|
||||
RUN pacman -Syuu --noconfirm && \
|
||||
pacman-db-upgrade && \
|
||||
# install nodejs
|
||||
|
|
@ -10,14 +13,14 @@ RUN pacman -Syuu --noconfirm && \
|
|||
rm -rf /var/cache/pacman/pkg/* && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
FROM --platform=$BUILDPLATFORM arch-nodejs AS setup-cpp-arch
|
||||
FROM arch-nodejs AS setup-cpp-arch
|
||||
|
||||
COPY "./dist/legacy" "/usr/lib/setup-cpp/"
|
||||
COPY "./dist/modern" "/usr/lib/setup-cpp/"
|
||||
|
||||
# install the cpp tools
|
||||
RUN pacman -Syuu --noconfirm && \
|
||||
pacman-db-upgrade && \
|
||||
node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.js \
|
||||
node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.mjs \
|
||||
--cmake true \
|
||||
--ninja true \
|
||||
--task true \
|
||||
|
|
@ -36,4 +39,5 @@ RUN pacman -Syuu --noconfirm && \
|
|||
rm -rf /var/cache/pacman/pkg/* && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
ENTRYPOINT ["/bin/bash"]
|
||||
SHELL ["/bin/bash", "-l", "-c"]
|
||||
ENTRYPOINT ["/bin/bash", "-l"]
|
||||
|
|
|
|||
|
|
@ -1,64 +0,0 @@
|
|||
schemaVersion: 2.0.0
|
||||
|
||||
commandTests:
|
||||
- name: cmake
|
||||
command: cmake
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*3.*"]
|
||||
- name: ninja
|
||||
command: /root/ninja/ninja
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*1.*"]
|
||||
- name: task
|
||||
command: task
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Task version:\\s*v3.*"]
|
||||
- name: python
|
||||
command: python
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Python.*"]
|
||||
- name: python3
|
||||
command: python3
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Python.*"]
|
||||
- name: make
|
||||
command: make
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*GNU Make.*"]
|
||||
- name: cppcheck
|
||||
command: cppcheck
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: gcovr
|
||||
command: gcovr
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*gcovr.*"]
|
||||
- name: doxygen
|
||||
command: doxygen
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*1.*"]
|
||||
- name: ccache
|
||||
command: ccache
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: conan
|
||||
command: conan
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: meson
|
||||
command: meson
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: cmake-format
|
||||
command: cmake-format
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: cmake-lint
|
||||
command: cmake-lint
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
|
||||
fileExistenceTests:
|
||||
- name: "vcpkg"
|
||||
path: "/root/vcpkg"
|
||||
shouldExist: true
|
||||
|
|
@ -7,8 +7,8 @@ async function main() {
|
|||
const dockerFileContent = await readFile(`./dev/docker/setup-cpp/setup-cpp-${name}.dockerfile`, "utf-8")
|
||||
const modifiedDockerFile = dockerFileContent
|
||||
// load the externally built setup-cpp
|
||||
.replace(/FROM (.*)/g, `FROM $1\n\nCOPY "./dist/legacy" "/usr/lib/setup-cpp/"`)
|
||||
.replace("setup-cpp ", "node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.js ")
|
||||
.replace(/FROM (.*)/g, `FROM $1\n\nCOPY "./dist/modern" "/usr/lib/setup-cpp/"`)
|
||||
.replace("setup-cpp ", "node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.mjs ")
|
||||
// remove the npm install line
|
||||
.replace(/# install setup-cpp\n\s*npm install -g setup-cpp.*\n/, "")
|
||||
|
||||
|
|
|
|||
|
|
@ -1,35 +0,0 @@
|
|||
import fastGlob from "fast-glob"
|
||||
const { glob } = fastGlob
|
||||
import path from "path"
|
||||
import { execa } from "execa"
|
||||
|
||||
async function main() {
|
||||
const testFiles = await glob("./dev/docker/ci/*.yml")
|
||||
const results = await Promise.all(testFiles.map(async (testFile) => {
|
||||
try {
|
||||
// the image name
|
||||
const image = `setup-cpp-${path.basename(testFile, ".yml")}`
|
||||
|
||||
// check if the image exists
|
||||
const imageExists = await execa("docker", ["images", "-q", image])
|
||||
if (imageExists.exitCode !== 0 || imageExists.stdout.trim() === "") {
|
||||
console.log(`Image ${image} does not exist`)
|
||||
return 2
|
||||
}
|
||||
|
||||
await execa("container-structure-test", ["test", "--image", image, "--config", testFile], {
|
||||
stdio: "inherit",
|
||||
})
|
||||
return 0
|
||||
} catch (error) {
|
||||
console.error(error.message)
|
||||
return 1
|
||||
}
|
||||
}))
|
||||
|
||||
if (results.some((result) => result === 1)) {
|
||||
process.exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
await main()
|
||||
|
|
@ -1,10 +1,11 @@
|
|||
FROM --platform=$BUILDPLATFORM aminya/setup-cpp-fedora:latest AS setup-cpp-fedora-gcc
|
||||
FROM aminya/setup-cpp-fedora:latest AS setup-cpp-fedora-gcc
|
||||
|
||||
# install gcc
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.js \
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.mjs \
|
||||
--compiler gcc && \
|
||||
# cleanup
|
||||
dnf clean all && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
ENTRYPOINT ["/bin/bash"]
|
||||
SHELL ["/bin/bash", "-l", "-c"]
|
||||
ENTRYPOINT ["/bin/bash", "-l"]
|
||||
|
|
|
|||
|
|
@ -1,68 +0,0 @@
|
|||
schemaVersion: 2.0.0
|
||||
|
||||
commandTests:
|
||||
- name: cmake
|
||||
command: cmake
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*3.*"]
|
||||
- name: ninja
|
||||
command: /root/ninja/ninja
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*1.*"]
|
||||
- name: task
|
||||
command: task
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Task version:\\s*v3.*"]
|
||||
- name: python
|
||||
command: python
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Python.*"]
|
||||
- name: python3
|
||||
command: python3
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Python.*"]
|
||||
- name: make
|
||||
command: make
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*GNU Make.*"]
|
||||
- name: cppcheck
|
||||
command: cppcheck
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: gcovr
|
||||
command: gcovr
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*gcovr.*"]
|
||||
- name: doxygen
|
||||
command: doxygen
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*1.*"]
|
||||
- name: ccache
|
||||
command: ccache
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: conan
|
||||
command: conan
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: meson
|
||||
command: meson
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: cmake-format
|
||||
command: cmake-format
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: cmake-lint
|
||||
command: cmake-lint
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: gcc
|
||||
command: /usr/bin/gcc
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*gcc.*"]
|
||||
|
||||
fileExistenceTests:
|
||||
- name: "vcpkg"
|
||||
path: "/root/vcpkg"
|
||||
shouldExist: true
|
||||
|
|
@ -1,10 +1,11 @@
|
|||
FROM --platform=$BUILDPLATFORM aminya/setup-cpp-fedora:latest AS setup-cpp-fedora-llvm
|
||||
FROM aminya/setup-cpp-fedora:latest AS setup-cpp-fedora-llvm
|
||||
|
||||
# install llvm
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.js \
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.mjs \
|
||||
--compiler llvm && \
|
||||
# cleanup
|
||||
dnf clean all && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
ENTRYPOINT ["/bin/bash"]
|
||||
SHELL ["/bin/bash", "-l", "-c"]
|
||||
ENTRYPOINT ["/bin/bash", "-l"]
|
||||
|
|
|
|||
|
|
@ -1,68 +0,0 @@
|
|||
schemaVersion: 2.0.0
|
||||
|
||||
commandTests:
|
||||
- name: cmake
|
||||
command: cmake
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*3.*"]
|
||||
- name: ninja
|
||||
command: /root/ninja/ninja
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*1.*"]
|
||||
- name: task
|
||||
command: task
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Task version:\\s*v3.*"]
|
||||
- name: python
|
||||
command: python
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Python.*"]
|
||||
- name: python3
|
||||
command: python3
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Python.*"]
|
||||
- name: make
|
||||
command: make
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*GNU Make.*"]
|
||||
- name: cppcheck
|
||||
command: cppcheck
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: gcovr
|
||||
command: gcovr
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*gcovr.*"]
|
||||
- name: doxygen
|
||||
command: doxygen
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*1.*"]
|
||||
- name: ccache
|
||||
command: ccache
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: conan
|
||||
command: conan
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: meson
|
||||
command: meson
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: cmake-format
|
||||
command: cmake-format
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: cmake-lint
|
||||
command: cmake-lint
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: clang
|
||||
command: /usr/lib/llvm-15/bin/clang
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*clang.*"]
|
||||
|
||||
fileExistenceTests:
|
||||
- name: "vcpkg"
|
||||
path: "/root/vcpkg"
|
||||
shouldExist: true
|
||||
|
|
@ -1,11 +1,12 @@
|
|||
FROM --platform=$BUILDPLATFORM aminya/setup-cpp-fedora:latest AS setup-cpp-fedora-mingw
|
||||
FROM aminya/setup-cpp-fedora:latest AS setup-cpp-fedora-mingw
|
||||
|
||||
# install mingw
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.js \
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.mjs \
|
||||
--compiler mingw \
|
||||
--powershell true && \
|
||||
# cleanup
|
||||
dnf clean all && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
ENTRYPOINT ["/bin/bash"]
|
||||
SHELL ["/bin/bash", "-l", "-c"]
|
||||
ENTRYPOINT ["/bin/bash", "-l"]
|
||||
|
|
|
|||
|
|
@ -1,79 +0,0 @@
|
|||
schemaVersion: 2.0.0
|
||||
|
||||
commandTests:
|
||||
- name: cmake
|
||||
command: cmake
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*3.*"]
|
||||
- name: ninja
|
||||
command: /root/ninja/ninja
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*1.*"]
|
||||
- name: task
|
||||
command: task
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Task version:\\s*v3.*"]
|
||||
- name: python
|
||||
command: python
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Python.*"]
|
||||
- name: python3
|
||||
command: python3
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Python.*"]
|
||||
- name: make
|
||||
command: make
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*GNU Make.*"]
|
||||
- name: cppcheck
|
||||
command: cppcheck
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: gcovr
|
||||
command: gcovr
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*gcovr.*"]
|
||||
- name: doxygen
|
||||
command: doxygen
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*1.*"]
|
||||
- name: ccache
|
||||
command: ccache
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: conan
|
||||
command: conan
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: meson
|
||||
command: meson
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: cmake-format
|
||||
command: cmake-format
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: cmake-lint
|
||||
command: cmake-lint
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: mingw c compiler
|
||||
command: x86_64-w64-mingw32-gcc
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*x86_64-w64-mingw32-gcc.*"]
|
||||
- name: mingw c++ compiler
|
||||
command: x86_64-w64-mingw32-cpp
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*x86_64-w64-mingw32-cpp.*"]
|
||||
- name: powershell
|
||||
command: pwsh
|
||||
args: ["-Version"]
|
||||
expectedOutput: [".*PowerShell.*"]
|
||||
|
||||
fileExistenceTests:
|
||||
- name: "vcpkg"
|
||||
path: "/root/vcpkg"
|
||||
shouldExist: true
|
||||
- name: "cross root"
|
||||
path: "/usr/x86_64-w64-mingw32"
|
||||
shouldExist: true
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
## base image
|
||||
FROM --platform=$BUILDPLATFORM fedora:40 AS fedora-nodejs
|
||||
FROM --platform=$BUILDPLATFORM fedora:44 AS fedora-nodejs
|
||||
|
||||
# install nodejs
|
||||
RUN dnf -y install nodejs npm && \
|
||||
|
|
@ -7,12 +7,12 @@ RUN dnf -y install nodejs npm && \
|
|||
dnf clean all && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
FROM --platform=$BUILDPLATFORM fedora-nodejs AS setup-cpp-fedora
|
||||
FROM fedora-nodejs AS setup-cpp-fedora
|
||||
|
||||
COPY "./dist/legacy" "/usr/lib/setup-cpp/"
|
||||
COPY "./dist/modern" "/usr/lib/setup-cpp/"
|
||||
|
||||
# install the cpp tools
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.js \
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.mjs \
|
||||
--cmake true \
|
||||
--ninja true \
|
||||
--task true \
|
||||
|
|
@ -30,4 +30,5 @@ RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.js \
|
|||
dnf clean all && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
ENTRYPOINT ["/bin/bash"]
|
||||
SHELL ["/bin/bash", "-l", "-c"]
|
||||
ENTRYPOINT ["/bin/bash", "-l"]
|
||||
|
|
|
|||
|
|
@ -1,64 +0,0 @@
|
|||
schemaVersion: 2.0.0
|
||||
|
||||
commandTests:
|
||||
- name: cmake
|
||||
command: cmake
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*3.*"]
|
||||
- name: ninja
|
||||
command: /root/ninja/ninja
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*1.*"]
|
||||
- name: task
|
||||
command: task
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Task version:\\s*v3.*"]
|
||||
- name: python
|
||||
command: python
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Python.*"]
|
||||
- name: python3
|
||||
command: python3
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Python.*"]
|
||||
- name: make
|
||||
command: make
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*GNU Make.*"]
|
||||
- name: cppcheck
|
||||
command: cppcheck
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: gcovr
|
||||
command: gcovr
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*gcovr.*"]
|
||||
- name: doxygen
|
||||
command: doxygen
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*1.*"]
|
||||
- name: ccache
|
||||
command: ccache
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: conan
|
||||
command: conan
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: meson
|
||||
command: meson
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: cmake-format
|
||||
command: cmake-format
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: cmake-lint
|
||||
command: cmake-lint
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
|
||||
fileExistenceTests:
|
||||
- name: "vcpkg"
|
||||
path: "/root/vcpkg"
|
||||
shouldExist: true
|
||||
|
|
@ -2,76 +2,72 @@ schemaVersion: 2.0.0
|
|||
|
||||
commandTests:
|
||||
- name: cmake
|
||||
command: cmake
|
||||
args: ["--version"]
|
||||
command: bash
|
||||
args: ["-l", "-c", "cmake --version"]
|
||||
expectedOutput: [".*3.*"]
|
||||
- name: ninja
|
||||
command: /root/ninja/ninja
|
||||
args: ["--version"]
|
||||
command: bash
|
||||
args: ["-l", "-c", "ninja --version"]
|
||||
expectedOutput: [".*1.*"]
|
||||
- name: task
|
||||
command: task
|
||||
args: ["--version"]
|
||||
command: bash
|
||||
args: ["-l", "-c", "task --version"]
|
||||
expectedOutput: [".*Task version:\\s*v3.*"]
|
||||
- name: python
|
||||
command: python
|
||||
args: ["--version"]
|
||||
command: bash
|
||||
args: ["-l", "-c", "python --version"]
|
||||
expectedOutput: [".*Python.*"]
|
||||
- name: python3
|
||||
command: python3
|
||||
args: ["--version"]
|
||||
command: bash
|
||||
args: ["-l", "-c", "python3 --version"]
|
||||
expectedOutput: [".*Python.*"]
|
||||
- name: make
|
||||
command: make
|
||||
args: ["--version"]
|
||||
command: bash
|
||||
args: ["-l", "-c", "make --version"]
|
||||
expectedOutput: [".*GNU Make.*"]
|
||||
- name: cppcheck
|
||||
command: cppcheck
|
||||
args: ["--version"]
|
||||
command: bash
|
||||
args: ["-l", "-c", "cppcheck --version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: gcovr
|
||||
command: gcovr
|
||||
args: ["--version"]
|
||||
command: bash
|
||||
args: ["-l", "-c", "gcovr --version"]
|
||||
expectedOutput: [".*gcovr.*"]
|
||||
- name: doxygen
|
||||
command: doxygen
|
||||
args: ["--version"]
|
||||
command: bash
|
||||
args: ["-l", "-c", "doxygen --version"]
|
||||
expectedOutput: [".*1.*"]
|
||||
- name: ccache
|
||||
command: ccache
|
||||
args: ["--version"]
|
||||
command: bash
|
||||
args: ["-l", "-c", "ccache --version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: conan
|
||||
command: conan
|
||||
args: ["--version"]
|
||||
command: bash
|
||||
args: ["-l", "-c", "conan --version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: meson
|
||||
command: meson
|
||||
args: ["--version"]
|
||||
command: bash
|
||||
args: ["-l", "-c", "meson --version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: cmake-format
|
||||
command: cmake-format
|
||||
args: ["--version"]
|
||||
command: bash
|
||||
args: ["-l", "-c", "cmake-format --version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: cmake-lint
|
||||
command: cmake-lint
|
||||
args: ["--version"]
|
||||
command: bash
|
||||
args: ["-l", "-c", "cmake-lint --version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: clang
|
||||
command: /usr/lib/llvm-15/bin/clang
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*clang.*"]
|
||||
|
||||
fileExistenceTests:
|
||||
- name: "vcpkg"
|
||||
path: "/root/vcpkg"
|
||||
shouldExist: true
|
||||
- name: "llvm"
|
||||
path: "/root/llvm"
|
||||
shouldExist: true
|
||||
- name: "ninja"
|
||||
path: "/root/ninja"
|
||||
shouldExist: true
|
||||
- name: "cmake"
|
||||
path: "/root/cmake"
|
||||
shouldExist: true
|
||||
- name: "task"
|
||||
path: "/root/task"
|
||||
shouldExist: true
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
schemaVersion: 2.0.0
|
||||
|
||||
commandTests:
|
||||
- name: gcc
|
||||
command: bash
|
||||
args: ["-l", "-c", "gcc --version"]
|
||||
expectedOutput: [".*gcc.*"]
|
||||
- name: g++
|
||||
command: bash
|
||||
args: ["-l", "-c", "g++ --version"]
|
||||
expectedOutput: [".*g\\+\\+.*"]
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
import path from "path"
|
||||
import { fileURLToPath } from "url"
|
||||
import { execa } from "execa"
|
||||
|
||||
const __dirname = path.dirname(fileURLToPath(import.meta.url))
|
||||
const rootDir = path.resolve(__dirname, "..", "..", "..", "..")
|
||||
const testsDir = path.resolve(rootDir, "./dev/docker/ci/tests")
|
||||
|
||||
async function main() {
|
||||
const variants = ["base", "gcc", "llvm", "mingw"]
|
||||
|
||||
const distros = ["ubuntu", "fedora", "arch"]
|
||||
|
||||
let failed = false
|
||||
for (const distro of distros) {
|
||||
for (const variant of variants) {
|
||||
// eslint-disable-next-line no-await-in-loop
|
||||
const result = await testDocker(variant, distro)
|
||||
if (result !== 0) {
|
||||
failed = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (failed) {
|
||||
process.exit(1)
|
||||
}
|
||||
}
|
||||
await main()
|
||||
|
||||
/**
|
||||
* Test the docker image
|
||||
* @param variant - The variant to test
|
||||
* @param distro - The distro to test
|
||||
* @returns The exit code of the test
|
||||
*/
|
||||
async function testDocker(variant: string, distro: string): Promise<number> {
|
||||
try {
|
||||
const image = variant === "base"
|
||||
? `aminya/setup-cpp-${distro}:latest`
|
||||
: `aminya/setup-cpp-${distro}-${variant}:latest`
|
||||
const testConfig = path.join(testsDir, `${variant}.yml`)
|
||||
|
||||
console.log(`Testing ${image} with ${testConfig} `)
|
||||
|
||||
// Test the specific config
|
||||
await runContainerStructureTest(image, testConfig)
|
||||
|
||||
// Test the base config
|
||||
if (variant !== "base") {
|
||||
const baseResult = await testDocker("base", distro)
|
||||
if (baseResult !== 0) {
|
||||
return baseResult
|
||||
}
|
||||
}
|
||||
|
||||
return 0
|
||||
} catch (error) {
|
||||
if (error instanceof Error) {
|
||||
console.error(error.message)
|
||||
} else {
|
||||
console.error(error)
|
||||
}
|
||||
return 1
|
||||
}
|
||||
}
|
||||
|
||||
async function runContainerStructureTest(image: string, testConfig: string) {
|
||||
await execa("container-structure-test", [
|
||||
"test",
|
||||
"--pull",
|
||||
"--image",
|
||||
image,
|
||||
"--config",
|
||||
testConfig,
|
||||
"--platform",
|
||||
"linux/amd64",
|
||||
], {
|
||||
stdio: "inherit",
|
||||
})
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
schemaVersion: 2.0.0
|
||||
|
||||
commandTests:
|
||||
- name: clang
|
||||
command: bash
|
||||
args: ["-l", "-c", "clang --version"]
|
||||
expectedOutput: [".*clang version.*"]
|
||||
- name: clang++
|
||||
command: bash
|
||||
args: ["-l", "-c", "clang++ --version"]
|
||||
expectedOutput: [".*clang version.*"]
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
schemaVersion: 2.0.0
|
||||
|
||||
commandTests:
|
||||
- name: mingw c compiler
|
||||
command: bash
|
||||
args: ["-l", "-c", "x86_64-w64-mingw32-gcc --version"]
|
||||
expectedOutput: [".*x86_64-w64-mingw32-gcc.*"]
|
||||
- name: mingw c++ compiler
|
||||
command: bash
|
||||
args: ["-l", "-c", "x86_64-w64-mingw32-g++ --version"]
|
||||
expectedOutput: [".*x86_64-w64-mingw32-g\\+\\+.*"]
|
||||
- name: powershell
|
||||
command: bash
|
||||
args: ["-l", "-c", "pwsh --version"]
|
||||
expectedOutput: [".*PowerShell.*"]
|
||||
|
||||
fileExistenceTests:
|
||||
- name: "cross root"
|
||||
path: "/usr/x86_64-w64-mingw32"
|
||||
shouldExist: true
|
||||
|
|
@ -1,14 +1,13 @@
|
|||
FROM --platform=$BUILDPLATFORM aminya/setup-cpp-ubuntu:latest AS setup-cpp-ubuntu-gcc
|
||||
FROM aminya/setup-cpp-ubuntu:latest AS setup-cpp-ubuntu-gcc
|
||||
|
||||
# install gcc
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.js \
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.mjs \
|
||||
--compiler gcc && \
|
||||
# cleanup
|
||||
nala autoremove -y && \
|
||||
nala autopurge -y && \
|
||||
apt-get clean && \
|
||||
nala clean --lists && \
|
||||
apt-get clean autoclean && \
|
||||
apt-get autoremove -y && \
|
||||
rm -rf /var/lib/apt/lists/* && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
ENTRYPOINT ["/bin/bash"]
|
||||
SHELL ["/bin/bash", "-l", "-c"]
|
||||
ENTRYPOINT ["/bin/bash", "-l"]
|
||||
|
|
|
|||
|
|
@ -1,78 +0,0 @@
|
|||
schemaVersion: 2.0.0
|
||||
|
||||
commandTests:
|
||||
- name: cmake
|
||||
command: cmake
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*3.*"]
|
||||
- name: ninja
|
||||
command: /root/ninja/ninja
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*1.*"]
|
||||
- name: task
|
||||
command: task
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Task version:\\s*v3.*"]
|
||||
- name: python
|
||||
command: python
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Python.*"]
|
||||
- name: python3
|
||||
command: python3
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Python.*"]
|
||||
- name: make
|
||||
command: make
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*GNU Make.*"]
|
||||
- name: cppcheck
|
||||
command: cppcheck
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: gcovr
|
||||
command: gcovr
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*gcovr.*"]
|
||||
- name: doxygen
|
||||
command: doxygen
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*1.*"]
|
||||
- name: ccache
|
||||
command: ccache
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: conan
|
||||
command: conan
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: meson
|
||||
command: meson
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: cmake-format
|
||||
command: cmake-format
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: cmake-lint
|
||||
command: cmake-lint
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: gcc
|
||||
command: /usr/bin/gcc
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*gcc.*"]
|
||||
- name: g++
|
||||
command: /usr/bin/g++
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*g++.*"]
|
||||
|
||||
fileExistenceTests:
|
||||
- name: "vcpkg"
|
||||
path: "/root/vcpkg"
|
||||
shouldExist: true
|
||||
- name: "ninja"
|
||||
path: "/root/ninja"
|
||||
shouldExist: true
|
||||
- name: "cmake"
|
||||
path: "/root/cmake"
|
||||
shouldExist: true
|
||||
|
|
@ -1,14 +1,13 @@
|
|||
FROM --platform=$BUILDPLATFORM aminya/setup-cpp-ubuntu:latest AS setup-cpp-ubuntu-llvm
|
||||
FROM aminya/setup-cpp-ubuntu:latest AS setup-cpp-ubuntu-llvm
|
||||
|
||||
# install llvm
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.js \
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.mjs \
|
||||
--compiler llvm && \
|
||||
# cleanup
|
||||
nala autoremove -y && \
|
||||
nala autopurge -y && \
|
||||
apt-get clean && \
|
||||
nala clean --lists && \
|
||||
apt-get clean autoclean && \
|
||||
apt-get autoremove -y && \
|
||||
rm -rf /var/lib/apt/lists/* && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
ENTRYPOINT ["/bin/bash"]
|
||||
SHELL ["/bin/bash", "-l", "-c"]
|
||||
ENTRYPOINT ["/bin/bash", "-l"]
|
||||
|
|
|
|||
|
|
@ -1,15 +1,14 @@
|
|||
FROM --platform=$BUILDPLATFORM aminya/setup-cpp-ubuntu:latest AS setup-cpp-ubuntu-mingw
|
||||
FROM aminya/setup-cpp-ubuntu:latest AS setup-cpp-ubuntu-mingw
|
||||
|
||||
# install mingw/powershell
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.js \
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.mjs \
|
||||
--compiler mingw \
|
||||
--powershell true && \
|
||||
# cleanup
|
||||
nala autoremove -y && \
|
||||
nala autopurge -y && \
|
||||
apt-get clean && \
|
||||
nala clean --lists && \
|
||||
apt-get clean autoclean && \
|
||||
apt-get autoremove -y && \
|
||||
rm -rf /var/lib/apt/lists/* && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
ENTRYPOINT ["/bin/bash"]
|
||||
SHELL ["/bin/bash", "-l", "-c"]
|
||||
ENTRYPOINT ["/bin/bash", "-l"]
|
||||
|
|
|
|||
|
|
@ -1,79 +0,0 @@
|
|||
schemaVersion: 2.0.0
|
||||
|
||||
commandTests:
|
||||
- name: cmake
|
||||
command: cmake
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*3.*"]
|
||||
- name: ninja
|
||||
command: /root/ninja/ninja
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*1.*"]
|
||||
- name: task
|
||||
command: task
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Task version:\\s*v3.*"]
|
||||
- name: python
|
||||
command: python
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Python.*"]
|
||||
- name: python3
|
||||
command: python3
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Python.*"]
|
||||
- name: make
|
||||
command: make
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*GNU Make.*"]
|
||||
- name: cppcheck
|
||||
command: cppcheck
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: gcovr
|
||||
command: gcovr
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*gcovr.*"]
|
||||
- name: doxygen
|
||||
command: doxygen
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*1.*"]
|
||||
- name: ccache
|
||||
command: ccache
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: conan
|
||||
command: conan
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: meson
|
||||
command: meson
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: cmake-format
|
||||
command: cmake-format
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: cmake-lint
|
||||
command: cmake-lint
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: mingw c compiler
|
||||
command: x86_64-w64-mingw32-gcc
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*x86_64-w64-mingw32-gcc.*"]
|
||||
- name: mingw c++ compiler
|
||||
command: x86_64-w64-mingw32-g++
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*x86_64-w64-mingw32-g\\+\\+*"]
|
||||
- name: powershell
|
||||
command: pwsh
|
||||
args: ["-Version"]
|
||||
expectedOutput: [".*PowerShell.*"]
|
||||
|
||||
fileExistenceTests:
|
||||
- name: "vcpkg"
|
||||
path: "/root/vcpkg"
|
||||
shouldExist: true
|
||||
- name: "cross root"
|
||||
path: "/usr/x86_64-w64-mingw32"
|
||||
shouldExist: true
|
||||
|
|
@ -1,12 +1,14 @@
|
|||
ARG BASE_VERSION=22.04
|
||||
|
||||
#### Base Image with Node.js
|
||||
FROM --platform=$BUILDPLATFORM ubuntu:22.04 AS ubuntu-nodejs
|
||||
FROM --platform=$BUILDPLATFORM ubuntu:${BASE_VERSION} AS ubuntu-nodejs
|
||||
|
||||
# install latest nodejs
|
||||
RUN apt-get update -qq && \
|
||||
apt-get install -y --no-install-recommends curl gnupg ca-certificates && \
|
||||
mkdir -p /etc/apt/keyrings && \
|
||||
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \
|
||||
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \
|
||||
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \
|
||||
apt-get update -qq && \
|
||||
apt-get install -y --no-install-recommends nodejs && \
|
||||
# cleanup
|
||||
|
|
@ -15,13 +17,13 @@ RUN apt-get update -qq && \
|
|||
rm -rf /tmp/*
|
||||
|
||||
#### Base Image with Tools
|
||||
FROM --platform=$BUILDPLATFORM ubuntu-nodejs AS setup-cpp-ubuntu
|
||||
FROM ubuntu-nodejs AS setup-cpp-ubuntu
|
||||
|
||||
COPY "./dist/legacy" "/usr/lib/setup-cpp/"
|
||||
COPY "./dist/modern" "/usr/lib/setup-cpp/"
|
||||
|
||||
# install the cpp tools
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.js \
|
||||
--nala true \
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.mjs \
|
||||
--apt-fast true \
|
||||
--cmake true \
|
||||
--ninja true \
|
||||
--task true \
|
||||
|
|
@ -36,9 +38,10 @@ RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.js \
|
|||
--cmakelang true \
|
||||
--meson true && \
|
||||
# cleanup
|
||||
nala autoremove -y && \
|
||||
nala autopurge -y && \
|
||||
apt-get clean && \
|
||||
nala clean --lists && \
|
||||
apt-get clean autoclean && \
|
||||
apt-get autoremove -y && \
|
||||
rm -rf /var/lib/apt/lists/* && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
SHELL ["/bin/bash", "-l", "-c"]
|
||||
ENTRYPOINT ["/bin/bash", "-l"]
|
||||
|
|
|
|||
|
|
@ -1,70 +0,0 @@
|
|||
schemaVersion: 2.0.0
|
||||
|
||||
commandTests:
|
||||
- name: cmake
|
||||
command: cmake
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*3.*"]
|
||||
- name: ninja
|
||||
command: /root/ninja/ninja
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*1.*"]
|
||||
- name: task
|
||||
command: task
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Task version:\\s*v3.*"]
|
||||
- name: python
|
||||
command: python
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Python.*"]
|
||||
- name: python3
|
||||
command: python3
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*Python.*"]
|
||||
- name: make
|
||||
command: make
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*GNU Make.*"]
|
||||
- name: cppcheck
|
||||
command: cppcheck
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: gcovr
|
||||
command: gcovr
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*gcovr.*"]
|
||||
- name: doxygen
|
||||
command: doxygen
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*1.*"]
|
||||
- name: ccache
|
||||
command: ccache
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: conan
|
||||
command: conan
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: meson
|
||||
command: meson
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: cmake-format
|
||||
command: cmake-format
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
- name: cmake-lint
|
||||
command: cmake-lint
|
||||
args: ["--version"]
|
||||
expectedOutput: [".*"]
|
||||
|
||||
fileExistenceTests:
|
||||
- name: "vcpkg"
|
||||
path: "/root/vcpkg"
|
||||
shouldExist: true
|
||||
- name: "ninja"
|
||||
path: "/root/ninja"
|
||||
shouldExist: true
|
||||
- name: "cmake"
|
||||
path: "/root/cmake"
|
||||
shouldExist: true
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
#### Building (example)
|
||||
FROM aminya/setup-cpp-alpine-gcc AS builder
|
||||
|
||||
COPY ./dev/cpp_vcpkg_project /home/app
|
||||
WORKDIR /home/app
|
||||
RUN task build
|
||||
|
||||
#### Running environment
|
||||
# use a fresh image as the runner
|
||||
FROM alpine:3.21 AS runner
|
||||
|
||||
# copy the built binaries and their runtime dependencies
|
||||
COPY --from=builder /home/app/build/my_exe/Release/ /home/app/
|
||||
WORKDIR /home/app/
|
||||
ENTRYPOINT ["./my_exe"]
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
#### Building (example)
|
||||
FROM aminya/setup-cpp-alpine-llvm AS builder
|
||||
|
||||
COPY ./dev/cpp_vcpkg_project /home/app
|
||||
WORKDIR /home/app
|
||||
RUN task build
|
||||
|
||||
#### Running environment
|
||||
# use a fresh image as the runner
|
||||
FROM alpine:3.21 AS runner
|
||||
|
||||
# copy the built binaries and their runtime dependencies
|
||||
COPY --from=builder /home/app/build/my_exe/Release/ /home/app/
|
||||
WORKDIR /home/app/
|
||||
ENTRYPOINT ["./my_exe"]
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
#### Cross Building (example)
|
||||
FROM aminya/setup-cpp-alpine-mingw AS builder-mingw
|
||||
|
||||
COPY ./dev/cpp_vcpkg_project /home/app
|
||||
WORKDIR /home/app
|
||||
RUN bash -c 'source ~/.cpprc \
|
||||
&& task build_cross_mingw'
|
||||
|
|
@ -3,8 +3,7 @@ FROM aminya/setup-cpp-arch-gcc AS builder
|
|||
|
||||
COPY ./dev/cpp_vcpkg_project /home/app
|
||||
WORKDIR /home/app
|
||||
RUN bash -c 'source ~/.cpprc \
|
||||
&& task build'
|
||||
RUN task build
|
||||
|
||||
#### Running environment
|
||||
# use a fresh image as the runner
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@ FROM aminya/setup-cpp-arch-llvm AS builder
|
|||
|
||||
COPY ./dev/cpp_vcpkg_project /home/app
|
||||
WORKDIR /home/app
|
||||
RUN bash -c 'source ~/.cpprc \
|
||||
&& task build'
|
||||
RUN task build
|
||||
|
||||
#### Running environment
|
||||
# use a fresh image as the runner
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@ FROM aminya/setup-cpp-fedora-gcc AS builder
|
|||
|
||||
COPY ./dev/cpp_vcpkg_project /home/app
|
||||
WORKDIR /home/app
|
||||
RUN bash -c 'source ~/.cpprc \
|
||||
&& task build'
|
||||
RUN task build
|
||||
|
||||
#### Running environment
|
||||
# use a fresh image as the runner
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@ FROM aminya/setup-cpp-fedora-llvm AS builder
|
|||
|
||||
COPY ./dev/cpp_vcpkg_project /home/app
|
||||
WORKDIR /home/app
|
||||
RUN bash -c 'source ~/.cpprc \
|
||||
&& task build'
|
||||
RUN task build
|
||||
|
||||
#### Running environment
|
||||
# use a fresh image as the runner
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@ FROM aminya/setup-cpp-ubuntu-gcc AS builder
|
|||
|
||||
COPY ./dev/cpp_vcpkg_project /home/app
|
||||
WORKDIR /home/app
|
||||
RUN bash -c 'source ~/.cpprc \
|
||||
&& task build'
|
||||
RUN task build
|
||||
|
||||
#### Running environment
|
||||
# use a fresh image as the runner
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@ FROM aminya/setup-cpp-ubuntu-llvm AS builder
|
|||
|
||||
COPY ./dev/cpp_vcpkg_project /home/app
|
||||
WORKDIR /home/app
|
||||
RUN bash -c 'source ~/.cpprc \
|
||||
&& task build'
|
||||
RUN task build
|
||||
|
||||
#### Running environment
|
||||
# use a fresh image as the runner
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ RUN pacman -Syuu --noconfirm && \
|
|||
# install nodejs
|
||||
pacman -S --noconfirm --needed nodejs npm && \
|
||||
# install setup-cpp
|
||||
npm install -g setup-cpp@v1.1.0 && \
|
||||
npm install -g setup-cpp@v1.1.1 && \
|
||||
# install the compiler and tools
|
||||
NODE_OPTIONS="--enable-source-maps" \
|
||||
setup-cpp \
|
||||
|
|
@ -26,4 +26,5 @@ RUN pacman -Syuu --noconfirm && \
|
|||
rm -rf /var/cache/pacman/pkg/* && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
ENTRYPOINT ["/bin/bash"]
|
||||
SHELL ["/bin/bash", "-l", "-c"]
|
||||
ENTRYPOINT ["/bin/bash", "-l"]
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ RUN pacman -Syuu --noconfirm && \
|
|||
# install nodejs
|
||||
pacman -S --noconfirm --needed nodejs npm && \
|
||||
# install setup-cpp
|
||||
npm install -g setup-cpp@v1.1.0 && \
|
||||
npm install -g setup-cpp@v1.1.1 && \
|
||||
# install the compiler and tools
|
||||
NODE_OPTIONS="--enable-source-maps" \
|
||||
setup-cpp \
|
||||
|
|
@ -26,4 +26,5 @@ RUN pacman -Syuu --noconfirm && \
|
|||
rm -rf /var/cache/pacman/pkg/* && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
ENTRYPOINT ["/bin/bash"]
|
||||
SHELL ["/bin/bash", "-l", "-c"]
|
||||
ENTRYPOINT ["/bin/bash", "-l"]
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
## base image
|
||||
FROM fedora:40 AS setup-cpp-fedora
|
||||
FROM fedora:44 AS setup-cpp-fedora
|
||||
|
||||
# install nodejs
|
||||
RUN dnf -y install nodejs npm && \
|
||||
# install setup-cpp
|
||||
npm install -g setup-cpp@v1.1.0 && \
|
||||
npm install -g setup-cpp@v1.1.1 && \
|
||||
# install the compiler and tools
|
||||
NODE_OPTIONS="--enable-source-maps" \
|
||||
setup-cpp \
|
||||
|
|
@ -23,4 +23,5 @@ RUN dnf -y install nodejs npm && \
|
|||
dnf clean all && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
ENTRYPOINT ["/bin/bash"]
|
||||
SHELL ["/bin/bash", "-l", "-c"]
|
||||
ENTRYPOINT ["/bin/bash", "-l"]
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
## base image
|
||||
FROM fedora:40 AS setup-cpp-fedora-mingw
|
||||
FROM fedora:44 AS setup-cpp-fedora-mingw
|
||||
|
||||
# install nodejs
|
||||
RUN dnf -y install nodejs npm && \
|
||||
# install setup-cpp
|
||||
npm install -g setup-cpp@v1.1.0 && \
|
||||
npm install -g setup-cpp@v1.1.1 && \
|
||||
# install the compiler and tools
|
||||
NODE_OPTIONS="--enable-source-maps" \
|
||||
setup-cpp \
|
||||
|
|
@ -24,4 +24,5 @@ RUN dnf -y install nodejs npm && \
|
|||
dnf clean all && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
ENTRYPOINT ["/bin/bash"]
|
||||
SHELL ["/bin/bash", "-l", "-c"]
|
||||
ENTRYPOINT ["/bin/bash", "-l"]
|
||||
|
|
|
|||
|
|
@ -7,11 +7,11 @@ RUN apt-get update -qq && \
|
|||
apt-get install -y --no-install-recommends curl gnupg ca-certificates && \
|
||||
mkdir -p /etc/apt/keyrings && \
|
||||
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \
|
||||
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \
|
||||
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \
|
||||
apt-get update -qq && \
|
||||
apt-get install -y --no-install-recommends nodejs && \
|
||||
# install setup-cpp
|
||||
npm install -g setup-cpp@v1.1.0 && \
|
||||
npm install -g setup-cpp@v1.1.1 && \
|
||||
# install the compiler and tools
|
||||
NODE_OPTIONS="--enable-source-maps" \
|
||||
setup-cpp \
|
||||
|
|
@ -36,4 +36,5 @@ RUN apt-get update -qq && \
|
|||
rm -rf /var/lib/apt/lists/* && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
ENTRYPOINT ["/bin/bash"]
|
||||
SHELL ["/bin/bash", "-l", "-c"]
|
||||
ENTRYPOINT ["/bin/bash", "-l"]
|
||||
|
|
|
|||
|
|
@ -6,11 +6,11 @@ RUN apt-get update -qq && \
|
|||
apt-get install -y --no-install-recommends curl gnupg ca-certificates && \
|
||||
mkdir -p /etc/apt/keyrings && \
|
||||
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \
|
||||
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \
|
||||
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \
|
||||
apt-get update -qq && \
|
||||
apt-get install -y --no-install-recommends nodejs && \
|
||||
# install setup-cpp
|
||||
npm install -g setup-cpp@v1.1.0 && \
|
||||
npm install -g setup-cpp@v1.1.1 && \
|
||||
# install the compiler and tools
|
||||
NODE_OPTIONS="--enable-source-maps" \
|
||||
setup-cpp \
|
||||
|
|
@ -34,4 +34,5 @@ RUN apt-get update -qq && \
|
|||
rm -rf /var/lib/apt/lists/* && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
ENTRYPOINT ["/bin/bash"]
|
||||
SHELL ["/bin/bash", "-l", "-c"]
|
||||
ENTRYPOINT ["/bin/bash", "-l"]
|
||||
|
|
|
|||
|
|
@ -6,11 +6,11 @@ RUN apt-get update -qq && \
|
|||
apt-get install -y --no-install-recommends curl gnupg ca-certificates && \
|
||||
mkdir -p /etc/apt/keyrings && \
|
||||
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \
|
||||
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \
|
||||
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \
|
||||
apt-get update -qq && \
|
||||
apt-get install -y --no-install-recommends nodejs && \
|
||||
# install setup-cpp
|
||||
npm install -g setup-cpp@v1.1.0 && \
|
||||
npm install -g setup-cpp@v1.1.1 && \
|
||||
# install the compiler and tools
|
||||
NODE_OPTIONS="--enable-source-maps" \
|
||||
setup-cpp \
|
||||
|
|
@ -35,4 +35,5 @@ RUN apt-get update -qq && \
|
|||
rm -rf /var/lib/apt/lists/* && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
ENTRYPOINT ["/bin/bash"]
|
||||
SHELL ["/bin/bash", "-l", "-c"]
|
||||
ENTRYPOINT ["/bin/bash", "-l"]
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -143,5 +143,5 @@ if [[ "${VERSION_CODENAME}" == "bookworm" ]]; then
|
|||
add-apt-repository -y "${REPO_NAME}"
|
||||
fi
|
||||
|
||||
add-apt-repository -y --no-update --remove "${REPO_NAME}"
|
||||
add-apt-repository -y --remove "${REPO_NAME}"
|
||||
apt-get update
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
{"ninja":"1.12.1","cmake":"3.31.4","task":"3.40.1","powershell":"7.4.5","pip":">=22.2.0","python":">=3.7.9","meson":{"linux":{"ubuntu":{"20":"1.6.1","18":"0.61.4","else":"0.61.4"},"else":"1.6.1"},"else":"1.6.1"},"kcov":{"linux":{"ubuntu":{"22":"42-binary","20":"40-binary","14":"40","else":"42"},"else":"42"},"else":"42"},"doxygen":{"linux":{"archlinux":"1.12.0-2","ubuntu":{"22":"1.12.0","18":"1.10.0","else":"1.10.0"},"else":"1.12.0"},"else":"1.12.0"},"gcc":{"win32":"14.2.0posix-18.1.8-12.0.0-ucrt-r1","else":""},"mingw":{"win32":"14.2.0posix-18.1.8-12.0.0-ucrt-r1","else":""},"gcovr":{"linux":{"ubuntu":{"20":"","18":"5.0","else":"5.0"},"else":""},"else":""},"nala":{"linux":{"ubuntu":{"22":"","21":"legacy","else":"legacy"},"else":""},"else":""},"llvm":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"18.1.8"}}},"else":"19.1.6"},"clang":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"18.1.8"}}},"else":"19.1.6"},"clang++":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"18.1.8"}}},"else":"19.1.6"},"clang-tidy":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"18.1.8"}}},"else":"19.1.6"},"clangtidy":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"18.1.8"}}},"else":"19.1.6"},"clang-format":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"18.1.8"}}},"else":"19.1.6"},"clangformat":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"18.1.8"}}},"else":"19.1.6"}}
|
||||
{"ninja":"1.13.2","cmake":"3.31.10","task":"3.46.4","powershell":"7.5.1","pip":">=22.2.0","python":">=3.7.9","meson":{"linux":{"ubuntu":{"20":"1.10.0","18":"0.61.4","else":"0.61.4"},"else":"1.10.0"},"else":"1.10.0"},"kcov":{"linux":{"ubuntu":{"22":"42-binary","20":"40-binary","14":"40","else":"42"},"else":"42"},"else":"42"},"doxygen":{"linux":{"archlinux":"1.15.0-2","ubuntu":{"22":"","18":"1.10.0","else":"1.10.0"},"else":""},"else":"1.15.0"},"tar":{"win32":"1.13-1","else":""},"gcc":{"win32":"15.2.0posix-13.0.0-ucrt-r5","else":""},"mingw":{"win32":"15.2.0posix-13.0.0-ucrt-r5","else":""},"gcovr":{"linux":{"ubuntu":{"20":"","18":"5.0","else":"5.0"},"else":""},"else":""},"nala":{"linux":{"ubuntu":{"22":"","21":"legacy","else":"legacy"},"else":""},"else":""},"llvm":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.8"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.8"},"else":"20.1.8"},"clang":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.8"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.8"},"else":"20.1.8"},"clang++":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.8"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.8"},"else":"20.1.8"},"clang-tidy":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.8"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.8"},"else":"20.1.8"},"clangtidy":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.8"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.8"},"else":"20.1.8"},"clang-format":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.8"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.8"},"else":"20.1.8"},"clangformat":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.8"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.8"},"else":"20.1.8"}}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -143,5 +143,5 @@ if [[ "${VERSION_CODENAME}" == "bookworm" ]]; then
|
|||
add-apt-repository -y "${REPO_NAME}"
|
||||
fi
|
||||
|
||||
add-apt-repository -y --no-update --remove "${REPO_NAME}"
|
||||
add-apt-repository -y --remove "${REPO_NAME}"
|
||||
apt-get update
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue