From ecac3ceefbb3f11b8f14b66479b90084e0d07935 Mon Sep 17 00:00:00 2001 From: Matt White Date: Fri, 8 Jan 2021 16:16:17 +0000 Subject: [PATCH] Matt ffffff/releaseautomation (#6) * Add release automation * Update to build release versions * use github_ref --- .github/workflows/release.yml | 64 +++++++++++++++++++++++++++++++++ .github/workflows/teslamate.yml | 10 +++++- 2 files changed, 73 insertions(+), 1 deletion(-) 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..a85df04 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,64 @@ +on: + workflow_dispatch: + inputs: + semverIncrement: + description: Increment major/minor/patch using values of m/i/p + required: true + default: i + +name: Create Release + +jobs: + build: + name: Create Release + runs-on: ubuntu-latest + steps: + - name: Checkout Teslamate + uses: actions/checkout@v2 + with: + path: teslamate + - name: Get latest release + run: | + echo "latest_release=$(curl --silent https://api.github.com/repos/$GITHUB_REPOSITORY/releases/latest | jq -r .tag_name | sed s/v// )" >> $GITHUB_ENV + - name: Increment semver + id: semver + uses: matt-FFFFFF/simple-semver@v0.1.0 + with: + semver-input: ${{ env.latest_release }} + increment: i + - name: Create tag + run: | + git config --global user.email "actions.no-reply@github.com" + git config --global user.name "GitHub Actions" + git tag -a v${{ steps.semver.outputs.semver }} -m 'Release automation' + git push --tags + working-directory: ${{ github.workspace }}/teslamate + - name: Create Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: v${{ steps.semver.outputs.semver }} + release_name: Release v${{ steps.semver.outputs.semver }} + body_path: CHANGELOG.md + draft: false + prerelease: false + - name: Checkout repository + uses: actions/checkout@v2 + with: + path: repo + repository: matt-FFFFFF/hassio-addon-repository + token: ${{ secrets.REPO_PAT }} + - name: Update addon repo + run: | + cp -vf ${{ github.workspace }}/teslamate/*.png ${{ github.workspace }}/repo/teslamate + cp -vf ${{ github.workspace }}/teslamate/*.md ${{ github.workspace }}/repo/teslamate + jq '.version="${{ steps.semver.outputs.semver }}"' < ${{ github.workspace }}/teslamate/config.json > ${{ github.workspace }}/repo/teslamate/config.json + - name: Add changes to addon repo + run: | + git add . + git commit -m 'Update from hassio-addon-teslamate' + git push + working-directory: ${{ github.workspace }}/repo/teslamate + diff --git a/.github/workflows/teslamate.yml b/.github/workflows/teslamate.yml index 18a8864..6dc5201 100644 --- a/.github/workflows/teslamate.yml +++ b/.github/workflows/teslamate.yml @@ -7,6 +7,8 @@ on: paths: - '**' - '!**.md' + release: + types: [published] env: DOCKER_USERNAME: mattffffff @@ -42,7 +44,7 @@ jobs: version: latest - name: Available platforms run: echo ${{ steps.buildx.outputs.platforms }} - - name: Set PLATFORM variable + - name: Set PLATFORM & ARCH variables run: | case "${{ matrix.arch }}" in "amd64" ) @@ -62,6 +64,12 @@ jobs: echo "ARCH=arm" >> $GITHUB_ENV ;; esac + - name: Update config.json if release + run: | + export RELEASE=$( $GITHUB_REF | sed s/v// ) + jq ".version=\"$RELEASE\"" < /config.json > config_release.json + rm config.json && mv config_release.json config.json + if: ${{ github.event_name == 'release' }} - name: Set environment variables from config.json run: | echo "ADDON_VERSION=$(jq -r .version < config.json)" >> $GITHUB_ENV