2024-01-22 23:15:03 +00:00
|
|
|
name: aws-zig nightly build
|
2024-01-22 22:44:57 +00:00
|
|
|
on:
|
2024-04-29 16:48:24 +00:00
|
|
|
schedule:
|
2024-07-09 00:09:50 +00:00
|
|
|
- cron: '30 12 * * *' # 12:30 UTC, 4:30AM Pacific
|
2024-01-22 22:44:57 +00:00
|
|
|
push:
|
|
|
|
branches:
|
|
|
|
- 'zig-develop*'
|
|
|
|
env:
|
2024-06-04 23:54:21 +00:00
|
|
|
PKG_PREFIX: nightly-zig
|
2024-01-22 22:44:57 +00:00
|
|
|
jobs:
|
|
|
|
build-zig-nightly:
|
2024-10-27 01:33:30 +00:00
|
|
|
container:
|
|
|
|
# We need CAP_SYS_PTRACE for stack traces due to a regression in 0.14.0
|
|
|
|
# TODO: Remove this after https://github.com/ziglang/zig/issues/21815 is
|
|
|
|
# addressed
|
|
|
|
options: --cap-add CAP_SYS_PTRACE
|
2024-01-22 22:44:57 +00:00
|
|
|
runs-on: ubuntu-latest
|
|
|
|
# Need to use the default container with node and all that, so we can
|
|
|
|
# use JS-based actions like actions/checkout@v3...
|
|
|
|
# container:
|
|
|
|
# image: alpine:3.15.0
|
|
|
|
steps:
|
|
|
|
- name: Check out repository code
|
2024-10-27 15:31:15 +00:00
|
|
|
uses: actions/checkout@v4
|
2024-04-23 15:07:10 +00:00
|
|
|
with:
|
|
|
|
ref: zig-develop
|
2024-04-29 16:48:24 +00:00
|
|
|
- name: Setup Zig
|
2024-10-27 15:31:15 +00:00
|
|
|
uses: mlugg/setup-zig@v1.2.1
|
2024-04-29 16:48:24 +00:00
|
|
|
with:
|
|
|
|
version: master
|
2024-01-22 22:44:57 +00:00
|
|
|
- name: Run tests
|
2024-04-03 00:49:45 +00:00
|
|
|
run: zig build test --verbose
|
2024-01-22 22:44:57 +00:00
|
|
|
# Zig package manager expects everything to be inside a directory in the archive,
|
|
|
|
# which it then strips out on download. So we need to shove everything inside a directory
|
|
|
|
# the way GitHub/Gitea does for repo archives
|
|
|
|
#
|
|
|
|
# Also, zig tar process doesn't handle gnu format for long names, nor does it seam to
|
|
|
|
# handle posix long name semantics cleanly either. ustar works. This
|
|
|
|
# should be using git archive, but we need our generated code to be part of it
|
|
|
|
- name: Package source code with generated models
|
|
|
|
run: |
|
2024-06-04 23:54:21 +00:00
|
|
|
tar -czf ${{ runner.temp }}/${{ github.sha }}${{ env.PKG_PREFIX }}-with-models.tar.gz \
|
2024-01-22 22:44:57 +00:00
|
|
|
--format ustar \
|
|
|
|
--exclude 'zig-*' \
|
|
|
|
--transform 's,^,${{ github.sha }}/,' *
|
|
|
|
# - name: Sign
|
|
|
|
# id: sign
|
|
|
|
# uses: https://git.lerch.org/lobo/action-hsm-sign@v1
|
|
|
|
# with:
|
|
|
|
# pin: ${{ secrets.HSM_USER_PIN }}
|
|
|
|
# files: ???
|
|
|
|
# public_key: 'https://emil.lerch.org/serverpublic.pem'
|
|
|
|
# - run: |
|
|
|
|
# echo "Source 0 should be ./bar: ${{ steps.sign.outputs.SOURCE_0 }}"
|
|
|
|
# - run: |
|
|
|
|
# echo "Signature 0 should be ./bar.sig: ${{ steps.sign.outputs.SIG_0 }}"
|
|
|
|
# - run: echo "URL of bar (0) is ${{ steps.sign.outputs.URL_0 }}"
|
|
|
|
# - run: |
|
|
|
|
# echo "Source 1 should be ./foo: ${{ steps.sign.outputs.SOURCE_1 }}"
|
|
|
|
# - run: |
|
|
|
|
# echo "Signature 1 should be ./foo.sig: ${{ steps.sign.outputs.SIG_1 }}"
|
|
|
|
# - run: echo "URL of foo (1) is ${{ steps.sign.outputs.URL_1 }}"
|
|
|
|
- name: Publish source code with generated models
|
|
|
|
run: |
|
|
|
|
curl --user ${{ github.actor }}:${{ secrets.PACKAGE_PUSH }} \
|
2024-06-04 23:54:21 +00:00
|
|
|
--upload-file ${{ runner.temp }}/${{ github.sha }}${{ env.PKG_PREFIX }}-with-models.tar.gz \
|
|
|
|
https://git.lerch.org/api/packages/lobo/generic/aws-sdk-with-models/${{ github.sha }}/${{ github.sha }}${{ env.PKG_PREFIX }}-with-models.tar.gz
|
2024-04-03 01:00:08 +00:00
|
|
|
- name: Build example
|
|
|
|
run: ( cd example && zig build ) # Make sure example builds
|
2024-01-22 22:44:57 +00:00
|
|
|
- name: Notify
|
|
|
|
uses: https://git.lerch.org/lobo/action-notify-ntfy@v2
|
|
|
|
if: always()
|
|
|
|
with:
|
|
|
|
host: ${{ secrets.NTFY_HOST }}
|
|
|
|
topic: ${{ secrets.NTFY_TOPIC }}
|
|
|
|
user: ${{ secrets.NTFY_USER }}
|
|
|
|
password: ${{ secrets.NTFY_PASSWORD }}
|