9ba08907da
Looks like the images got updated to v18 so they started failing. For npm install v16 and for Docker just run the script directly, it seems silly to waste time installing v16 just to run a script through yarn.
199 lines
6.1 KiB
YAML
199 lines
6.1 KiB
YAML
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 v16
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: "16"
|
|
cache: "yarn"
|
|
|
|
- name: Download npm package from release artifacts
|
|
uses: robinraju/release-downloader@v1.7
|
|
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 opensource@coder.com
|
|
|
|
# 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 opensource@coder.com
|
|
|
|
# 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/release-downloader@v1.7
|
|
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 }}
|