v2.0.0-beta-1 #2
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: Build and Release | |
on: | |
release: | |
types: | |
- created | |
jobs: | |
build-and-release: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 20 | |
# 添加一个步骤来构建文件 | |
- name: Install dependencies and build | |
run: | | |
pnpm install | |
pnpm build | |
- name: Compress zip | |
run: | | |
PACKAGE_VERSION=$(sed -nE 's/^ *version: "([^"]+)"$/\1/p' theme.yaml) | |
PRE_ZIP_FOLDER=halo-theme-stack-${PACKAGE_VERSION} | |
ARTIFACT_NAME=${PRE_ZIP_FOLDER}.zip | |
ARTIFACT_PATHNAME=dist/${ARTIFACT_NAME} | |
echo "halo-theme-stack version $PACKAGE_VERSION" | |
echo "Artifact name: ${ARTIFACT_NAME}" | |
echo "Artifact pathname: ${ARTIFACT_PATHNAME}" | |
echo "PACKAGE_VERSION=${PACKAGE_VERSION}" >> $GITHUB_ENV | |
echo "ARTIFACT_NAME=${ARTIFACT_NAME}" >> $GITHUB_ENV | |
echo "ARTIFACT_PATHNAME=${ARTIFACT_PATHNAME}" >> $GITHUB_ENV | |
echo "RELEASE_ID=${{ github.event.release.id }}" >> $GITHUB_ENV | |
mkdir $PRE_ZIP_FOLDER | |
mkdir dist | |
cp -r theme.yaml settings.yaml annotation-setting.yaml templates i18n $PRE_ZIP_FOLDER/ | |
zip -r $ARTIFACT_PATHNAME $PRE_ZIP_FOLDER | |
- name: Upload artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: halo-theme-stack | |
path: | | |
dist/*.zip | |
retention-days: 7 | |
github-release: | |
runs-on: ubuntu-latest | |
if: github.event_name == 'release' | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: false | |
- name: Set up Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16 | |
- name: Compress zip | |
run: | | |
PACKAGE_VERSION=$(sed -nE 's/^ *version: "([^"]+)"$/\1/p' theme.yaml) | |
PRE_ZIP_FOLDER=halo-theme-stack-${PACKAGE_VERSION} | |
ARTIFACT_NAME=${PRE_ZIP_FOLDER}.zip | |
ARTIFACT_PATHNAME=dist/${ARTIFACT_NAME} | |
echo "halo-theme-stack version $PACKAGE_VERSION" | |
echo "Artifact name: ${ARTIFACT_NAME}" | |
echo "Artifact pathname: ${ARTIFACT_PATHNAME}" | |
echo "PACKAGE_VERSION=${PACKAGE_VERSION}" >> $GITHUB_ENV | |
echo "ARTIFACT_NAME=${ARTIFACT_NAME}" >> $GITHUB_ENV | |
echo "ARTIFACT_PATHNAME=${ARTIFACT_PATHNAME}" >> $GITHUB_ENV | |
echo "RELEASE_ID=${{ github.event.release.id }}" >> $GITHUB_ENV | |
mkdir $PRE_ZIP_FOLDER | |
mkdir dist | |
cp -r theme.yaml settings.yaml annotation-setting.yaml templates i18n $PRE_ZIP_FOLDER/ | |
zip -r $ARTIFACT_PATHNAME $PRE_ZIP_FOLDER | |
- name: Upload a release asset | |
uses: actions/github-script@v2 | |
with: | |
github-token: ${{secrets.TOKEN}} | |
script: | | |
const fs = require('fs').promises; | |
const { repo: { owner, repo }, sha } = context; | |
console.log({ owner, repo, sha }); | |
const releaseId = process.env.RELEASE_ID | |
const artifactPathName = process.env.ARTIFACT_PATHNAME | |
const artifactName = process.env.ARTIFACT_NAME | |
console.log('Releasing', releaseId, artifactPathName, artifactName) | |
await github.repos.uploadReleaseAsset({ | |
owner, repo, | |
release_id: releaseId, | |
name: artifactName, | |
data: await fs.readFile(artifactPathName) | |
}); |