mirror of
https://github.com/curl/curl.git
synced 2026-06-23 06:15:38 +03:00
To reduce to amount of Debian packages to install, which hopefully
removes some flakiness due to sometimes very slow Azure package
distro servers. Possible also making these jobs finish 20s faster.
Windows from Debian | llvm | gcc
:------------------ | :----------------: | :----------------:
build time | 2m41s -> 2m20s | 3m19s -> 2m57s
installed packages | 288 -> 142 | 247 -> 99
downloads | 403 MB -> 240 MB | 297 MB -> 134 MB
disk space | 2132 MB -> 1289 MB | 1582 MB -> 739 MB
Before: https://github.com/curl/curl/actions/runs/19765983026
After: https://github.com/curl/curl/actions/runs/19766373960?pr=19749
Ref: 02149b7e36
Closes #19749
200 lines
6.5 KiB
YAML
200 lines
6.5 KiB
YAML
# Copyright (C) Viktor Szakats
|
|
#
|
|
# SPDX-License-Identifier: curl
|
|
---
|
|
name: 'curl-for-win'
|
|
|
|
'on':
|
|
push:
|
|
branches:
|
|
- master
|
|
- '*/ci'
|
|
paths-ignore:
|
|
- '**/*.md'
|
|
- '.circleci/**'
|
|
- 'appveyor.*'
|
|
- 'Dockerfile'
|
|
- 'packages/**'
|
|
- 'plan9/**'
|
|
- 'projects/**'
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
paths-ignore:
|
|
- '**/*.md'
|
|
- '.circleci/**'
|
|
- 'appveyor.*'
|
|
- 'Dockerfile'
|
|
- 'packages/**'
|
|
- 'plan9/**'
|
|
- 'projects/**'
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
|
cancel-in-progress: true
|
|
|
|
permissions: {}
|
|
|
|
env:
|
|
CW_NOGET: 'curl trurl'
|
|
CW_MAP: '0'
|
|
CW_JOBS: '5'
|
|
CW_NOPKG: '1'
|
|
|
|
jobs:
|
|
linux-glibc-gcc:
|
|
name: 'Linux gcc glibc (amd64, arm64)'
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 10
|
|
steps:
|
|
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
|
with:
|
|
persist-credentials: false
|
|
path: 'curl'
|
|
fetch-depth: 8
|
|
- name: 'build'
|
|
run: |
|
|
git clone --depth 1 https://github.com/curl/curl-for-win
|
|
mv curl-for-win/* .
|
|
export CW_CONFIG='-main-werror-unitybatch-linux-a64-x64-gcc'
|
|
export CW_REVISION="${GITHUB_SHA}"
|
|
. ./_versions.sh
|
|
export CW_CCSUFFIX='-15'
|
|
export CW_GCCSUFFIX='-12'
|
|
sudo podman image trust set --type reject default
|
|
sudo podman image trust set --type accept docker.io/library
|
|
time podman pull "${OCI_IMAGE_DEBIAN_STABLE}"
|
|
podman images --digests
|
|
time podman run --volume "$(pwd):$(pwd)" --workdir "$(pwd)" \
|
|
--env-file <(env | grep -a -E \
|
|
'^(CW_|GITHUB_)') \
|
|
"${OCI_IMAGE_DEBIAN_STABLE}" \
|
|
sh -c ./_ci-linux-debian.sh
|
|
|
|
linux-glibc-gcc-minimal: # use gcc to minimize installed packages
|
|
name: 'Linux gcc glibc minimal'
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 5
|
|
steps:
|
|
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
|
with:
|
|
persist-credentials: false
|
|
path: 'curl'
|
|
fetch-depth: 8
|
|
- name: 'build'
|
|
run: |
|
|
git clone --depth 1 https://github.com/curl/curl-for-win
|
|
mv curl-for-win/* .
|
|
export CW_CONFIG='-main-werror-unitybatch-prefill-zero-osnotls-osnoidn-nohttp-nocurltool-linux-x64-gcc'
|
|
export CW_REVISION="${GITHUB_SHA}"
|
|
. ./_versions.sh
|
|
sudo podman image trust set --type reject default
|
|
sudo podman image trust set --type accept docker.io/library
|
|
time podman pull "${OCI_IMAGE_DEBIAN}"
|
|
podman images --digests
|
|
time podman run --volume "$(pwd):$(pwd)" --workdir "$(pwd)" \
|
|
--env-file <(env | grep -a -E \
|
|
'^(CW_|GITHUB_)') \
|
|
"${OCI_IMAGE_DEBIAN}" \
|
|
sh -c ./_ci-linux-debian.sh
|
|
|
|
linux-musl-llvm:
|
|
name: 'Linux llvm MUSL (amd64, riscv64)'
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 10
|
|
steps:
|
|
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
|
with:
|
|
persist-credentials: false
|
|
path: 'curl'
|
|
fetch-depth: 8
|
|
- name: 'build'
|
|
run: |
|
|
git clone --depth 1 https://github.com/curl/curl-for-win
|
|
mv curl-for-win/* .
|
|
export CW_CONFIG='-main-werror-unitybatch-linux-musl-r64-x64'
|
|
export CW_REVISION="${GITHUB_SHA}"
|
|
. ./_versions.sh
|
|
sudo podman image trust set --type reject default
|
|
sudo podman image trust set --type accept docker.io/library
|
|
time podman pull "${OCI_IMAGE_DEBIAN}"
|
|
podman images --digests
|
|
time podman run --volume "$(pwd):$(pwd)" --workdir "$(pwd)" \
|
|
--env-file <(env | grep -a -E \
|
|
'^(CW_|GITHUB_)') \
|
|
"${OCI_IMAGE_DEBIAN}" \
|
|
sh -c ./_ci-linux-debian.sh
|
|
|
|
mac-clang:
|
|
name: 'macOS clang (x86_64)'
|
|
runs-on: macos-latest
|
|
timeout-minutes: 10
|
|
env:
|
|
CW_JOBS: '4'
|
|
steps:
|
|
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
|
with:
|
|
persist-credentials: false
|
|
path: 'curl'
|
|
fetch-depth: 8
|
|
- name: 'build'
|
|
run: |
|
|
git clone --depth 1 https://github.com/curl/curl-for-win
|
|
mv curl-for-win/* .
|
|
export CW_CONFIG='-main-werror-unitybatch-mac-x64'
|
|
export CW_REVISION="${GITHUB_SHA}"
|
|
sh -c ./_ci-mac-homebrew.sh
|
|
|
|
win-llvm:
|
|
name: 'Windows llvm (x64)'
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 10
|
|
steps:
|
|
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
|
with:
|
|
persist-credentials: false
|
|
path: 'curl'
|
|
fetch-depth: 8
|
|
- name: 'build'
|
|
run: |
|
|
git clone --depth 1 https://github.com/curl/curl-for-win
|
|
mv curl-for-win/* .
|
|
export CW_CONFIG='-main-werror-unitybatch-win-x64-noWINE'
|
|
export CW_REVISION="${GITHUB_SHA}"
|
|
. ./_versions.sh
|
|
sudo podman image trust set --type reject default
|
|
sudo podman image trust set --type accept docker.io/library
|
|
time podman pull "${OCI_IMAGE_DEBIAN}"
|
|
podman images --digests
|
|
time podman run --volume "$(pwd):$(pwd)" --workdir "$(pwd)" \
|
|
--env-file <(env | grep -a -E \
|
|
'^(CW_|GITHUB_)') \
|
|
"${OCI_IMAGE_DEBIAN}" \
|
|
sh -c ./_ci-linux-debian.sh
|
|
|
|
win-gcc-zlibold-x64:
|
|
name: 'Windows gcc zlib-classic (x64)'
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 10
|
|
steps:
|
|
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
|
with:
|
|
persist-credentials: false
|
|
path: 'curl'
|
|
fetch-depth: 8
|
|
- name: 'build'
|
|
run: |
|
|
git clone --depth 1 https://github.com/curl/curl-for-win
|
|
mv curl-for-win/* .
|
|
export CW_CONFIG='-main-werror-unitybatch-win-x64-gcc-zlibold-noWINE'
|
|
export CW_REVISION="${GITHUB_SHA}"
|
|
. ./_versions.sh
|
|
sudo podman image trust set --type reject default
|
|
sudo podman image trust set --type accept docker.io/library
|
|
time podman pull "${OCI_IMAGE_DEBIAN}"
|
|
podman images --digests
|
|
time podman run --volume "$(pwd):$(pwd)" --workdir "$(pwd)" \
|
|
--env-file <(env | grep -a -E \
|
|
'^(CW_|GITHUB_)') \
|
|
"${OCI_IMAGE_DEBIAN}" \
|
|
sh -c ./_ci-linux-debian.sh
|