name: Release on: push: branches: - main - master workflow_dispatch: permissions: contents: write jobs: build-release: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Build dist run: make dist - name: Package release zip run: | short_sha="${GITHUB_SHA::7}" archive="softwarekatalog-${short_sha}.zip" echo "SHORT_SHA=${short_sha}" >> "${GITHUB_ENV}" echo "ARCHIVE=${archive}" >> "${GITHUB_ENV}" rm -rf package mkdir -p package cp LICENSE package/LICENSE cp dist/setup.ps1 package/setup.ps1 cp -R PolicyDefinitions package/PolicyDefinitions (cd package && zip -r "../${archive}" LICENSE setup.ps1 PolicyDefinitions) - name: Create or update release env: GH_TOKEN: ${{ github.token }} run: | if gh release view "${SHORT_SHA}" >/dev/null 2>&1; then gh release upload "${SHORT_SHA}" "${ARCHIVE}" --clobber else gh release create "${SHORT_SHA}" "${ARCHIVE}" \ --target "${GITHUB_SHA}" \ --title "${SHORT_SHA}" \ --notes "Automated build for ${GITHUB_SHA}." fi