1.8.0 #5
Workflow file for this run
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: New p5.js release | |
# Requires secrets `NPM_TOKEN` and `ACCESS_TOKEN` to be set | |
permissions: | |
contents: write | |
on: | |
push: | |
tags: | |
- 'v*.*.*' # Push events to matching v*.*.*, i.e. v20.15.10 | |
jobs: | |
release: | |
runs-on: ubuntu-latest | |
name: Release | |
env: | |
INPUT_TOKEN: ${{ secrets.NPM_TOKEN }} | |
steps: | |
# 1. Setup | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
- name: Get version number | |
id: version-number | |
run: | | |
version=$(echo ${{ github.ref_name }} | cut -c 2-) | |
echo "version=$version" >> $GITHUB_OUTPUT | |
- name: Get current date | |
id: date | |
run: echo "date=$(date +"%B %Oe, %Y")" >> $GITHUB_OUTPUT | |
- name: Install dependencies | |
run: npm ci | |
env: | |
CI: true | |
- name: Run build | |
run: npm test | |
env: | |
CI: true | |
- run: rm ./lib/p5-test.js ./lib/p5.pre-min.js | |
# 2. Prepare release files | |
- run: mkdir release && mkdir p5 && cp -r ./lib/* p5/ | |
- name: Create release zip file | |
uses: TheDoctor0/[email protected] | |
with: | |
type: zip | |
filename: release/p5.zip | |
path: ./p5/* | |
- name: Copy release files | |
run: cp lib/p5.js lib/p5.min.js lib/addons/p5.sound.js lib/addons/p5.sound.min.js release/ | |
# 3. Release p5.js | |
- name: Create GitHub release | |
uses: softprops/[email protected] | |
with: | |
draft: true | |
files: release/* | |
generate_release_notes: true | |
token: ${{ secrets.ACCESS_TOKEN }} | |
- name: Publish to NPM | |
uses: JS-DevTools/npm-publish@v1 | |
with: | |
token: ${{ secrets.NPM_TOKEN }} | |
# 4. Update website files | |
- name: Checkout website repo | |
uses: actions/checkout@v3 | |
with: | |
repository: processing/p5.js-website | |
path: website | |
fetch-depth: 0 | |
token: ${{ secrets.ACCESS_TOKEN }} | |
- name: Copy reference files to website repo | |
run: cp docs/reference/data.* website/src/templates/pages/reference/ | |
- name: Copy library files to website repo | |
run: cp lib/p5.min.js lib/addons/p5.sound.min.js website/src/assets/js/ | |
- name: Modify version number on website | |
uses: fjogeleit/[email protected] | |
with: | |
valueFile: website/src/data/data.yml | |
propertyPath: version | |
value: ${{ steps.version-number.outputs.version }} | |
commitChange: false | |
updateFile: true | |
- name: Update version.json on website repo | |
uses: restackio/[email protected] | |
with: | |
file: website/dist/download/version.json | |
values: '{"version": "${{ steps.version-number.outputs.version }}", "date": "${{ steps.date.outputs.date }}"}' | |
- name: Update en.json on website repo | |
run: | | |
cd website | |
npm ci | |
npx grunt generate_enJSON | |
- name: Commit updated website files | |
run: | | |
cd website | |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
git config --local user.name "github-actions[bot]" | |
git add . | |
git commit -m "Update p5.js to ${{ github.ref_name }}" | |
- name: Push updated website repo | |
uses: ad-m/[email protected] | |
with: | |
github_token: ${{ secrets.ACCESS_TOKEN }} | |
branch: main | |
directory: website/ | |
repository: processing/p5.js-website | |
# 5. Update Bower files | |
- name: Checkout Bower repo | |
uses: actions/checkout@v3 | |
with: | |
repository: processing/p5.js-release | |
path: bower | |
fetch-depth: 0 | |
token: ${{ secrets.ACCESS_TOKEN }} | |
- name: Copy new version files to Bower repo | |
run: | | |
cp lib/*.js bower/lib/ | |
cp lib/addons/* bower/lib/addons/ | |
- name: Commit updated Bower files | |
run: | | |
cd bower | |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
git config --local user.name "github-actions[bot]" | |
git add . | |
git commit -m "Update p5.js to ${{ github.ref_name }}" | |
- name: Push updated Bower repo | |
uses: ad-m/[email protected] | |
with: | |
github_token: ${{ secrets.ACCESS_TOKEN }} | |
branch: master | |
directory: bower/ | |
repository: processing/p5.js-release |