name: Release on: push: tags: - "v*" permissions: contents: write id-token: write packages: write jobs: prepare: name: Prepare release runs-on: ubuntu-latest outputs: version: ${{ steps.release.outputs.version }} backend_image: ${{ steps.release.outputs.backend_image }} frontend_image: ${{ steps.release.outputs.frontend_image }} release_doc_url: ${{ steps.release.outputs.release_doc_url }} steps: - uses: actions/checkout@v7 with: submodules: true - name: Check release manifest run: python deploy/release_tool.py check --tag "$GITHUB_REF_NAME" - name: Resolve release outputs id: release run: python deploy/release_tool.py show --format github-output >> "$GITHUB_OUTPUT" images: name: Build and push images needs: prepare uses: ./.github/workflows/docker.yml with: version: ${{ needs.prepare.outputs.version }} push: true secrets: inherit release: name: Create GitHub Release runs-on: ubuntu-latest needs: - prepare - images steps: - uses: actions/checkout@v7 - name: Build Compose package run: | bash ./deploy/package-asp-compose.sh \ --version "${{ needs.prepare.outputs.version }}" \ --output-dir dist \ --backend-image "${{ needs.prepare.outputs.backend_image }}" \ --frontend-image "${{ needs.prepare.outputs.frontend_image }}" - name: Validate package run: | archive_path="dist/asp-compose.tar.gz" test -f "$archive_path" tar -tzf "$archive_path" >/dev/null rm -rf dist/unpacked mkdir -p dist/unpacked tar -xzf "$archive_path" -C dist/unpacked test -x dist/unpacked/asp-compose/scripts/upgrade.sh test ! -e dist/unpacked/asp-compose/.env grep -F "${{ needs.prepare.outputs.backend_image }}" dist/unpacked/asp-compose/.env.example grep -F "${{ needs.prepare.outputs.frontend_image }}" dist/unpacked/asp-compose/.env.example if find dist/unpacked -type f | grep -E 'custom/(modules|playbooks)/.+\.py$|custom/data/(modules|siem|playbooks)/.+\.(json|ya?ml|md)$'; then echo "Release custom template contains development samples." >&2 exit 1 fi - name: Write release body run: | cat > dist/release-body.md <