diff --git a/.github/tests/test-summary.json b/.github/tests/test-summary.json index 3d40825..cfc3141 100644 --- a/.github/tests/test-summary.json +++ b/.github/tests/test-summary.json @@ -1 +1 @@ -{"numFailedTestSuites":0,"numFailedTests":0,"numPassedTestSuites":1,"numPassedTests":6,"numPendingTestSuites":0,"numPendingTests":0,"numRuntimeErrorTestSuites":0,"numTodoTests":0,"numTotalTestSuites":1,"numTotalTests":6,"openHandles":[],"snapshot":{"added":0,"didUpdate":false,"failure":false,"filesAdded":0,"filesRemoved":0,"filesRemovedList":[],"filesUnmatched":0,"filesUpdated":0,"matched":0,"total":0,"unchecked":0,"uncheckedKeysByFile":[],"unmatched":0,"updated":0},"startTime":1705529451649,"success":true,"testResults":[{"assertionResults":[{"ancestorTitles":["Testing Client"],"duration":7,"failureDetails":[],"failureMessages":[],"fullName":"Testing Client Discovery URL is a 404 and returns an error","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"passed","title":"Discovery URL is a 404 and returns an error"},{"ancestorTitles":["Testing Client"],"duration":1,"failureDetails":[],"failureMessages":[],"fullName":"Testing Client Discovery URL is not a valid JSON file","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"passed","title":"Discovery URL is not a valid JSON file"},{"ancestorTitles":["Testing Client"],"duration":1,"failureDetails":[],"failureMessages":[],"fullName":"Testing Client Try to download with incomplete metadata","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"passed","title":"Try to download with incomplete metadata"},{"ancestorTitles":["Testing Client"],"duration":1,"failureDetails":[],"failureMessages":[],"fullName":"Testing Client Get and download a file","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"passed","title":"Get and download a file"},{"ancestorTitles":["Testing Client"],"duration":2,"failureDetails":[],"failureMessages":[],"fullName":"Testing Client Download file creates an a tag with the blob url and clicks it","invocations":1,"location":null,"numPassingAsserts":6,"retryReasons":[],"status":"passed","title":"Download file creates an a tag with the blob url and clicks it"},{"ancestorTitles":["Testing Client"],"duration":1,"failureDetails":[],"failureMessages":[],"fullName":"Testing Client Download file a tag sets a default download value of ''","invocations":1,"location":null,"numPassingAsserts":6,"retryReasons":[],"status":"passed","title":"Download file a tag sets a default download value of ''"}],"endTime":1705529453993,"message":"","name":"/home/runner/work/web-client/web-client/test/index.test.ts","startTime":1705529452029,"status":"passed","summary":""}],"wasInterrupted":false,"coverageMap":{"/home/runner/work/web-client/web-client/src/index.ts":{"path":"/home/runner/work/web-client/web-client/src/index.ts","statementMap":{"0":{"start":{"line":9,"column":2},"end":{"line":9,"column":null}},"1":{"start":{"line":13,"column":27},"end":{"line":13,"column":83}},"2":{"start":{"line":15,"column":12},"end":{"line":15,"column":41}},"3":{"start":{"line":17,"column":2},"end":{"line":19,"column":null}},"4":{"start":{"line":18,"column":3},"end":{"line":18,"column":null}},"5":{"start":{"line":21,"column":2},"end":{"line":25,"column":null}},"6":{"start":{"line":22,"column":3},"end":{"line":22,"column":null}},"7":{"start":{"line":24,"column":3},"end":{"line":24,"column":null}},"8":{"start":{"line":29,"column":19},"end":{"line":29,"column":43}},"9":{"start":{"line":31,"column":2},"end":{"line":33,"column":null}},"10":{"start":{"line":32,"column":3},"end":{"line":32,"column":null}},"11":{"start":{"line":35,"column":12},"end":{"line":35,"column":50}},"12":{"start":{"line":37,"column":2},"end":{"line":37,"column":null}},"13":{"start":{"line":4,"column":0},"end":{"line":4,"column":21}},"14":{"start":{"line":42,"column":9},"end":{"line":42,"column":36}},"15":{"start":{"line":43,"column":1},"end":{"line":43,"column":null}},"16":{"start":{"line":44,"column":1},"end":{"line":44,"column":null}},"17":{"start":{"line":45,"column":1},"end":{"line":45,"column":null}},"18":{"start":{"line":46,"column":1},"end":{"line":46,"column":26}},"19":{"start":{"line":47,"column":1},"end":{"line":47,"column":null}},"20":{"start":{"line":41,"column":0},"end":{"line":41,"column":16}}},"fnMap":{"0":{"name":"(anonymous_7)","decl":{"start":{"line":8,"column":1},"end":{"line":8,"column":13}},"loc":{"start":{"line":8,"column":33},"end":{"line":10,"column":2}}},"1":{"name":"(anonymous_8)","decl":{"start":{"line":12,"column":7},"end":{"line":12,"column":18}},"loc":{"start":{"line":12,"column":18},"end":{"line":26,"column":null}}},"2":{"name":"(anonymous_10)","decl":{"start":{"line":28,"column":7},"end":{"line":28,"column":14}},"loc":{"start":{"line":28,"column":27},"end":{"line":38,"column":null}}},"3":{"name":"downloadUrl","decl":{"start":{"line":41,"column":16},"end":{"line":41,"column":27}},"loc":{"start":{"line":41,"column":62},"end":{"line":48,"column":1}}}},"branchMap":{"0":{"loc":{"start":{"line":17,"column":2},"end":{"line":19,"column":null}},"type":"if","locations":[{"start":{"line":17,"column":2},"end":{"line":19,"column":null}}]},"1":{"loc":{"start":{"line":31,"column":2},"end":{"line":33,"column":null}},"type":"if","locations":[{"start":{"line":31,"column":2},"end":{"line":33,"column":null}}]},"2":{"loc":{"start":{"line":41,"column":41},"end":{"line":41,"column":62}},"type":"default-arg","locations":[{"start":{"line":41,"column":60},"end":{"line":41,"column":62}}]}},"s":{"0":4,"1":2,"2":2,"3":2,"4":1,"5":1,"6":1,"7":1,"8":2,"9":2,"10":1,"11":1,"12":1,"13":1,"14":2,"15":2,"16":2,"17":2,"18":2,"19":2,"20":1},"f":{"0":4,"1":2,"2":2,"3":2},"b":{"0":[1],"1":[1],"2":[1]}}}} +{"numFailedTestSuites":0,"numFailedTests":0,"numPassedTestSuites":1,"numPassedTests":6,"numPendingTestSuites":0,"numPendingTests":0,"numRuntimeErrorTestSuites":0,"numTodoTests":0,"numTotalTestSuites":1,"numTotalTests":6,"openHandles":[],"snapshot":{"added":0,"didUpdate":false,"failure":false,"filesAdded":0,"filesRemoved":0,"filesRemovedList":[],"filesUnmatched":0,"filesUpdated":0,"matched":0,"total":0,"unchecked":0,"uncheckedKeysByFile":[],"unmatched":0,"updated":0},"startTime":1718776143841,"success":true,"testResults":[{"assertionResults":[{"ancestorTitles":["Testing Client"],"duration":8,"failureDetails":[],"failureMessages":[],"fullName":"Testing Client Discovery URL is a 404 and returns an error","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"passed","title":"Discovery URL is a 404 and returns an error"},{"ancestorTitles":["Testing Client"],"duration":1,"failureDetails":[],"failureMessages":[],"fullName":"Testing Client Discovery URL is not a valid JSON file","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"passed","title":"Discovery URL is not a valid JSON file"},{"ancestorTitles":["Testing Client"],"duration":1,"failureDetails":[],"failureMessages":[],"fullName":"Testing Client Try to download with incomplete metadata","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"passed","title":"Try to download with incomplete metadata"},{"ancestorTitles":["Testing Client"],"duration":2,"failureDetails":[],"failureMessages":[],"fullName":"Testing Client Get and download a file","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"passed","title":"Get and download a file"},{"ancestorTitles":["Testing Client"],"duration":2,"failureDetails":[],"failureMessages":[],"fullName":"Testing Client Download file creates an a tag with the blob url and clicks it","invocations":1,"location":null,"numPassingAsserts":6,"retryReasons":[],"status":"passed","title":"Download file creates an a tag with the blob url and clicks it"},{"ancestorTitles":["Testing Client"],"duration":1,"failureDetails":[],"failureMessages":[],"fullName":"Testing Client Download file a tag sets a default download value of ''","invocations":1,"location":null,"numPassingAsserts":6,"retryReasons":[],"status":"passed","title":"Download file a tag sets a default download value of ''"}],"endTime":1718776146412,"message":"","name":"/home/runner/work/web-client/web-client/test/index.test.ts","startTime":1718776144207,"status":"passed","summary":""}],"wasInterrupted":false,"coverageMap":{"/home/runner/work/web-client/web-client/src/index.ts":{"path":"/home/runner/work/web-client/web-client/src/index.ts","statementMap":{"0":{"start":{"line":9,"column":2},"end":{"line":9,"column":null}},"1":{"start":{"line":13,"column":27},"end":{"line":13,"column":83}},"2":{"start":{"line":15,"column":12},"end":{"line":15,"column":41}},"3":{"start":{"line":17,"column":2},"end":{"line":19,"column":null}},"4":{"start":{"line":18,"column":3},"end":{"line":18,"column":null}},"5":{"start":{"line":21,"column":2},"end":{"line":25,"column":null}},"6":{"start":{"line":22,"column":3},"end":{"line":22,"column":null}},"7":{"start":{"line":24,"column":3},"end":{"line":24,"column":null}},"8":{"start":{"line":29,"column":19},"end":{"line":29,"column":43}},"9":{"start":{"line":31,"column":2},"end":{"line":33,"column":null}},"10":{"start":{"line":32,"column":3},"end":{"line":32,"column":null}},"11":{"start":{"line":35,"column":12},"end":{"line":35,"column":50}},"12":{"start":{"line":37,"column":2},"end":{"line":37,"column":null}},"13":{"start":{"line":4,"column":0},"end":{"line":4,"column":21}},"14":{"start":{"line":42,"column":9},"end":{"line":42,"column":36}},"15":{"start":{"line":43,"column":1},"end":{"line":43,"column":null}},"16":{"start":{"line":44,"column":1},"end":{"line":44,"column":null}},"17":{"start":{"line":45,"column":1},"end":{"line":45,"column":null}},"18":{"start":{"line":46,"column":1},"end":{"line":46,"column":26}},"19":{"start":{"line":47,"column":1},"end":{"line":47,"column":null}},"20":{"start":{"line":41,"column":0},"end":{"line":41,"column":16}}},"fnMap":{"0":{"name":"(anonymous_7)","decl":{"start":{"line":8,"column":1},"end":{"line":8,"column":13}},"loc":{"start":{"line":8,"column":33},"end":{"line":10,"column":2}}},"1":{"name":"(anonymous_8)","decl":{"start":{"line":12,"column":7},"end":{"line":12,"column":18}},"loc":{"start":{"line":12,"column":18},"end":{"line":26,"column":null}}},"2":{"name":"(anonymous_10)","decl":{"start":{"line":28,"column":7},"end":{"line":28,"column":14}},"loc":{"start":{"line":28,"column":27},"end":{"line":38,"column":null}}},"3":{"name":"downloadUrl","decl":{"start":{"line":41,"column":16},"end":{"line":41,"column":27}},"loc":{"start":{"line":41,"column":62},"end":{"line":48,"column":1}}}},"branchMap":{"0":{"loc":{"start":{"line":17,"column":2},"end":{"line":19,"column":null}},"type":"if","locations":[{"start":{"line":17,"column":2},"end":{"line":19,"column":null}}]},"1":{"loc":{"start":{"line":31,"column":2},"end":{"line":33,"column":null}},"type":"if","locations":[{"start":{"line":31,"column":2},"end":{"line":33,"column":null}}]},"2":{"loc":{"start":{"line":41,"column":41},"end":{"line":41,"column":62}},"type":"default-arg","locations":[{"start":{"line":41,"column":60},"end":{"line":41,"column":62}}]}},"s":{"0":4,"1":2,"2":2,"3":2,"4":1,"5":1,"6":1,"7":1,"8":2,"9":2,"10":1,"11":1,"12":1,"13":1,"14":2,"15":2,"16":2,"17":2,"18":2,"19":2,"20":1},"f":{"0":4,"1":2,"2":2,"3":2},"b":{"0":[1],"1":[1],"2":[1]}}}} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..3d9c6d5 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,92 @@ +name: Publish to npm + +on: + push: + tags: + - '*.*.*' + - '*.*.*-beta.*' + +permissions: + contents: write + actions: write + +jobs: + pre-release: + runs-on: ubuntu-latest + outputs: + tag: ${{ steps.extract_tag.outputs.tag }} + steps: + + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.ref }} + + - name: Fetch latest changes and tags + run: | + git fetch origin main + git fetch --tags + + - name: Increment version + id: increment_tag + run: | + # Get the latest tag + latest_tag=$(git describe --tags $(git rev-list --tags --max-count=1)) + + # Extract the parts of the version + IFS='.' read -r -a parts <<< "${latest_tag//v/}" + major=${parts[0]} + minor=${parts[1]} + patch=${parts[2]} + + # Increment the patch version + if [[ "${GITHUB_REF_NAME}" == *"-beta"* ]]; then + patch=$((patch+1)) + new_tag="v${major}.${minor}.${patch}-beta.1" + else + patch=$((patch+1)) + new_tag="v${major}.${minor}.${patch}" + fi + + echo "New tag: ${new_tag}" + echo "::set-output name=new_tag::${new_tag}" + + - name: Check Branch Checkout + run: | + echo "Current branch: $(git rev-parse --abbrev-ref HEAD)" + echo "Git status: $(git status)" + echo "Git log: $(git log -1)" + + - uses: actions/setup-node@v4 + with: + node-version: 20 + + - name: Update npm version + run: | + echo "Current directory: $(pwd)" + echo "Directory contents: $(ls -la)" + # Get the current tag and set the package.json version to it + npm version ${GITHUB_REF_NAME:1} --no-git-tag-version + # Add some verbosity + echo "NPM version is now $(npm version)" + + - name: Commit the updated package.json + run: | + # Add the github user + git config user.name "GitHub Actions" + git config user.email "action@github.com" + + # Add the package.json + git add package.json + git add package-lock.json + + # Commit the changes + git commit -m "Update package.json version" + + - name: Publish to npm + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + run: | + echo "//registry.npmjs.org/:_authToken=\${NODE_AUTH_TOKEN}" > ~/.npmrc + npm publish diff --git a/package-lock.json b/package-lock.json index f86432b..e35b295 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@pelicanplatform/web-client", - "version": "0.0.4", + "version": "0.0.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@pelicanplatform/web-client", - "version": "0.0.4", + "version": "0.0.6", "license": "Apache-2.0", "devDependencies": { "@babel/preset-typescript": "^7.23.3", diff --git a/package.json b/package.json index 849ebc3..de20c2c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@pelicanplatform/web-client", - "version": "0.0.4", + "version": "0.0.6", "description": "Pelican web client", "main": "dist/index.js", "types": "src/index.d.ts",