From 5c42c9ec09c80b53720b9832811b5a54727bd1f3 Mon Sep 17 00:00:00 2001 From: Zeort Date: Wed, 3 Jul 2024 11:43:10 +0300 Subject: [PATCH] add release script --- .github/workflows/release.yml | 82 +++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..c73efd2 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,82 @@ +name: Release Workflow + +on: + push: + tags: + - 'v*' + workflow_dispatch: + +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + +jobs: + release: + name: Release + runs-on: [ self-hosted ] + + permissions: + contents: read + packages: write + attestations: write + id-token: write + + steps: + - uses: actions/checkout@v3 + + - name: Log in to the Container registry + uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: set version + run: echo "version=${GITHUB_REF_NAME#v}" >> $GITHUB_OUTPUT + id: version + + - name: docker build + run: VERSION=${{ steps.version.outputs.version }} make docker-build + - name: docker-push + run: VERSION=${{ steps.version.outputs.version }} make docker-push + + - name: prepare release artifacts + run: VERSION=${{ steps.version.outputs.version }} make release + - name: Github release + uses: actions/create-release@v1 + id: gh_release + with: + draft: false + prerelease: false + release_name: ${{ github.ref_name }} + tag_name: ${{ github.ref_name }} + body_path: RELEASE.md + env: + GITHUB_TOKEN: ${{ github.token }} + - name: upload cfapi crd + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ github.token }} + with: + upload_url: ${{ steps.gh_release.outputs.upload_url }} + asset_path: ./release-${{ steps.version.outputs.version }}/cfapi-crd.yaml + asset_name: cfapi-crd.yaml + asset_content_type: yaml + - name: upload release default CR yaml + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ github.token }} + with: + upload_url: ${{ steps.gh_release.outputs.upload_url }} + asset_path: ./release-${{ steps.version.outputs.version }}/cfapi-default-cr.yaml + asset_name: cfapi-default-cr.yaml + asset_content_type: yaml + - name: upload release controller yaml + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ github.token }} + with: + upload_url: ${{ steps.gh_release.outputs.upload_url }} + asset_path: ./release-${{ steps.version.outputs.version }}/cfapi-manager.yaml + asset_name: cfapi-manager.yaml + asset_content_type: yaml \ No newline at end of file