elerch building AWS Zig SDK #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: AWS-Zig Build | ||
run-name: ${{ github.actor }} building AWS Zig SDK | ||
on: | ||
push: | ||
branches: | ||
- 'zig-develop*' | ||
env: | ||
ACTIONS_RUNTIME_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
ACTIONS_RUNTIME_URL: ${{ env.GITHUB_SERVER_URL }}/api/actions_pipeline/ | ||
Check failure on line 9 in .github/workflows/zig-nightly.yaml GitHub Actions / AWS-Zig BuildInvalid workflow file
|
||
jobs: | ||
build-zig-nightly: | ||
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: | ||
ZIG_VERSION: master | ||
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 | ||
- name: Install zig | ||
run: | | ||
apt-get update && apt-get install -y jq | ||
file="$(curl -Osw '%{filename_effective}' "$(curl -s https://ziglang.org/download/index.json |jq -r '."'${ZIG_VERSION}'"."x86_64-linux".tarball')")" | ||
tar x -C /usr/local -f "${file}" | ||
ln -s /usr/local/"${file%%.tar.xz}"/zig /usr/local/bin/zig | ||
zig version | ||
- name: Run tests | ||
run: zig build test --verbose | ||
- name: Build example | ||
run: ( cd example && zig build ) # Make sure example builds | ||
# 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: | | ||
tar -czf ${{ runner.temp }}/${{ github.sha }}-with-models.tar.gz \ | ||
--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 }} \ | ||
--upload-file ${{ runner.temp }}/${{ github.sha }}-with-models.tar.gz \ | ||
https://git.lerch.org/api/packages/lobo/generic/aws-sdk-with-models/${{ github.sha }}/${{ github.sha }}-with-models.tar.gz | ||
- 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 }} |