Release #89
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release | |
on: | |
push: | |
tags: | |
- "v*.*.*" | |
permissions: write-all | |
jobs: | |
check-versions: | |
runs-on: ubuntu-latest | |
outputs: | |
semver: ${{ steps.validate.outputs.semver }} | |
steps: | |
- name: 'Checkout' | |
uses: actions/checkout@v4 | |
- name: 'Validate versions match (tag, backend, frontend, Android)' | |
id: validate | |
shell: bash | |
run: | | |
semver=$(git describe --tags --abbrev=0) | |
IFS=- | |
read -ra semverArray <<< $semver | |
tagV=$(echo ${semverArray[0]} | sed 's/v//') | |
clientV=$(jq -r .version frontend/package.json) | |
androidV=$(grep -oP '(?<=versionName ").*?((?=\-)|$)' mobile/android/app/build.gradle) | |
coordinatorV=$(jq -r .major version.json).$(jq -r .minor version.json).$(jq -r .patch version.json) | |
printf "Client version: ${clientV}\nCoordinator version: ${coordinatorV}\nGit tag version: ${tagV}\n" | |
if [ "$coordinatorV" = "$clientV" ] && [ "$coordinatorV" = "$tagV" ] && [ "$coordinatorV" = "$androidV" ]; then | |
echo "Versions match!" | |
echo '::set-output name=semver::'$semver | |
else | |
echo "Versions do not match! You might have forgotten to update the version on a component."; exit $ERRCODE; | |
fi | |
frontend-build: | |
uses: RoboSats/robosats/.github/workflows/frontend-build.yml@main | |
needs: check-versions | |
with: | |
semver: ${{ needs.check-versions.outputs.semver }} | |
integration-tests: | |
uses: RoboSats/robosats/.github/workflows/integration-tests.yml@main | |
needs: [frontend-build, check-versions] | |
coordinator-image: | |
uses: RoboSats/robosats/.github/workflows/coordinator-image.yml@main | |
needs: [frontend-build, integration-tests, check-versions] | |
secrets: inherit | |
with: | |
semver: ${{ needs.check-versions.outputs.semver }} | |
selfhosted-client-image: | |
uses: RoboSats/robosats/.github/workflows/selfhosted-client-image.yml@main | |
needs: [frontend-build, check-versions] | |
secrets: inherit | |
with: | |
semver: ${{ needs.check-versions.outputs.semver }} | |
web-client-image: | |
uses: RoboSats/robosats/.github/workflows/web-client-image.yml@main | |
needs: [frontend-build, check-versions] | |
secrets: inherit | |
with: | |
semver: ${{ needs.check-versions.outputs.semver }} | |
android-build: | |
uses: RoboSats/robosats/.github/workflows/android-build.yml@main | |
needs: [frontend-build, check-versions] | |
secrets: inherit | |
with: | |
semver: ${{ needs.check-versions.outputs.semver }} | |
release: | |
needs: [check-versions, integration-tests, coordinator-image, selfhosted-client-image, web-client-image, android-build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Release | |
id: create-release | |
uses: softprops/action-gh-release@v2 | |
with: | |
body_path: release_notes.md | |
generate_release_notes: true | |
# Upload app-universal-release APK artifact asset | |
- name: 'Download universal APK Artifact' | |
uses: actions/download-artifact@v4 | |
with: | |
name: robosats-${{ needs.check-versions.outputs.semver }}-universal.apk | |
path: . | |
- name: 'Upload universal APK Asset' | |
id: upload-universal-release-asset | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create-release.outputs.upload_url }} | |
asset_path: app-universal-release.apk | |
asset_name: robosats-${{ needs.check-versions.outputs.semver }}-universal.apk | |
asset_content_type: application/apk | |
# Upload app-arm64-v8a-release APK artifact asset | |
- name: 'Download arm64-v8a APK Artifact' | |
uses: actions/download-artifact@v4 | |
with: | |
name: robosats-${{ needs.check-versions.outputs.semver }}-arm64-v8a.apk | |
path: . | |
- name: 'Upload arm64-v8a APK Asset' | |
id: upload-arm64-v8a-release-asset | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create-release.outputs.upload_url }} | |
asset_path: app-arm64-v8a-release.apk | |
asset_name: robosats-${{ needs.check-versions.outputs.semver }}-arm64-v8a.apk | |
asset_content_type: application/apk | |
# Upload app-armeabi-v7a-release APK artifact asset | |
- name: 'Download armeabi-v7a APK Artifact' | |
uses: actions/download-artifact@v4 | |
with: | |
name: robosats-${{ needs.check-versions.outputs.semver }}-armeabi-v7a.apk | |
path: . | |
- name: 'Upload armeabi-v7a APK Asset' | |
id: upload-armeabi-v7a-release-asset | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create-release.outputs.upload_url }} | |
asset_path: app-armeabi-v7a-release.apk | |
asset_name: robosats-${{ needs.check-versions.outputs.semver }}-armeabi-v7a.apk | |
asset_content_type: application/apk | |
# Upload app-x86_64-release APK artifact asset | |
- name: 'Download x86_64 APK Artifact' | |
uses: actions/download-artifact@v4 | |
with: | |
name: robosats-${{ needs.check-versions.outputs.semver }}-x86_64.apk | |
path: . | |
- name: 'Upload x86_64 APK Asset' | |
id: upload-x86_64-release-asset | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create-release.outputs.upload_url }} | |
asset_path: app-x86_64-release.apk | |
asset_name: robosats-${{ needs.check-versions.outputs.semver }}-x86_64.apk | |
asset_content_type: application/apk | |
# Upload app-x86-release APK artifact asset | |
- name: 'Download x86 APK Artifact' | |
uses: actions/download-artifact@v4 | |
with: | |
name: robosats-${{ needs.check-versions.outputs.semver }}-x86.apk | |
path: . | |
- name: 'Upload x86 APK Asset' | |
id: upload-x86-release-asset | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create-release.outputs.upload_url }} | |
asset_path: app-x86-release.apk | |
asset_name: robosats-${{ needs.check-versions.outputs.semver }}-x86.apk | |
asset_content_type: application/apk |