Skip to content

housekeeping: update security policy, add bash strict mode to codespa… #2

housekeeping: update security policy, add bash strict mode to codespa…

housekeeping: update security policy, add bash strict mode to codespa… #2

Workflow file for this run

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.exit_code }}
new_version: ${{ steps.check.outputs.exit_code }}
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: ${{ (needs.version-check.outputs.version_changed == 'true') && (github.ref == 'refs/heads/main') }}
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
if: steps.check.outputs.version_changed == 'true'
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