Make publish workflow depend on tests #49
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: | |
push: | |
branches: | |
- main | |
- features/* | |
- release/* | |
pull_request: | |
branches: | |
- main | |
- features/* | |
- release/* | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Set up Node.js | |
uses: actions/setup-node@v2 | |
with: | |
node-version: '20' | |
scope: '@radius-project' | |
registry-url: "https://registry.npmjs.org" | |
- name: Enable Corepack | |
run: | | |
corepack enable | |
- name: Install bicep-types dependencies | |
working-directory: bicep-types/src/bicep-types | |
run: | | |
npm ci | |
npm run build | |
- name: Build bicep-types | |
working-directory: bicep-types/src/bicep-types | |
run: | | |
npm run build | |
- name: Install dependencies | |
run: yarn install --no-immutable | |
env: | |
YARN_ENABLE_HARDENED_MODE: 0 | |
- name: Build | |
run: yarn run build:all | |
- name: Lint | |
run: yarn run lint:all | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Set up Node.js | |
uses: actions/setup-node@v2 | |
with: | |
node-version: '20' | |
scope: '@radius-project' | |
registry-url: "https://registry.npmjs.org" | |
- name: Enable Corepack | |
run: | | |
corepack enable | |
- name: Install bicep-types dependencies | |
working-directory: bicep-types/src/bicep-types | |
run: | | |
npm ci | |
npm run build | |
- name: Build bicep-types | |
working-directory: bicep-types/src/bicep-types | |
run: | | |
npm run build | |
- name: Install dependencies | |
run: yarn install --no-immutable | |
env: | |
YARN_ENABLE_HARDENED_MODE: 0 | |
- name: Run tests | |
run: yarn run test:all | |
publish: | |
runs-on: ubuntu-latest | |
needs: [build, test] | |
permissions: | |
contents: read | |
packages: write | |
id-token: write | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Set up Node.js | |
uses: actions/setup-node@v2 | |
with: | |
node-version: '20' | |
scope: '@radius-project' | |
registry-url: "https://registry.npmjs.org" | |
- name: Enable Corepack | |
run: | | |
corepack enable | |
- name: Install bicep-types dependencies | |
working-directory: bicep-types/src/bicep-types | |
run: | | |
npm ci | |
npm run build | |
- name: Build bicep-types | |
working-directory: bicep-types/src/bicep-types | |
run: | | |
npm run build | |
- name: Install dependencies | |
run: yarn install --no-immutable | |
env: | |
YARN_ENABLE_HARDENED_MODE: 0 | |
- name: Get commit version | |
shell: bash | |
run: | | |
echo "COMMIT=$(git rev-parse --short "$GITHUB_SHA")" >> "$GITHUB_ENV" | |
- name: Publish | |
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} | |
shell: bash | |
env: | |
PUBLISH_ARGS: --access public --tag alpha | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
run: yarn run publish:all 0.0.1-alpha.${{ env.COMMIT }} |