Skip to content

Commit

Permalink
ci: add curl tool-only daily download artifacts [ci skip]
Browse files Browse the repository at this point in the history
They contain curl tool executables only, without static libs,
shared lib and other bits.

Caveats:

- curl tool resides under `subdir/` inside the package.
  Can be fixed locally in the future by renaming curl to unique names,
  e.g. `curl-x64.exe` or `curl-riscv64`. Maybe even to a more globally
  unique name, such as `curl-linux-musl-amd64`.

- curl tool misses the exec permission so cannot be executed after
  unzipping on *nix systems. Needs `chmod +x` before doing so.
  https://github.com/actions/upload-artifact#permission-loss
  actions/upload-artifact#38

- there is no option to switch to tarball from zip.

- uploading a `.tar.gz` will still get it zipped by GitHub.

- there is no option to skip zip and offer files as-is.
  (exec attribute would be lost in this case as well)
  actions/upload-artifact#39
  actions/upload-artifact#3 (closed)
  actions/upload-artifact#14 (pending upload-artifact@v4)

- a workaround for most of this is uploading them to our own
  server in the exact form we want.

3-4 years old unresolved issues on the side of GitHub.
  • Loading branch information
vszakats committed Nov 10, 2023
1 parent d9099ed commit 1a12cb0
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 4 deletions.
22 changes: 22 additions & 0 deletions .github/workflows/daily.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ permissions: {}
env:
CW_MAP: '1'
CW_JOBS: '3'
CW_PKG_NODELETE: '1'
CW_PKG_FLATTEN: '1'
DO_NOT_TRACK: '1'
DOCKER_CONTENT_TRUST: '1'

Expand All @@ -39,6 +41,11 @@ jobs:
- name: 'list dependencies'
run: cat urls.txt
- uses: actions/upload-artifact@v3
with:
name: 'curl-linux-glibc-daily-tool'
retention-days: 42
path: curl-*-*-*/curl*
- uses: actions/upload-artifact@v3
with:
name: 'curl-linux-glibc-daily'
Expand Down Expand Up @@ -67,6 +74,11 @@ jobs:
- name: 'list dependencies'
run: cat urls.txt
- uses: actions/upload-artifact@v3
with:
name: 'curl-linux-musl-daily-tool'
retention-days: 42
path: curl-*-*-*/curl*
- uses: actions/upload-artifact@v3
with:
name: 'curl-linux-musl-daily'
Expand All @@ -87,6 +99,11 @@ jobs:
- name: 'list dependencies'
run: cat urls.txt
- uses: actions/upload-artifact@v3
with:
name: 'curl-macos-universal-daily-tool'
retention-days: 42
path: curl-*-*-*/curl*
- uses: actions/upload-artifact@v3
with:
name: 'curl-macos-universal-daily'
Expand Down Expand Up @@ -121,6 +138,11 @@ jobs:
- name: 'list dependencies'
run: cat urls.txt
# https://github.com/actions/upload-artifact
- uses: actions/upload-artifact@v3
with:
name: 'curl-windows-daily-tool'
retention-days: 42
path: curl-*-*-*/curl*
- uses: actions/upload-artifact@v3
with:
name: 'curl-windows-daily'
Expand Down
4 changes: 0 additions & 4 deletions _build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -99,10 +99,6 @@ set -o xtrace -o errexit -o nounset; [ -n "${BASH:-}${ZSH_NAME:-}" ] && set -o p
# TODO:
# - quictls: build with no-deprecated option (pending libssh2 support)
# - delete curl-gnumake.sh and libssh2-gnumake.sh.
# - publish curl tool as direct downloads:
# curl-linux-musl / curl-mac / curl-x64.exe / curl-x86.exe / curl-a64.exe
# (or similar) [not possible in GHA, the max we can do is flatten the
# package possibly by offering a 'tool-only' artifact.]
# - change default TLS to BoringSSL (with OPENSSL_SMALL?) or LibreSSL?
# - prepare for Xcode 15 with new ld_prime (-Wl,-ld_new) linker (vs. -Wl,-ld_classic).
# https://developer.apple.com/forums/thread/715385
Expand Down

0 comments on commit 1a12cb0

Please sign in to comment.