diff --git a/.circleci/config.yml b/.circleci/config.yml index 5cd72f893a..5da66eafc6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -5,7 +5,7 @@ orbs: executors: pw-focal-development: docker: - - image: mcr.microsoft.com/playwright:v1.45.2-focal + - image: mcr.microsoft.com/playwright:v1.47.2-focal environment: NODE_ENV: development # Needed to ensure 'dist' folder created and devDependencies installed PERCY_POSTINSTALL_BROWSER: "true" # Needed to store the percy browser in cache deps @@ -198,7 +198,7 @@ jobs: steps: - build_and_install: node-version: lts/hydrogen - - run: npx playwright@1.45.2 install #Necessary for bare ubuntu machine + - run: npx playwright@1.47.2 install #Necessary for bare ubuntu machine - run: | export $(cat src/plugins/persistence/couch/.env.ci | xargs) docker compose -f src/plugins/persistence/couch/couchdb-compose.yaml up --detach diff --git a/.github/workflows/e2e-couchdb.yml b/.github/workflows/e2e-couchdb.yml index 1a8800324c..2003662947 100644 --- a/.github/workflows/e2e-couchdb.yml +++ b/.github/workflows/e2e-couchdb.yml @@ -37,7 +37,7 @@ jobs: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - run: npx playwright@1.45.2 install + - run: npx playwright@1.47.2 install - name: Start CouchDB Docker Container and Init with Setup Scripts run: | diff --git a/.github/workflows/e2e-flakefinder.yml b/.github/workflows/e2e-flakefinder.yml index c7eccf222d..c06edea653 100644 --- a/.github/workflows/e2e-flakefinder.yml +++ b/.github/workflows/e2e-flakefinder.yml @@ -30,7 +30,7 @@ jobs: restore-keys: | ${{ runner.os }}-node- - - run: npx playwright@1.45.2 install + - run: npx playwright@1.47.2 install - run: npm ci --no-audit --progress=false - name: Run E2E Tests (Repeated 10 Times) diff --git a/.github/workflows/e2e-perf.yml b/.github/workflows/e2e-perf.yml index 27bfad23cb..2553336f11 100644 --- a/.github/workflows/e2e-perf.yml +++ b/.github/workflows/e2e-perf.yml @@ -28,7 +28,7 @@ jobs: restore-keys: | ${{ runner.os }}-node- - - run: npx playwright@1.45.2 install + - run: npx playwright@1.47.2 install - run: npm ci --no-audit --progress=false - run: npm run test:perf:localhost - run: npm run test:perf:contract diff --git a/.github/workflows/e2e-pr.yml b/.github/workflows/e2e-pr.yml index 9c0724f645..869fd2dfbf 100644 --- a/.github/workflows/e2e-pr.yml +++ b/.github/workflows/e2e-pr.yml @@ -33,7 +33,7 @@ jobs: restore-keys: | ${{ runner.os }}-node- - - run: npx playwright@1.45.2 install + - run: npx playwright@1.47.2 install - run: npx playwright install chrome-beta - run: npm ci --no-audit --progress=false - run: npm run test:e2e:full -- --max-failures=40 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000000..045dfedb18 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,116 @@ +# GitHub Actions Workflow for Automated Releases + +name: Automated Release Workflow + +on: + schedule: + # Nightly builds at 6 PM PST every day + - cron: '0 2 * * *' + release: + types: + - created + - published + +jobs: + nightly-build: + if: github.event_name == 'schedule' + runs-on: ubuntu-latest + name: Nightly Build and Release + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Set Up Node.js + uses: actions/setup-node@v4 + with: + node-version: 'lts/iron' # Specify your Node.js version + registry-url: 'https://registry.npmjs.org/' + + - name: Install Dependencies + run: npm ci + + - name: Bump Version for Nightly + id: bump_version + run: | + PACKAGE_VERSION=$(node -p "require('./package.json').version") + DATE=$(date +%Y%m%d) + NIGHTLY_VERSION=$(echo $PACKAGE_VERSION | awk -F. -v OFS=. '{$NF+=1; print}')-nightly-$DATE + echo "NIGHTLY_VERSION=${NIGHTLY_VERSION}" >> $GITHUB_ENV + + - name: Update package.json + run: | + npm version $NIGHTLY_VERSION --no-git-tag-version + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git add package.json + git commit -m "chore: bump version to $NIGHTLY_VERSION for nightly build" + + - name: Push Changes + uses: ad-m/github-push-action@v0.6.0 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + branch: ${{ github.ref }} + + - name: Build Project + run: npm run build:prod + + - name: Publish Nightly to NPM + run: | + echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc + npm publish --access public --tag nightly + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + + prerelease-build: + if: github.event.release.prerelease == true + runs-on: ubuntu-latest + name: Pre-release (Beta) Build and Publish + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Set Up Node.js + uses: actions/setup-node@v4 + with: + node-version: '16' # Specify your Node.js version + registry-url: 'https://registry.npmjs.org/' + + - name: Install Dependencies + run: npm ci + + - name: Build Project + run: npm run build:prod + + - name: Publish Beta to NPM + run: | + echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc + npm publish --access public --tag beta + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + + stable-release-build: + if: github.event.release.prerelease == false + runs-on: ubuntu-latest + name: Stable Release Build and Publish + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Set Up Node.js + uses: actions/setup-node@v4 + with: + node-version: '16' # Specify your Node.js version + registry-url: 'https://registry.npmjs.org/' + + - name: Install Dependencies + run: npm ci + + - name: Build Project + run: npm run build:prod + + - name: Publish to NPM + run: | + echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc + npm publish --access public + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} \ No newline at end of file diff --git a/e2e/package.json b/e2e/package.json index 1e55aaa7e5..61000a86d0 100644 --- a/e2e/package.json +++ b/e2e/package.json @@ -16,7 +16,7 @@ "devDependencies": { "@percy/cli": "1.27.4", "@percy/playwright": "1.0.4", - "@playwright/test": "1.45.2", + "@playwright/test": "1.47.2", "@axe-core/playwright": "4.8.5" }, "author": { @@ -24,4 +24,4 @@ "url": "https://www.nasa.gov" }, "license": "Apache-2.0" -} +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 4eff9deb1a..dc6193af5f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -103,7 +103,7 @@ "@axe-core/playwright": "4.8.5", "@percy/cli": "1.27.4", "@percy/playwright": "1.0.4", - "@playwright/test": "1.45.2" + "@playwright/test": "1.47.2" } }, "e2e/node_modules/@percy/cli": { @@ -1547,12 +1547,13 @@ } }, "node_modules/@playwright/test": { - "version": "1.45.2", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.45.2.tgz", - "integrity": "sha512-JxG9eq92ET75EbVi3s+4sYbcG7q72ECeZNbdBlaMkGcNbiDQ4cAi8U2QP5oKkOx+1gpaiL1LDStmzCaEM1Z6fQ==", + "version": "1.47.2", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.47.2.tgz", + "integrity": "sha512-jTXRsoSPONAs8Za9QEQdyjFn+0ZQFjCiIztAIF6bi1HqhBzG9Ma7g1WotyiGqFSBRZjIEqMdT8RUlbk1QVhzCQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "playwright": "1.45.2" + "playwright": "1.47.2" }, "bin": { "playwright": "cli.js" @@ -8661,12 +8662,13 @@ } }, "node_modules/playwright": { - "version": "1.45.2", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.45.2.tgz", - "integrity": "sha512-ReywF2t/0teRvNBpfIgh5e4wnrI/8Su8ssdo5XsQKpjxJj+jspm00jSoz9BTg91TT0c9HRjXO7LBNVrgYj9X0g==", + "version": "1.47.2", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.47.2.tgz", + "integrity": "sha512-nx1cLMmQWqmA3UsnjaaokyoUpdVaaDhJhMoxX2qj3McpjnsqFHs516QAKYhqHAgOP+oCFTEOCOAaD1RgD/RQfA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.45.2" + "playwright-core": "1.47.2" }, "bin": { "playwright": "cli.js" @@ -8679,10 +8681,11 @@ } }, "node_modules/playwright-core": { - "version": "1.45.2", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.45.2.tgz", - "integrity": "sha512-ha175tAWb0dTK0X4orvBIqi3jGEt701SMxMhyujxNrgd8K0Uy5wMSwwcQHtyB4om7INUkfndx02XnQ2p6dvLDw==", + "version": "1.47.2", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.47.2.tgz", + "integrity": "sha512-3JvMfF+9LJfe16l7AbSmU555PaTl2tPyQsVInqm3id16pdDfvZ8TTZ/pyzmkbDrZTQefyzU7AIHlZqQnxpqHVQ==", "dev": true, + "license": "Apache-2.0", "bin": { "playwright-core": "cli.js" }, @@ -8696,6 +8699,7 @@ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin"