Publish code-server #128
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 code-server | |
on: | |
# Shows the manual trigger in GitHub UI | |
# helpful as a back-up in case the GitHub Actions Workflow fails | |
workflow_dispatch: | |
inputs: | |
version: | |
description: The version to publish (include "v", i.e. "v4.9.1"). | |
type: string | |
required: true | |
release: | |
types: [released] | |
# Cancel in-progress runs for pull requests when developers push | |
# additional changes, and serialize builds in branches. | |
# https://docs.github.com/en/actions/using-jobs/using-concurrency#example-using-concurrency-to-cancel-any-in-progress-job-or-run | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
jobs: | |
npm: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code-server | |
uses: actions/checkout@v4 | |
- name: Install Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: .node-version | |
- name: Download npm package from release artifacts | |
uses: robinraju/[email protected] | |
with: | |
repository: "coder/code-server" | |
tag: ${{ github.event.inputs.version || github.ref_name }} | |
fileName: "package.tar.gz" | |
out-file-path: "release-npm-package" | |
# Strip out the v (v4.9.1 -> 4.9.1). | |
- name: Get and set VERSION | |
run: | | |
TAG="${{ github.event.inputs.version || github.ref_name }}" | |
echo "VERSION=${TAG#v}" >> $GITHUB_ENV | |
- run: npm run publish:npm | |
env: | |
VERSION: ${{ env.VERSION }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
NPM_ENVIRONMENT: "production" | |
homebrew: | |
needs: npm | |
runs-on: ubuntu-latest | |
steps: | |
# Ensure things are up to date | |
# Suggested by homebrew maintainers | |
# https://github.com/Homebrew/discussions/discussions/1532#discussioncomment-782633 | |
- name: Set up Homebrew | |
id: set-up-homebrew | |
uses: Homebrew/actions/setup-homebrew@master | |
- name: Checkout code-server | |
uses: actions/checkout@v4 | |
- name: Configure git | |
run: | | |
git config --global user.name cdrci | |
git config --global user.email [email protected] | |
# Strip out the v (v4.9.1 -> 4.9.1). | |
- name: Get and set VERSION | |
run: | | |
TAG="${{ github.event.inputs.version || github.ref_name }}" | |
echo "VERSION=${TAG#v}" >> $GITHUB_ENV | |
- name: Bump code-server homebrew version | |
env: | |
VERSION: ${{ env.VERSION }} | |
HOMEBREW_GITHUB_API_TOKEN: ${{secrets.HOMEBREW_GITHUB_API_TOKEN}} | |
run: ./ci/steps/brew-bump.sh | |
aur: | |
needs: npm | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
env: | |
GH_TOKEN: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }} | |
steps: | |
# We need to checkout code-server so we can get the version | |
- name: Checkout code-server | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
path: "./code-server" | |
- name: Checkout code-server-aur repo | |
uses: actions/checkout@v4 | |
with: | |
repository: "cdrci/code-server-aur" | |
token: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }} | |
ref: "master" | |
- name: Merge in master | |
run: | | |
git remote add upstream https://github.com/coder/code-server-aur.git | |
git fetch upstream | |
git merge upstream/master | |
- name: Configure git | |
run: | | |
git config --global user.name cdrci | |
git config --global user.email [email protected] | |
# Strip out the v (v4.9.1 -> 4.9.1). | |
- name: Get and set VERSION | |
run: | | |
TAG="${{ github.event.inputs.version || github.ref_name }}" | |
echo "VERSION=${TAG#v}" >> $GITHUB_ENV | |
- name: Validate package | |
uses: heyhusen/[email protected] | |
env: | |
VERSION: ${{ env.VERSION }} | |
with: | |
pkgver: ${{ env.VERSION }} | |
updpkgsums: true | |
srcinfo: true | |
- name: Open PR | |
# We need to git push -u otherwise gh will prompt | |
# asking where to push the branch. | |
env: | |
VERSION: ${{ env.VERSION }} | |
run: | | |
git checkout -b update-version-${{ env.VERSION }} | |
git add . | |
git commit -m "chore: updating version to ${{ env.VERSION }}" | |
git push -u origin $(git branch --show) | |
gh pr create --repo coder/code-server-aur --title "chore: bump version to ${{ env.VERSION }}" --body "PR opened by @$GITHUB_ACTOR" --assignee $GITHUB_ACTOR | |
docker: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout code-server | |
uses: actions/checkout@v4 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GHCR | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
# Strip out the v (v4.9.1 -> 4.9.1). | |
- name: Get and set VERSION | |
run: | | |
TAG="${{ github.event.inputs.version || github.ref_name }}" | |
echo "VERSION=${TAG#v}" >> $GITHUB_ENV | |
- name: Download deb artifacts | |
uses: robinraju/[email protected] | |
with: | |
repository: "coder/code-server" | |
tag: v${{ env.VERSION }} | |
fileName: "*.deb" | |
out-file-path: "release-packages" | |
- name: Download rpm artifacts | |
uses: robinraju/[email protected] | |
with: | |
repository: "coder/code-server" | |
tag: v${{ env.VERSION }} | |
fileName: "*.rpm" | |
out-file-path: "release-packages" | |
- name: Publish to Docker | |
run: ./ci/steps/docker-buildx-push.sh | |
env: | |
VERSION: ${{ env.VERSION }} | |
GITHUB_TOKEN: ${{ github.token }} |