diff --git a/.github/workflows/build-and-release.yaml b/.github/workflows/build-and-release.yaml new file mode 100644 index 0000000..b553450 --- /dev/null +++ b/.github/workflows/build-and-release.yaml @@ -0,0 +1,59 @@ +name: Build and Release + +on: + push: + branches: + - master + release: + types: [published] + workflow_dispatch: + +permissions: + contents: write + pages: write + id-token: write + packages: write + attestations: write + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: '22' + + - name: Install dependencies + run: npm ci + + - name: Build project + run: | + npm run build + + - name: Zip dist folder + run: | + cd dist + zip -r ../release.zip . + cd .. + + - name: Create Release with gh + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + export TAG_NAME=${{ github.event.release.tag_name }} + export TAG_NAME=${TAG_NAME:-"nightly"} + echo $TAG_NAME + mv release.zip release_${TAG_NAME}.zip + gh release create $TAG_NAME -t "$TAG_NAME" -n "$TAG_NAME" || true + gh release upload $TAG_NAME release_${TAG_NAME}.zip --clobber + gh release upload $TAG_NAME dist/js/fit-parser.js --clobber + gh release upload $TAG_NAME dist/js/gpx-parser.js --clobber + gh release upload $TAG_NAME dist/js/igc-parser.js --clobber + gh release upload $TAG_NAME dist/js/trackjoiner-min.js --clobber + gh release upload $TAG_NAME dist/js/trackjoiners.js --clobber +