name: Release Application on: push: tags: ['v*'] jobs: release: name: Create release runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Setup run: | sudo apt update sudo apt install ruby sudo gem install ronn - 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: 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/* docker: name: Push to DockerHub runs-on: ubuntu-latest steps: - 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.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push id: docker_build uses: docker/build-push-action@v2 with: push: true file: ./Dockerfile platforms: linux/amd64,linux/arm64,linux/386 tags: kosmorro/kosmorro:latest - name: Image digest run: echo ${{ steps.docker_build.outputs.digest }}