2023-02-24 23:47:14 +00:00
|
|
|
name: AWS-Zig Build
|
|
|
|
run-name: ${{ github.actor }} building AWS Zig SDK
|
|
|
|
on: [push]
|
2023-09-05 20:00:40 +00:00
|
|
|
env:
|
|
|
|
ACTIONS_RUNTIME_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
2023-09-05 20:27:05 +00:00
|
|
|
ACTIONS_RUNTIME_URL: ${{ env.GITHUB_SERVER_URL }}/api/actions_pipeline/
|
2023-02-24 23:47:14 +00:00
|
|
|
jobs:
|
2023-08-14 20:47:14 +00:00
|
|
|
build-zig-0.11.0-amd64-host:
|
2023-02-24 23:47:14 +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
|
|
|
|
env:
|
2023-08-14 20:47:14 +00:00
|
|
|
ZIG_VERSION: 0.11.0
|
2023-02-24 23:47:14 +00:00
|
|
|
ARCH: x86_64
|
|
|
|
steps:
|
|
|
|
- name: Check out repository code
|
|
|
|
uses: actions/checkout@v3
|
|
|
|
# ARCH is fine, but we can't substitute directly because zig
|
|
|
|
# uses x86_64 instead of amd64. They also use aarch64 instead of arm64.
|
|
|
|
#
|
|
|
|
# However, arm64/linux isn't quite fully tier 1 yet, so this is more of a
|
|
|
|
# TODO: https://github.com/ziglang/zig/issues/2443
|
2023-02-26 20:04:22 +00:00
|
|
|
- run: wget -q https://ziglang.org/download/${ZIG_VERSION}/zig-linux-${ARCH}-${ZIG_VERSION}.tar.xz
|
2023-02-24 23:47:14 +00:00
|
|
|
- run: tar x -C /usr/local -f zig-linux-${ARCH}-${ZIG_VERSION}.tar.xz
|
|
|
|
- run: ln -s /usr/local/zig-linux-${ARCH}-${ZIG_VERSION}/zig /usr/local/bin/zig
|
2023-08-15 14:21:56 +00:00
|
|
|
- run: zig build test --verbose
|
2023-08-26 00:29:52 +00:00
|
|
|
- run: zig build --verbose -Dtarget=arm-linux
|
2023-02-24 23:47:14 +00:00
|
|
|
- run: zig build -Dtarget=x86_64-windows
|
|
|
|
- run: zig build -Dtarget=aarch64-linux
|
|
|
|
- run: zig build -Dtarget=riscv64-linux
|
|
|
|
- run: zig build -Dtarget=x86_64-macos
|
|
|
|
- run: zig build -Dtarget=aarch64-macos
|
2023-09-05 20:56:39 +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
|
2023-09-05 22:44:55 +00:00
|
|
|
- run: tar -czf ${{ runner.temp }}/${{ github.sha }}-with-models.tar.gz --format posix --exclude 'zig-*' --transform 's,^,${{ github.sha }}/,' *
|
2023-09-05 20:39:35 +00:00
|
|
|
# - 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 }}"
|
2023-09-05 19:49:57 +00:00
|
|
|
- name: Upload
|
|
|
|
uses: actions/upload-artifact@v3
|
|
|
|
with:
|
2023-09-05 20:39:35 +00:00
|
|
|
name: ${{ github.sha }}-with-models.tar.gz
|
|
|
|
path: '${{ runner.temp }}/${{ github.sha }}-with-models.tar.gz'
|
2023-03-27 22:38:27 +00:00
|
|
|
- name: Notify
|
2023-08-14 20:47:14 +00:00
|
|
|
uses: https://git.lerch.org/lobo/action-notify-ntfy@v2
|
2023-03-27 22:38:27 +00:00
|
|
|
if: always()
|
|
|
|
with:
|
|
|
|
host: ${{ secrets.NTFY_HOST }}
|
|
|
|
topic: ${{ secrets.NTFY_TOPIC }}
|
|
|
|
user: ${{ secrets.NTFY_USER }}
|
|
|
|
password: ${{ secrets.NTFY_PASSWORD }}
|