Version Packages (#828) #2
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: Publish packages and crates | |
on: | |
push: | |
branches: | |
- main | |
concurrency: ${{ github.workflow }}-${{ github.ref }} | |
jobs: | |
call-rust-build: | |
uses: ./.github/workflows/rust-build.yaml | |
release: | |
name: Release | |
needs: [call-rust-build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repo | |
uses: actions/checkout@v3 | |
- name: Setup Node.js 16.x | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16.x | |
# batch download artifacts | |
- uses: actions/download-artifact@v3 | |
with: | |
path: /tmp/artifacts | |
- name: Copy Farm Core Binary | |
run: cp /tmp/artifacts/${{ github.sha }}-linux-x64-gnu/* ./packages/core/binding | |
- name: Move Artifacts | |
run: | | |
for abi in linux-x64-gnu darwin-x64 win32-x64-msvc linux-arm64-musl linux-arm64-gnu darwin-arm64 win32-ia32-msvc win32-arm64-msvc | |
do | |
mv /tmp/artifacts/${{ github.sha }}-${abi}/* ./packages/core/npm/${abi} | |
mv /tmp/artifacts/${{ github.sha }}-${abi}-plugin-react/* ./rust-plugins/react/npm/${abi} | |
mv /tmp/artifacts/${{ github.sha }}-${abi}-plugin-sass/* ./rust-plugins/sass/npm/${abi} | |
test -f ./packages/core/npm/${abi}/farm.${abi}.node | |
test -f ./rust-plugins/react/npm/${abi}/index.farm | |
test -f ./rust-plugins/sass/npm/${abi}/index.farm | |
done | |
- name: Install Dependencies | |
run: npm install -g pnpm && pnpm i --frozen-lockfile | |
- name: Create Release Pull Request or Publish to npm | |
id: changesets | |
uses: changesets/action@v1 | |
with: | |
version: pnpm run bump | |
publish: npm run release | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
# Test create farm and make sure it works after release | |
- name: Test Create Farm React | |
run: cd .. && pnpm create farm my-test-app-react --template react && cd my-test-app-react && pnpm build | |
- name: Test Create Farm Vue | |
run: cd .. && pnpm create farm my-test-app-vue --template vue && cd my-test-app-vue && pnpm build | |
- name: Test Create Farm Solid | |
run: cd .. && pnpm create farm my-test-app-solid --template solid && cd my-test-app-solid && pnpm build |