diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index 55e470b..509a50c 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -1,6 +1,10 @@ name: AWS-Zig Build run-name: ${{ github.actor }} building AWS Zig SDK -on: [push] +on: + push: + branches: + - '*' + - '!zig-develop*' env: ACTIONS_RUNTIME_TOKEN: ${{ secrets.GITHUB_TOKEN }} ACTIONS_RUNTIME_URL: ${{ env.GITHUB_SERVER_URL }}/api/actions_pipeline/ diff --git a/.gitea/workflows/zig-mach.yaml b/.gitea/workflows/zig-mach.yaml new file mode 100644 index 0000000..f5a5a1c --- /dev/null +++ b/.gitea/workflows/zig-mach.yaml @@ -0,0 +1,80 @@ +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/ +jobs: + build: + 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: mach-latest + 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 install -y jq + file="$(curl -Osw '%{filename_effective}' "$(curl -s https://machengine.org/zig/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 + - 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 }} diff --git a/README.md b/README.md index 52a365a..582eaa5 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,8 @@ AWS SDK for Zig =============== -[![Build Status](https://actions-status.lerch.org/lobo/aws-sdk-for-zig/build)](https://git.lerch.org/lobo/aws-sdk-for-zig/actions?workflow=build.yaml&state=closed) +[![Build Status: Zig 0.12.0-dev.2063+804cee3b9](https://actions-status.lerch.org/lobo/aws-sdk-for-zig/zig-mach)](https://git.lerch.org/lobo/aws-sdk-for-zig/actions?workflow=zig-mach.yaml&state=closed) +[![Build Status: Zig Nightly](https://actions-status.lerch.org/lobo/aws-sdk-for-zig/zig-nightly)](https://git.lerch.org/lobo/aws-sdk-for-zig/actions?workflow=zig-nightly.yaml&state=closed) **NOTE: THIS SDK IS CURRENTLY UNUSABLE FOR SEVERAL IMPORTANT AWS SERVICES WITHOUT A PROXY. SEE LIMITATIONS SECTION BELOW** @@ -19,6 +20,16 @@ in x86_linux, and will vary based on services used. Tested targets: Tested targets are built, but not continuously tested, by CI. +Zig-Develop Branch +------------------ + +This branch is intended for use with the in-development version of Zig. This +starts with 0.12.0-dev.2150+63de8a598. I will try to keep this branch up to date +with latest, but with a special eye towards aligning with [Mach Engine's Nominated +Zig Versions](https://machengine.org/about/nominated-zig/). As nightly zig versions +disappear off the downloads page (and back end server), we can use the mirroring +that the Mach Engine participates in to pull these versions. + Building -------- @@ -113,8 +124,6 @@ elasticache elasticbeanstalk elasticloadbalancing featurestore-runtime.sagemaker -forecast -forecastquery glacier ingest.timestream iotsitewise @@ -138,7 +147,6 @@ s3 sns sqs sso -storagegateway streams.dynamodb sts support