name: Generate bootstrap archives on: schedule: - cron: "0 0 * * 0" workflow_dispatch: jobs: build: runs-on: ubuntu-latest strategy: matrix: arch: - aarch64 - arm - i686 - x86_64 steps: - name: Git clone uses: actions/checkout@v2 - name: Create bootstrap archive run: ./scripts/generate-bootstraps.sh --architectures ${{ matrix.arch }} - name: Store artifacts uses: actions/upload-artifact@v2 with: name: bootstrap-archives-${{ github.sha }} path: "*.zip" publish: needs: build runs-on: ubuntu-latest steps: - name: Git clone uses: actions/checkout@v2 with: fetch-depth: 0 - name: Fetch bootstrap archives uses: actions/download-artifact@v2 with: name: bootstrap-archives-${{ github.sha }} path: ./ - name: Get checksums id: get_checksums run: | checksums=$(printf 'SHA-256:\n```\n%s\n```\n' "$(sha256sum *.zip)") checksums="${checksums//'%'/'%25'}" checksums="${checksums//$'\n'/'%0A'}" checksums="${checksums//$'\r'/'%0D'}" echo "::set-output name=checksums::$checksums" - name: Create new tag id: get_tag run: | new_tag="bootstrap-$(date "+%Y.%m.%d")" existing_tag_revision=$(git tag | grep "$new_tag" | sort -r | head -n 1 | cut -d- -f3 | cut -dr -f2) if [ -n "$existing_tag_revision" ]; then tag_rev=$((existing_tag_revision + 1)) else tag_rev=1 fi new_tag="${new_tag}-r${tag_rev}" git tag "$new_tag" git push --tags echo "::set-output name=tag_name::$new_tag" - name: Publish GitHub release uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} file: "*.zip" file_glob: true release_name: "Bootstrap archives for Termux application" tag: ${{ steps.get_tag.outputs.tag_name }} body: ${{ steps.get_checksums.outputs.checksums }}