diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000..48fe3eee7 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,56 @@ +name: Release executable files for macOS + +on: + workflow_dispatch: + inputs: + version_digit: + description: 'Version digit (major | minor | patch)' + required: true + default: 'patch' + type: choice + options: + - major + - minor + - patch + +jobs: + release: + runs-on: ubuntu-latest + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + HOMEBREW_TAP_DEPLOY_SECRET_KEY: ${{ secrets.HOMEBREW_TAP_DEPLOY_SECRET_KEY }} + permissions: write-all + steps: + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Install ldid + uses: MOZGIII/install-ldid-action@v1 + with: + tag: v2.1.5-procursus6 + + - name: Check out repository code + uses: actions/checkout@v3 + + - name: Use node + uses: actions/setup-node@v3 + with: + node-version: "14" + + - name: Install dependencies + run: npm install + + - name: Build + run: npm run build + + - name: Package + run: | + git config --global user.email "action@github.com" + git config --global user.name "GitHub Action" + npm run release -- ${{ github.event.inputs.version_digit }} --ci + + - name: Update homebrew/tap repo for new release + shell: bash + run: scripts/create-homebrew-tap-pr.sh + env: + VERSION: ${{ env.VERSION }} \ No newline at end of file diff --git a/.release-it.json b/.release-it.json index 50c616a7a..356dd3347 100644 --- a/.release-it.json +++ b/.release-it.json @@ -7,6 +7,6 @@ "hooks": { "before:bump": "yarn declarations; yarn build:schemas", "after:bump": "yarn package:x64; yarn package:arm64", - "after:release": "VERSION=${version} scripts/create-homebrew-tap-pr.sh" + "after:release": "export VERSION=${version}; echo 'VERSION=${version}' >> $GITHUB_ENV" } } diff --git a/package.json b/package.json index 6ad672326..293466b67 100644 --- a/package.json +++ b/package.json @@ -64,6 +64,7 @@ "build:pretty-types": "yarn prettier --write distribution/danger.d.ts; yarn prettier --parser flow distribution/danger.js.flow --write", "build:watch": "tsc -w", "link": "yarn run build && chmod +x distribution/commands/danger.js && yarn link", + "package": "yarn run pkg . --output brew-distribution/danger; zip -j brew-distribution/danger-macos.zip brew-distribution/danger; shasum -a 256 brew-distribution/danger-macos.zip", "package:x64": "yarn run pkg . --output brew-distribution/danger-x64 --targets node16-macos-x64; zip -j brew-distribution/danger-macos-x64.zip brew-distribution/danger-x64; shasum -a 256 brew-distribution/danger-macos-x64.zip", "package:arm64": "yarn run pkg . --output brew-distribution/danger-arm64 --targets node16-macos-arm64; zip -j brew-distribution/danger-macos-arm64.zip brew-distribution/danger-arm64; shasum -a 256 brew-distribution/danger-macos-arm64.zip", "declarations": "ts-node ./scripts/create-danger-dts.ts", diff --git a/scripts/create-homebrew-tap-pr.sh b/scripts/create-homebrew-tap-pr.sh index 01d7d9455..ebf3287f2 100755 --- a/scripts/create-homebrew-tap-pr.sh +++ b/scripts/create-homebrew-tap-pr.sh @@ -19,14 +19,22 @@ echo "SHA_X64=$SHA_X64" SHA_ARM64=$(shasum -a 256 ${FILE_ARM64} | cut -f 1 -d " ") echo "SHA_ARM64=$SHA_ARM64" +# Set up SSH +mkdir -p ~/.ssh +echo "${HOMEBREW_TAP_DEPLOY_SECRET_KEY}" > ~/.ssh/id_rsa +chmod 600 ~/.ssh/id_rsa +git config --global user.name danger +git config --global user.email danger@users.noreply.github.com +eval "$(ssh-agent -s)" +ssh-add ~/.ssh/id_rsa +ssh-keyscan -H github.com >> ~/.ssh/known_hosts +ssh -o StrictHostKeyChecking=no -F /dev/null -vT git@github.com + # Clone tap repo HOMEBREW_TAP_TMPDIR=$(mktemp -d) -git clone --depth 1 https://github.com/danger/homebrew-tap.git "$HOMEBREW_TAP_TMPDIR" +git clone --depth 1 git@github.com:danger/homebrew-tap.git "$HOMEBREW_TAP_TMPDIR" cd "$HOMEBREW_TAP_TMPDIR" || exit 1 -# git config user.name danger -# git config user.email danger@users.noreply.github.com - # Write formula echo "class DangerJs < Formula" > danger-js.rb echo " homepage \"https://github.com/danger/danger-js\"" >> danger-js.rb @@ -53,4 +61,6 @@ echo "end" >> danger-js.rb # Commit changes git add danger-js.rb git commit -m "Releasing danger-js version ${VERSION}" -git push origin master +git remote rm origin +git remote add origin git@github.com:danger/homebrew-tap.git +git push origin master \ No newline at end of file