diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d7b1def..bcd5998 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,41 +1,94 @@ name: Release and Publish on: - release: - types: [published] + workflow_dispatch: + inputs: + version: + description: 'Version number' + required: true + changes_1: + description: 'Change entry' + required: true + changes_2: + description: 'Change entry' + required: false + changes_3: + description: 'Change entry' + required: false + changes_4: + description: 'Change entry' + required: false + changes_5: + description: 'Change entry' + required: false + changes_6: + description: 'Change entry' + required: false + changes_7: + description: 'Change entry' + required: false + changes_8: + description: 'Change entry' + required: false jobs: - push_to_registry: - name: Push Docker image to Docker Hub + release_build: + name: Build the release runs-on: ubuntu-latest steps: - - - name: Checkout - uses: actions/checkout@v2 - - - name: Docker meta - id: docker_meta - uses: crazy-max/ghaction-docker-meta@v1 - with: - images: dmtf/redfish-mockup-creator - tag-latest: false - - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Login to DockerHub - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Build and push - id: docker_build - uses: docker/build-push-action@v2 - with: - push: true - tags: ${{ steps.docker_meta.outputs.tags }} - - - name: Image digest - run: echo ${{ steps.docker_build.outputs.digest }} + - uses: actions/checkout@v2 + with: + token: ${{secrets.GITHUB_TOKEN}} + - name: Build the changelog text + run: | + echo 'CHANGES<> $GITHUB_ENV + echo "## [${{github.event.inputs.version}}] - $(date +'%Y-%m-%d')" >> $GITHUB_ENV + echo "- ${{github.event.inputs.changes_1}}" >> $GITHUB_ENV + if [[ -n "${{github.event.inputs.changes_2}}" ]]; then echo "- ${{github.event.inputs.changes_2}}" >> $GITHUB_ENV; fi + if [[ -n "${{github.event.inputs.changes_3}}" ]]; then echo "- ${{github.event.inputs.changes_3}}" >> $GITHUB_ENV; fi + if [[ -n "${{github.event.inputs.changes_4}}" ]]; then echo "- ${{github.event.inputs.changes_4}}" >> $GITHUB_ENV; fi + if [[ -n "${{github.event.inputs.changes_5}}" ]]; then echo "- ${{github.event.inputs.changes_5}}" >> $GITHUB_ENV; fi + if [[ -n "${{github.event.inputs.changes_6}}" ]]; then echo "- ${{github.event.inputs.changes_6}}" >> $GITHUB_ENV; fi + if [[ -n "${{github.event.inputs.changes_7}}" ]]; then echo "- ${{github.event.inputs.changes_7}}" >> $GITHUB_ENV; fi + if [[ -n "${{github.event.inputs.changes_8}}" ]]; then echo "- ${{github.event.inputs.changes_8}}" >> $GITHUB_ENV; fi + echo "" >> $GITHUB_ENV + echo 'EOF' >> $GITHUB_ENV + - name: Update version numbers + run: | + sed -i -E 's/tool_version = .+/tool_version = "'${{github.event.inputs.version}}'"/' redfishMockupCreate.py + - name: Update the changelog + run: | + ex CHANGELOG.md <" + git add CHANGELOG.md redfishMockupCreate.py + git commit -s -m "${{github.event.inputs.version}} versioning" + git push origin master + - name: Make the release + env: + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + run: | + gh release create ${{github.event.inputs.version}} -t ${{github.event.inputs.version}} -n "Changes since last release:"$'\n\n'"$CHANGES" + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - name: Login to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: Build Docker image and push + id: docker_build + uses: docker/build-push-action@v2 + with: + context: . + push: true + tags: dmtf/redfish-mockup-creator:${{ github.event.inputs.version }} + - name: Image digest + run: echo ${{ steps.docker_build.outputs.digest }}