add support for downloading from browserjs to local fs #10
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: CI | |
| on: [push, pull_request, workflow_dispatch] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| version-check: | |
| name: Check Version | |
| runs-on: ubuntu-latest | |
| outputs: | |
| version_changed: ${{ steps.check.outputs.version_changed }} | |
| new_version: ${{ steps.check.outputs.new_version }} | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v2 | |
| - name: Check the version | |
| id: check | |
| run: | | |
| CURRENT_VERSION=$(jq -r .version package.json) | |
| echo "Current version: $CURRENT_VERSION" | |
| LATEST_VERSION=$(npm view @mercuryworkshop/anuraos-types versions --json | jq -r '.[-1]' || echo "0.0.0") | |
| echo "Latest NPM version: $LATEST_VERSION" | |
| if [ "$LATEST_VERSION" != "$CURRENT_VERSION" ]; | |
| then | |
| echo "Version changed" | |
| echo "version_changed=true" >> $GITHUB_OUTPUT | |
| echo "new_version=$CURRENT_VERSION" >> $GITHUB_OUTPUT | |
| else | |
| echo "Version not changed" | |
| echo "version_changed=false" >> $GITHUB_OUTPUT | |
| fi | |
| build: | |
| name: Build Anura | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "22" | |
| cache: "npm" | |
| - name: Install dependencies | |
| run: sudo apt update && sudo apt install -y git build-essential clang default-jre | |
| - name: Pack Anura | |
| run: make static | |
| - name: Upload Anura Static Artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: anura-static | |
| path: static/* | |
| retention-days: 90 | |
| - name: Upload Anura Types Artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: anura-types | |
| path: anuraos-types/* | |
| retention-days: 90 | |
| upload: | |
| name: Upload release | |
| runs-on: ubuntu-latest | |
| needs: build | |
| permissions: write-all | |
| if: github.ref == 'refs/heads/main' | |
| steps: | |
| - name: Delete old release and tag | |
| uses: dev-drprasad/[email protected] | |
| with: | |
| delete_release: true | |
| tag_name: latest | |
| github_token: ${{ github.token }} | |
| - name: Get artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: anura-static | |
| path: ./static | |
| - name: Zip anura Release | |
| run: cd static && zip -r ../anura.zip . && cd .. | |
| - name: Release unstable build to GitHub | |
| uses: ncipollo/release-action@v1 | |
| with: | |
| name: Continuous Build | |
| tag: latest | |
| commit: main | |
| body: "${{ github.event.head_commit.url }} ${{ github.event.head_commit.message }}" | |
| artifacts: "anura.zip" | |
| prerelease: true | |
| - name: Release tagged version to GitHub | |
| if: needs.version-check.outputs.version_changed == 'true' | |
| uses: ncipollo/release-action@v1 | |
| with: | |
| name: "${{ needs.version-check.outputs.new_version }}" | |
| tag: "v${{ needs.version-check.outputs.new_version }}" | |
| commit: main | |
| body: "${{ github.event.head_commit.url }} ${{ github.event.head_commit.message }}" | |
| artifacts: "anura.zip" | |
| publish: | |
| name: Publish anura-types to NPM | |
| runs-on: ubuntu-latest | |
| needs: [version-check, build] | |
| permissions: write-all | |
| if: github.ref == 'refs/heads/main' && needs.version-check.outputs.version_changed == 'true' | |
| steps: | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "22" | |
| registry-url: "https://registry.npmjs.org" | |
| - name: Get artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: anura-types | |
| path: . | |
| - name: Publish | |
| run: npm publish --access public --no-git-checks | |
| pages: | |
| name: Upload to Github Pages | |
| runs-on: ubuntu-latest | |
| needs: build | |
| permissions: write-all | |
| if: github.ref == 'refs/heads/main' | |
| steps: | |
| - name: Get artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: anura-static | |
| path: ./static | |
| - name: upload pages artifact | |
| uses: actions/upload-pages-artifact@v3 | |
| with: | |
| path: "./static" | |
| - name: deploy to github | |
| id: deployment | |
| uses: actions/deploy-pages@v4 |