diff --git a/.github/workflows/armada.yml b/.github/workflows/armada.yml new file mode 100644 index 0000000..d397217 --- /dev/null +++ b/.github/workflows/armada.yml @@ -0,0 +1,56 @@ +name: Armada Release +description: Create an Armada bundle and upload it as a release asset. +inputs: + build_dir: + description: Project build directory + required: true + bundle_name: + description: Name for the bundle + required: true + github_token: + description: Auth token for the GitHub CLI + required: true +outputs: + bundle_url: + description: Download URL for the bundle + value: ${{ steps.urls.outputs.bundle }} + checksum: + description: Integrity checksum of the bundle + value: ${{ steps.checksum.outputs.hash }} +runs: + using: composite + steps: + - name: Create bundle + id: bundle + run: | + filename="$(npx --package=armada-cli@0.2.1 --yes armada bundle create ${{ inputs.bundle_name }} ${{ inputs.build_dir }})" + echo "filename=$filename" >> $GITHUB_OUTPUT + shell: bash + + - name: Create checksum file + id: checksum + run: | + hash="$(npx --package=armada-cli@0.2.1 --yes armada bundle checksum ${{ steps.bundle.outputs.filename }})" + echo "hash=$hash" >> $GITHUB_OUTPUT + + filename="${{ steps.bundle.outputs.filename }}_SHA256SUM" + echo "$hash" > $filename + echo "filename=$filename" >> $GITHUB_OUTPUT + shell: bash + + - name: Upload bundle and checksum to the release + env: + GITHUB_TOKEN: ${{ inputs.github_token }} + run: | + gh release upload ${{ github.ref_name }} ${{ steps.bundle.outputs.filename }} + gh release upload ${{ github.ref_name }} ${{ steps.checksum.outputs.filename }} + shell: bash + + - name: Retrieve URLs + id: urls + env: + GITHUB_TOKEN: ${{ inputs.github_token }} + run: | + bundle="$(gh release view ${{ github.ref_name }} --json assets --jq '.assets[] | select(.name == "${{ steps.bundle.outputs.filename }}") | .url')" + echo "bundle=$bundle" >> $GITHUB_OUTPUT + shell: bash