Skip to content

Update CHANGELOG.md #366

Update CHANGELOG.md

Update CHANGELOG.md #366

Workflow file for this run

name: 'Build & Test'
on:
push:
branches:
- main
- release/**
pull_request:
env:
CACHED_DEPENDENCY_PATHS: |
${{ github.workspace }}/node_modules
CACHED_BUILD_PATHS: |
${{ github.workspace }}/dist
BUILD_CACHE_KEY: ${{ github.sha }}
jobs:
job_install_deps:
name: Install Dependencies
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Check out current commit (${{ github.sha }})
uses: actions/checkout@v3
- name: Set up Node
uses: actions/setup-node@v3
# we use a hash of yarn.lock as our cache key, because if it hasn't changed, our dependencies haven't changed,
# so no need to reinstall them
- name: Compute dependency cache key
id: compute_lockfile_hash
run: echo "hash=${{ hashFiles('yarn.lock') }}" >> "$GITHUB_OUTPUT"
- name: Check dependency cache
uses: actions/[email protected]
id: cache_dependencies
with:
path: ${{ env.CACHED_DEPENDENCY_PATHS }}
key: ${{ steps.compute_lockfile_hash.outputs.hash }}
- name: Install dependencies
if: steps.cache_dependencies.outputs.cache-hit == ''
run: yarn install
outputs:
dependency_cache_key: ${{ steps.compute_lockfile_hash.outputs.hash }}
job_build:
name: Build
needs: job_install_deps
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Check out current commit (${{ github.sha }})
uses: actions/checkout@v3
- name: Set up Node
uses: actions/setup-node@v3
- name: Check dependency cache
uses: actions/[email protected]
with:
path: ${{ env.CACHED_DEPENDENCY_PATHS }}
key: ${{ needs.job_install_deps.outputs.dependency_cache_key }}
- name: Check build cache
uses: actions/[email protected]
id: cache_built_packages
with:
path: ${{ env.CACHED_BUILD_PATHS }}
key: ${{ env.BUILD_CACHE_KEY }}
- name: Build packages
# Under normal circumstances, using the git SHA as a cache key, there shouldn't ever be a cache hit on the built
# packages, and so `yarn build` should always run. This `if` check is therefore only there for testing CI issues
# where the built packages are beside the point. In that case, you can change `BUILD_CACHE_KEY` (at the top of
# this file) to a constant and skip rebuilding all of the packages each time CI runs.
if: steps.cache_built_packages.outputs.cache-hit == ''
run: yarn build
# yarn.lock cannot be dirty when releasing a new version.
- name: Check if yarn.lock is dirty
if: steps.cache_built_packages.outputs.cache-hit == ''
run: yarn install --frozen-lockfile
- name: Publish package locally
run: |
yarn global add yalc
yalc publish
- name: Upload yalc package
uses: actions/upload-artifact@v4
with:
name: yalc-package
path: ~/.yalc # Path to yalc directory where the package is published
outputs:
# this needs to be passed on, because the `needs` context only looks at direct ancestors (so steps which depend on
# `job_build` can't see `job_install_deps` and what it returned)
dependency_cache_key: ${{ needs.job_install_deps.outputs.dependency_cache_key }}
job_sample_test:
name: Sample Build Test
needs: job_build
# macos required for the xcode build.
runs-on: macos-latest
strategy:
matrix:
include:
- bump: 'v3'
- bump: 'v4'
- bump: 'v5'
- bump: 'v6'
- bump: 'sample-vue'
steps:
- name: Check out current commit (${{ github.sha }})
uses: actions/checkout@v3
- name: Set up Node
uses: actions/setup-node@v3
- name: Check dependency cache
uses: actions/[email protected]
with:
path: ${{ env.CACHED_DEPENDENCY_PATHS }}
key: ${{ needs.job_build.outputs.dependency_cache_key }}
- name: Check build cache
uses: actions/[email protected]
with:
path: ${{ env.CACHED_BUILD_PATHS }}
key: ${{ env.BUILD_CACHE_KEY }}
- name: Install yalc
run: yarn global add yalc
- name: Install Ionic
run: yarn global add @ionic/cli
- name: Download Sentry Capacitor package
uses: actions/download-artifact@v4
with:
name: yalc-package
path: ~/.yalc # Ensure this path matches where yalc expects to find the package
- name: Publish test broken node.
working-directory: example/broken_node_module
run: |
yarn install
yarn build
yalc publish
- name: Build Sample ${{ matrix.bump }}
run: yarn run bump:${{ matrix.bump }}
job_unit_test:
name: Test
needs: job_build
continue-on-error: true
timeout-minutes: 30
runs-on: ubuntu-latest
steps:
- name: Check out current commit (${{ github.sha }})
uses: actions/checkout@v3
- name: Set up Node
uses: actions/setup-node@v3
- name: Check dependency cache
uses: actions/[email protected]
with:
path: ${{ env.CACHED_DEPENDENCY_PATHS }}
key: ${{ needs.job_build.outputs.dependency_cache_key }}
- name: Check build cache
uses: actions/[email protected]
with:
path: ${{ env.CACHED_BUILD_PATHS }}
key: ${{ env.BUILD_CACHE_KEY }}
- name: Run tests
run: yarn test
job_artifacts:
name: Upload Artifacts
needs: job_build
runs-on: ubuntu-latest
steps:
- name: Check out current commit (${{ github.sha }})
uses: actions/checkout@v3
- name: Set up Node
uses: actions/setup-node@v3
- name: Check dependency cache
uses: actions/[email protected]
with:
path: ${{ env.CACHED_DEPENDENCY_PATHS }}
key: ${{ needs.job_build.outputs.dependency_cache_key }}
- name: Check build cache
uses: actions/[email protected]
with:
path: ${{ env.CACHED_BUILD_PATHS }}
key: ${{ env.BUILD_CACHE_KEY }}
- name: Pack
run: yarn pack
- name: Archive artifacts
uses: actions/[email protected]
with:
name: ${{ github.sha }}
path: |
${{ github.workspace }}/sentry-capacitor-*