relative paths #748
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: CI | |
on: [push, pull_request, workflow_dispatch] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
name: Build Anura | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Use Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: "20.x" | |
- name: Install dependencies | |
run: sudo apt update && sudo apt install -y git build-essential clang default-jre | |
- name: Pull submodules | |
run: git submodule update --init | |
- name: Install Rust | |
run: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
- name: Pack Anura | |
run: source "$HOME/.cargo/env" && 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 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 | |
publish: | |
name: Publish anura-types to NPM | |
runs-on: ubuntu-latest | |
needs: build | |
permissions: write-all | |
steps: | |
- name: Setup Node.js | |
uses: actions/setup-node@v2 | |
with: | |
node-version: "20" | |
registry-url: "https://registry.npmjs.org" | |
- name: Get artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: anura-types | |
path: . | |
- name: Check the version | |
id: check | |
run: | | |
CURRENT_VERSION=$(jq -r .version package.json) | |
echo "Current version: $CURRENT_VERSION" | |
LATEST_TAG=$(npm view {pkg} version) | |
echo "Latest NPM version: $LATEST_VERSION" | |
LATEST_VERSION=${LATEST_TAG} | |
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 | |
- name: Publish | |
if: steps.check.outputs.version_changed == 'true' | |
run: npm publish --access public --no-git-checks | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
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 |