name: release on: push: tags: - '*' jobs: goreleaser: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Unshallow run: git fetch --prune --unshallow - name: Setup Go uses: actions/setup-go@v2 with: go-version: 1.15.x - name: Download release notes utility env: GH_REL_URL: https://github.com/buchanae/github-release-notes/releases/download/0.2.0/github-release-notes-linux-amd64-0.2.0.tar.gz run: cd /tmp && curl -sSL ${GH_REL_URL} | tar xz && sudo mv github-release-notes /usr/local/bin/ - name: Generate release notes run: | echo 'CHANGELOG' > /tmp/release.txt github-release-notes -org fluxcd -repo toolkit -since-latest-release -include-author >> /tmp/release.txt env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Setup Kustomize uses: fluxcd/pkg//actions/kustomize@main - name: Generate manifests tarball run: | mkdir -p ./output files="" # build controllers for controller in ./manifests/bases/*/; do output_path="./output/$(basename $controller).yaml" echo "building $controller to $output_path" kustomize build $controller > $output_path files+=" $(basename $output_path)" done # build rbac rbac_path="./manifests/rbac" rbac_output_path="./output/rbac.yaml" echo "building $rbac_path to $rbac_output_path" kustomize build $rbac_path > $rbac_output_path files+=" $(basename $rbac_output_path)" # build policies policies_path="./manifests/policies" policies_output_path="./output/policies.yaml" echo "building $policies_path to $policies_output_path" kustomize build $policies_path > $policies_output_path files+=" $(basename $policies_output_path)" # create tarball cd ./output && tar -cvzf manifests.tar.gz $files - name: Create release id: create_release uses: actions/create-release@latest env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.ref }} release_name: ${{ github.ref }} - name: Upload artifacts id: upload-release-asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./output/manifests.tar.gz asset_name: manifests.tar.gz asset_content_type: application/gzip - name: Run GoReleaser uses: goreleaser/goreleaser-action@v1 with: version: latest args: release --release-notes=/tmp/release.txt --skip-validate env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} HOMEBREW_TAP_GITHUB_TOKEN: ${{ secrets.BOT_GITHUB_TOKEN }}