# Sample workflow for building and deploying a Nuxt site to GitHub Pages # # To get started with Nuxt see: https://nuxtjs.org/docs/get-started/installation # name: Build on: # Runs on pushes targeting the default branch push: branches: ["main"] release: types: [published] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: read pages: write id-token: write # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. concurrency: group: "pages" cancel-in-progress: false jobs: # Build job build: permissions: contents: write runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Detect package manager id: detect-package-manager run: | if [ -f "${{ github.workspace }}/yarn.lock" ]; then echo "manager=yarn" >> $GITHUB_OUTPUT echo "command=install" >> $GITHUB_OUTPUT exit 0 elif [ -f "${{ github.workspace }}/package.json" ]; then echo "manager=npm" >> $GITHUB_OUTPUT echo "command=ci" >> $GITHUB_OUTPUT exit 0 else echo "Unable to determine package manager" exit 1 fi - name: Setup Node uses: actions/setup-node@v4 with: node-version: "22" cache: ${{ steps.detect-package-manager.outputs.manager }} # - name: Restore cache # uses: actions/cache@v4 # with: # path: | # dist # .nuxt # key: ${{ runner.os }}-nuxt-build-${{ hashFiles('dist') }} # restore-keys: | # ${{ runner.os }}-nuxt-build- - name: Install dependencies run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }} - name: Static HTML export with Nuxt run: ${{ steps.detect-package-manager.outputs.manager }} run generate - name: Zip files run: | mkdir -p artifacts ls -al ./dist ZIP_SRC=$(realpath dist) cd "$ZIP_SRC" zip -r ../../artifacts/rustfs-console-latest.zip . if [ "${{ github.event_name }}" = "release" ]; then mkdir -p ../../artifacts/${{ github.event.release.tag_name }} zip -r ../../artifacts/${{ github.event.release.tag_name }}/rustfs-console-${{ github.event.release.tag_name }}.zip . fi - uses: actions/upload-artifact@v4 name: Upload artifacts with: path: ./artifacts/rustfs-console-latest.zip - name: Upload to Bucket for `latest` uses: JohnGuan/oss-upload-action@main with: key-id: ${{ secrets.ALICLOUDOSS_KEY_ID }} key-secret: ${{ secrets.ALICLOUDOSS_KEY_SECRET }} region: oss-cn-beijing bucket: rustfs-artifacts assets: | ./artifacts/**:/artifacts/console/ # - name: Upload release asset for `latest` # if: ${{ github.event_name == 'release' }} # uses: softprops/action-gh-release@v2 # with: # files: ./artifacts/rustfs-console-latest.zip - name: Upload release asset `versioned` if: ${{ github.event_name == 'release' }} uses: softprops/action-gh-release@v2 with: files: ./artifacts/${{ github.event.release.tag_name }}/rustfs-console-${{ github.event.release.tag_name }}.zip