From 52409e35e3a94969aa024d51ad564a79b5f850e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Deuchnord?= Date: Sun, 7 Jun 2020 10:33:59 +0200 Subject: [PATCH] ci: release locales through a workflow --- .github/workflows/release.yml | 101 ++++++++++++++++++++++++---------- Makefile | 7 ++- 2 files changed, 77 insertions(+), 31 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 87e16c0..e72dea2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,33 +1,78 @@ name: Release Application on: - release: - types: [created] + push: + tags: ['v*'] jobs: - pip: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v1 - - name: Set up Python - uses: actions/setup-python@v1 - with: - python-version: '3.7' - - name: Setup environment - run: | - sudo apt update - sudo apt install ruby - sudo gem install ronn - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install setuptools wheel twine skyfield numpy tabulate Babel requests - - name: Build and publish - env: - TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} - TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} - POEDITOR_API_ACCESS: ${{ secrets.POEDITOR_API_ACCESS }} - POEDITOR_PROJECT_ID: 306433 - run: | - make POEDITOR_API_ACCESS="${POEDITOR_API_ACCESS}" POEDITOR_PROJECT_ID="306433" build - twine upload dist/* + release: + name: Create release + runs-on: ubuntu-latest + steps: + - name: Prepare release + id: prepare_release + run: | + changelog="$(git diff HEAD^ HEAD -- CHANGELOG.md | grep -E '\+[#*]' | sed 's/^+//')" + changelog="${changelog//$'%'/'%25'}" + changelog="${changelog//$'\n'/'%0A'}" + changelog="${changelog//$'\r'/'%0D'}" + echo "::set-output name=changelog::$changelog" + - name: Checkout code + uses: actions/checkout@v2 + - name: Build locales + env: + POEDITOR_API_ACCESS: ${{ secrets.POEDITOR_API_ACCESS }} + run: | + make POEDITOR_API_ACCESS="${POEDITOR_API_ACCESS}" i18n + tar cf locales.tar.gz kosmorrolib/locales + - name: Create release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: Version ${{ github.ref }} + draft: true + prerelease: false + body: | + ${{ steps.prepare_release.outputs.changelog }} + - name: Upload locales + id: upload-locales + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./locales.tar.gz + asset_name: locales.tar.gz + asset_content_type: application/x-tar + + + pip: + name: Release to PyPI + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + with: + python-version: '3.7' + - name: Setup environment + run: | + sudo apt update + sudo apt install ruby + sudo gem install ronn + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install setuptools wheel twine skyfield numpy tabulate Babel requests + - name: Build and publish + env: + TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} + TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} + POEDITOR_API_ACCESS: ${{ secrets.POEDITOR_API_ACCESS }} + POEDITOR_PROJECT_ID: 306433 + run: | + make POEDITOR_API_ACCESS="${POEDITOR_API_ACCESS}" POEDITOR_PROJECT_ID="306433" build + twine upload dist/* diff --git a/Makefile b/Makefile index d6ed8b7..776b6db 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,10 @@ test: unset KOSMORRO_TIMEZONE; \ LANG=C pipenv run python3 -m coverage run -m unittest test -build: +build: i18n + python3 setup.py sdist bdist_wheel + +i18n: ronn --roff manpage/kosmorro.1.md ronn --roff manpage/kosmorro.7.md @@ -15,8 +18,6 @@ build: python3 setup.py compile_catalog; \ fi - python3 setup.py sdist bdist_wheel - env: @if [[ "$$RELEASE_NUMBER" == "" ]]; \ then echo "Missing environment variable: RELEASE_NUMBER."; \