From f71e328850656309002087a6bfa238c5aa9022f3 Mon Sep 17 00:00:00 2001 From: Lucas Nogueira Date: Tue, 28 Sep 2021 10:10:07 -0300 Subject: [PATCH] feat(ci): setup --- .changes/config.json | 26 ++++++ .changes/initial-release.md | 6 ++ .changes/readme.md | 17 ++++ .github/workflows/audit.yml | 26 ++++++ .github/workflows/covector-status.yml | 15 ++++ .../workflows/covector-version-or-publish.yml | 37 +++++++++ .github/workflows/format.yml | 30 +++++++ .github/workflows/lint.yml | 35 ++++++++ .github/workflows/test.yml | 80 +++++++++++++++++++ 9 files changed, 272 insertions(+) create mode 100755 .changes/config.json create mode 100644 .changes/initial-release.md create mode 100755 .changes/readme.md create mode 100644 .github/workflows/audit.yml create mode 100755 .github/workflows/covector-status.yml create mode 100755 .github/workflows/covector-version-or-publish.yml create mode 100644 .github/workflows/format.yml create mode 100644 .github/workflows/lint.yml create mode 100755 .github/workflows/test.yml diff --git a/.changes/config.json b/.changes/config.json new file mode 100755 index 00000000..92afd44f --- /dev/null +++ b/.changes/config.json @@ -0,0 +1,26 @@ +{ + "gitSiteUrl": "https://www.github.com/tauri-apps/tauri-plugin-websocket/", + "pkgManagers": { + "rust": { + "version": true, + "publish": true, + "getPublishedVersion": "cargo search ${ pkg.pkg } --limit 1 | sed -nE 's/^[^\"]*\"//; s/\".*//1p' -" + }, + "javascript": { + "version": true, + "publish": true, + "getPublishedVersion": "npm view ${ pkgFile.pkg.name } version" + } + }, + "packages": { + "tauri-plugin-websocket-api": { + "path": "./typescript", + "manager": "javascript", + "dependencies": ["tauri-plugin-websocket"] + }, + "tauri-plugin-websocket": { + "path": ".", + "manager": "rust" + } + } +} diff --git a/.changes/initial-release.md b/.changes/initial-release.md new file mode 100644 index 00000000..1800de8a --- /dev/null +++ b/.changes/initial-release.md @@ -0,0 +1,6 @@ +--- +"tauri-plugin-websocket-api": patch +"tauri-plugin-websocket": patch +--- + +Initial release. diff --git a/.changes/readme.md b/.changes/readme.md new file mode 100755 index 00000000..d7beed06 --- /dev/null +++ b/.changes/readme.md @@ -0,0 +1,17 @@ +# Changes +##### via https://github.com/jbolda/covector + +As you create PRs and make changes that require a version bump, please add a new markdown file in this folder. You do not note the version *number*, but rather the type of bump that you expect: major, minor, or patch. The filename is not important, as long as it is a `.md`, but we recommend it represents the overall change for our sanity. + +When you select the version bump required, you do *not* need to consider depedencies. Only note the package with the actual change, and any packages that depend on that package will be bumped automatically in the process. + +Use the following format: +```md +--- +"tauri-plugin-websocket": minor +"tauri-plugin-websocket-api": minor +--- + +Change summary goes here + +``` diff --git a/.github/workflows/audit.yml b/.github/workflows/audit.yml new file mode 100644 index 00000000..890ca1e4 --- /dev/null +++ b/.github/workflows/audit.yml @@ -0,0 +1,26 @@ +name: Audit + +on: + schedule: + - cron: '0 0 * * *' + push: + branches: + - main + paths: + - "**/Cargo.lock" + - "**/Cargo.toml" + pull_request: + branches: + - main + paths: + - "**/Cargo.lock" + - "**/Cargo.toml" + +jobs: + audit: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions-rs/audit-check@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/covector-status.yml b/.github/workflows/covector-status.yml new file mode 100755 index 00000000..5ecb235e --- /dev/null +++ b/.github/workflows/covector-status.yml @@ -0,0 +1,15 @@ +name: covector status +on: [pull_request] + +jobs: + covector: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: covector status + uses: jbolda/covector/packages/action@covector-v0 + with: + command: 'status' diff --git a/.github/workflows/covector-version-or-publish.yml b/.github/workflows/covector-version-or-publish.yml new file mode 100755 index 00000000..bbbe51fd --- /dev/null +++ b/.github/workflows/covector-version-or-publish.yml @@ -0,0 +1,37 @@ +name: covector version or publish +on: + push: + branches: + - dev + +jobs: + covector: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - uses: actions/setup-node@v1 + with: + node-version: 12 + registry-url: 'https://registry.npmjs.org' + - name: git config + run: | + git config --global user.name "${{ github.event.pusher.name }}" + git config --global user.email "${{ github.event.pusher.email }}" + - name: covector version-or-publish + uses: jbolda/covector/packages/action@covector-v0 + id: covector + with: + token: ${{ secrets.GITHUB_TOKEN }} + command: 'version-or-publish' + createRelease: true + - name: create pull request + id: cpr + uses: tauri-apps/create-pull-request@v2.8.0 + with: + title: "Publish New Versions" + labels: "version updates" + branch: "release" + body: ${{ steps.covector.outputs.change }} diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml new file mode 100644 index 00000000..1706fdf1 --- /dev/null +++ b/.github/workflows/format.yml @@ -0,0 +1,30 @@ +name: Format + +on: + push: + branches: + - main + pull_request: + branches: + - main + - dev + +jobs: + format: + runs-on: ubuntu-latest + strategy: + fail-fast: false + + steps: + - uses: actions/checkout@v2 + - name: Install rustfmt with nightly toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: nightly + override: true + components: rustfmt + - uses: actions-rs/cargo@v1 + with: + command: fmt + args: --manifest-path=Cargo.toml --all -- --check diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 00000000..25780fb1 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,35 @@ +name: Clippy + +on: + push: + branches: + - main + pull_request: + branches: + - main + - dev + +jobs: + clippy: + runs-on: ubuntu-latest + strategy: + fail-fast: false + + steps: + - uses: actions/checkout@v2 + - name: install webkit2gtk + run: | + sudo apt-get update + sudo apt-get install -y webkit2gtk-4.0 + - name: Install clippy with stable toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + components: clippy + - uses: actions-rs/clippy-check@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + args: --manifest-path=Cargo.toml --all-targets --all-features -- -D warnings + name: clippy diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100755 index 00000000..65625fc5 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,80 @@ +name: Test + +on: + push: + branches: + - main + pull_request: + branches: + - main + - dev + paths-ignore: + - 'webview-src/**' + - 'webview-dist/**' + - 'examples/**' + +jobs: + build-and-test: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + + steps: + - uses: actions/checkout@v2 + + - name: Install stable toolchain + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + + - name: Install gtk on Ubuntu + if: matrix.os == 'ubuntu-latest' + run: | + sudo apt-get update + sudo apt-get install -y webkit2gtk-4.0 + - name: Get current date + if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' + run: echo "CURRENT_DATE=$(date +'%Y-%m-%d')" >> $GITHUB_ENV + + - name: Get current date + if: matrix.os == 'windows-latest' + run: echo "CURRENT_DATE=$(Get-Date -Format "yyyy-MM-dd")" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + + - name: Cache cargo registry + uses: actions/cache@v2 + with: + path: ~/.cargo/registry + # Add date to the cache to keep it up to date + key: ${{ matrix.os }}-${{ matrix.rust }}-cargo-registry-${{ hashFiles('**/Cargo.toml') }}-${{ env.CURRENT_DATE }} + # Restore from outdated cache for speed + restore-keys: | + ${{ matrix.os }}-${{ matrix.rust }}-cargo-registry-${{ hashFiles('**/Cargo.toml') }} + + - name: Cache cargo index + uses: actions/cache@v2 + with: + path: ~/.cargo/git + # Add date to the cache to keep it up to date + key: ${{ matrix.os }}-${{ matrix.rust }}-cargo-index-${{ hashFiles('**/Cargo.toml') }}-${{ env.CURRENT_DATE }} + # Restore from outdated cache for speed + restore-keys: | + ${{ matrix.os }}-${{ matrix.rust }}-cargo-index-${{ hashFiles('**/Cargo.toml') }} + + - name: Cache cargo target + uses: actions/cache@v2 + with: + path: ${{ matrix.project}}/target + # Add date to the cache to keep it up to date + key: ${{ matrix.os }}-${{ matrix.rust }}-cargo-build-target-${{ hashFiles('**/Cargo.toml') }}-${{ env.CURRENT_DATE }} + # Restore from outdated cache for speed + restore-keys: | + ${{ matrix.os }}-${{ matrix.rust }}-cargo-build-target-${{ hashFiles('**/Cargo.toml') }} + + - name: Run tests + uses: actions-rs/cargo@v1 + with: + command: test + args: --manifest-path=Cargo.toml --release