Skip to content

Commit

Permalink
Merge pull request #822 from linuxserver/code-server-powershell-multi
Browse files Browse the repository at this point in the history
switch to multi-arch
  • Loading branch information
aptalca committed Feb 14, 2024
2 parents 236ad54 + bc3eeb1 commit aea1eba
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 21 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/BuildImage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ env:
ENDPOINT: "linuxserver/mods" #don't modify
BASEIMAGE: "code-server" #replace
MODNAME: "powershell" #replace
MULTI_ARCH: "true" #set to true if needed

jobs:
set-vars:
Expand All @@ -19,6 +20,7 @@ jobs:
echo "ENDPOINT=${{ env.ENDPOINT }}" >> $GITHUB_OUTPUT
echo "BASEIMAGE=${{ env.BASEIMAGE }}" >> $GITHUB_OUTPUT
echo "MODNAME=${{ env.MODNAME }}" >> $GITHUB_OUTPUT
echo "MULTI_ARCH=${{ env.MULTI_ARCH }}" >> $GITHUB_OUTPUT
# **** If the mod needs to be versioned, set the versioning logic below. Otherwise leave as is. ****
MOD_VERSION=$(curl -Ls -o /dev/null -w %{url_effective} https://aka.ms/powershell-release?tag=stable | sed 's|.*tag/v||g')
echo "MOD_VERSION=${MOD_VERSION}" >> $GITHUB_OUTPUT
Expand All @@ -27,6 +29,7 @@ jobs:
ENDPOINT: ${{ steps.outputs.outputs.ENDPOINT }}
BASEIMAGE: ${{ steps.outputs.outputs.BASEIMAGE }}
MODNAME: ${{ steps.outputs.outputs.MODNAME }}
MULTI_ARCH: ${{ steps.outputs.outputs.MULTI_ARCH }}
MOD_VERSION: ${{ steps.outputs.outputs.MOD_VERSION }}

build:
Expand All @@ -42,4 +45,5 @@ jobs:
ENDPOINT: ${{ needs.set-vars.outputs.ENDPOINT }}
BASEIMAGE: ${{ needs.set-vars.outputs.BASEIMAGE }}
MODNAME: ${{ needs.set-vars.outputs.MODNAME }}
MULTI_ARCH: ${{ needs.set-vars.outputs.MULTI_ARCH }}
MOD_VERSION: ${{ needs.set-vars.outputs.MOD_VERSION }}
30 changes: 15 additions & 15 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1

FROM ghcr.io/linuxserver/baseimage-alpine:3.17 as buildstage
FROM ghcr.io/linuxserver/baseimage-alpine:3.19 as buildstage

ARG MOD_VERSION

Expand All @@ -10,20 +10,20 @@ RUN \
| sed 's|.*tag/v||g'); \
fi && \
mkdir -p /root-layer/powershell && \
curl -o \
/root-layer/powershell/powershell_x86_64.tar.gz -L \
"https://github.com/PowerShell/PowerShell/releases/download/v${MOD_VERSION}/powershell-${MOD_VERSION}-linux-x64.tar.gz" && \
curl -o \
/root-layer/powershell/powershell_armv7l.tar.gz -L \
"https://github.com/PowerShell/PowerShell/releases/download/v${MOD_VERSION}/powershell-${MOD_VERSION}-linux-arm32.tar.gz" && \
curl -o \
/root-layer/powershell/powershell_aarch64.tar.gz -L \
"https://github.com/PowerShell/PowerShell/releases/download/v${MOD_VERSION}/powershell-${MOD_VERSION}-linux-arm64.tar.gz" && \
echo "******** run basic test to validate tarballs *********" && \
for i in x86_64 armv7l aarch64; do \
mkdir -p "/tmp/${i}"; \
tar xzf "/root-layer/powershell/powershell_${i}.tar.gz" -C "/tmp/${i}"; \
done
if [[ $(uname -m) == "x86_64" ]]; then \
echo "Downloading x86_64 tarball" && \
curl -o \
/root-layer/powershell/powershell.tar.gz -L \
"https://github.com/PowerShell/PowerShell/releases/download/v${MOD_VERSION}/powershell-${MOD_VERSION}-linux-x64.tar.gz"; \
elif [[ $(uname -m) == "aarch64" ]]; then \
echo "Downloading aarch64 tarball" && \
curl -o \
/root-layer/powershell/powershell.tar.gz -L \
"https://github.com/PowerShell/PowerShell/releases/download/v${MOD_VERSION}/powershell-${MOD_VERSION}-linux-arm64.tar.gz"; \
fi && \
echo "******** run basic test to validate tarball *********" && \
mkdir -p /tmp/powershell && \
tar xzf /root-layer/powershell/powershell.tar.gz -C /tmp/powershell

COPY root/ /root-layer/

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
#!/usr/bin/with-contenv bash

ARCH=$(uname -m)
source /etc/lsb-release

if [ -f "/powershell/powershell_${ARCH}.tar.gz" ]; then
if [ -f "/powershell/powershell.tar.gz" ]; then
echo "Installing PowerShell"
if [ "${DISTRIB_CODENAME}" == "bionic" ]; then
echo "\
Expand All @@ -18,11 +17,9 @@ if [ -f "/powershell/powershell_${ARCH}.tar.gz" ]; then
libicu70 \
libunwind8" >> /mod-repo-packages-to-install.list
fi
tar xf "/powershell/powershell_${ARCH}.tar.gz" -C /powershell
tar xf "/powershell/powershell.tar.gz" -C /powershell
rm -rf \
/powershell/powershell_x86_64.tar.gz \
/powershell/powershell_armv7l.tar.gz \
/powershell/powershell_aarch64.tar.gz
/powershell/powershell.tar.gz
ln -s /powershell/pwsh /usr/bin/pwsh
else
echo "PowerShell already installed, skipping"
Expand Down

0 comments on commit aea1eba

Please sign in to comment.