v4.17.1 #97
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: 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: | |
# NOTE: this job requires curl, jq and yarn | |
# All of them are included in ubuntu-latest. | |
npm: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code-server | |
uses: actions/checkout@v3 | |
- name: Install Node.js v18 | |
uses: actions/setup-node@v3 | |
with: | |
node-version: "18" | |
cache: "yarn" | |
- 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" | |
# NOTE@jsjoeio - we do this so we can strip out the v | |
# i.e. 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: Publish npm package and tag with "latest" | |
run: yarn 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@v3 | |
- name: Configure git | |
run: | | |
git config --global user.name cdrci | |
git config --global user.email [email protected] | |
# NOTE@jsjoeio - we do this so we can strip out the v | |
# i.e. 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@v3 | |
with: | |
fetch-depth: 0 | |
path: "./code-server" | |
- name: Checkout code-server-aur repo | |
uses: actions/checkout@v3 | |
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] | |
# NOTE@jsjoeio - we do this so we can strip out the v | |
# i.e. 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: hapakaien/archlinux-package-action@v2 | |
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@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Login to Docker Hub | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GHCR | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
# NOTE@jsjoeio - we do this so we can strip out the v | |
# i.e. 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 release artifacts | |
uses: robinraju/[email protected] | |
with: | |
repository: "coder/code-server" | |
tag: v${{ env.VERSION }} | |
fileName: "*.deb" | |
out-file-path: "release-packages" | |
- name: Publish to Docker | |
run: ./ci/steps/docker-buildx-push.sh | |
env: | |
VERSION: ${{ env.VERSION }} | |
GITHUB_TOKEN: ${{ github.token }} |