Library maintenance (#3) #4
Workflow file for this run
This file contains hidden or 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 Package | |
| on: | |
| push: | |
| tags: | |
| - 'v*' # Trigger on tags like v1.0.0 | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| build_android: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install Nix | |
| uses: DeterminateSystems/nix-installer-action@main | |
| - name: Enable Nix Magic Cache | |
| uses: DeterminateSystems/magic-nix-cache-action@main | |
| - name: Install React Native app dependencies | |
| run: nix develop .# --command bash -c "yarn install --immutable" | |
| - name: Build example Android app | |
| run: nix develop .# --command bash -c "yarn example build:android" | |
| build_ios: | |
| runs-on: macos-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install Nix | |
| uses: DeterminateSystems/nix-installer-action@main | |
| - name: Enable Nix Magic Cache | |
| uses: DeterminateSystems/magic-nix-cache-action@main | |
| - name: Install React Native app dependencies and Bundle for iOS example | |
| run: nix develop .# --command bash -c "yarn install --immutable && yarn example ios:prebuild" | |
| - name: Build example iOS app | |
| run: nix develop .# --command bash -c "yarn example build:ios:xcode" | |
| publish_npm_and_github_release: | |
| runs-on: ubuntu-latest | |
| needs: | |
| - build_android | |
| - build_ios | |
| permissions: | |
| contents: write # Required to create a release and upload assets | |
| steps: | |
| - name: Checkout code at tag | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ github.ref }} # Checkout the specific tag | |
| fetch-depth: 0 # release-it needs full history | |
| - name: Install Nix | |
| uses: DeterminateSystems/nix-installer-action@main | |
| - name: Enable Nix Magic Cache | |
| uses: DeterminateSystems/magic-nix-cache-action@main | |
| - name: Configure npm for publishing | |
| run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > .npmrc | |
| shell: bash | |
| - name: Install dependencies for publishing | |
| run: nix develop .# --command bash -c "yarn install --immutable" | |
| - name: Prepare package for release | |
| run: nix develop .# --command bash -c "yarn prepare" | |
| - name: Publish to npm and Create GitHub Release | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
| run: | | |
| TAG_NAME="${{ github.ref_name }}" | |
| VERSION="${TAG_NAME#v}" # Strip 'v' prefix if present | |
| echo "Releasing version: $VERSION based on tag: $TAG_NAME" | |
| nix develop .# --command bash -c "yarn release $VERSION --ci --no-git" |