name: Build and Release on: push: tags: - 'v*' # Trigger the workflow when a tag starting with 'v' is pushed (e.g., v1.0.0) jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Deno uses: denoland/setup-deno@61fe2df320078202e33d7d5ad347e7dcfa0e8f31 with: deno-version: 'v2.0.6' - name: Install modulesdsafdasf run: deno install - name: Make shell script executable run: chmod +x ./buildall.sh - name: Run buildall.sh run: ./buildall.sh - name: List contents of build/compressed (debugging step) run: ls -R build/compressed - name: Upload build artifacts uses: actions/upload-artifact@v3 with: name: compressed-files path: build/compressed/* release: needs: build runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: List contents of build/compressed (debugging step) run: ls -R build/compressed # Double-check the files before uploading # Step to check if the release already exists - name: Check if release exists id: check_release run: | TAG="${GITHUB_REF##*/}" RELEASE=$(curl -s --header "Authorization: token ${{ secrets.GH_TOKEN }}" \ "https://api.github.com/repos/${{ github.repository }}/releases/tags/$TAG") echo "Release: $RELEASE" if [[ "$RELEASE" != "{}" ]]; then echo "Release already exists for tag $TAG" echo "exists=true" >> $GITHUB_ENV else echo "Release does not exist for tag $TAG" echo "exists=false" >> $GITHUB_ENV # Conditional step to create release only if it doesn't exist - name: Create GitHub Release if: env.exists == 'false' uses: softprops/action-gh-release@v1 with: files: build/compressed/* tag_name: ${{ github.ref }} name: Release ${{ github.ref }} # Use name instead of release_name body: "Automated release for version ${{ github.ref }}" env: GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}