Add initial GitHub Actions CI
This commit is contained in:
parent
35ec6b3efb
commit
33138c152f
|
|
@ -1,35 +0,0 @@
|
|||
version: build-{build}.{branch}
|
||||
image: Visual Studio 2017
|
||||
|
||||
environment:
|
||||
matrix:
|
||||
- version: 1.4
|
||||
variant: windowsservercore-1809
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
||||
- version: 1.4
|
||||
variant: windowsservercore-ltsc2016
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||
- version: 1.0
|
||||
variant: windowsservercore-1809
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
||||
- version: 1.0
|
||||
variant: windowsservercore-ltsc2016
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||
|
||||
install:
|
||||
- ps: |
|
||||
[Environment]::SetEnvironmentVariable('dockerImage', ('julia:{0}' -f $env:variant), [EnvironmentVariableTarget]::Process);
|
||||
[Environment]::SetEnvironmentVariable('buildDirectory', ('{0}/windows/{1}' -f $env:version, $env:variant), [EnvironmentVariableTarget]::Process);
|
||||
|
||||
build_script:
|
||||
- cmd: appveyor-retry docker build --pull -t %dockerImage% %buildDirectory%
|
||||
|
||||
after_build:
|
||||
- ps: docker images
|
||||
|
||||
test_script:
|
||||
- cmd: docker run --rm %dockerImage% julia --version
|
||||
# https://github.com/docker-library/official-images/blob/1f45da385fb37c7469edbcf519327db0e5fb7aab/test/tests/julia-hello-world/container.jl
|
||||
- cmd: docker run --rm %dockerImage% julia --eval "println("""Hello World!""")"
|
||||
- cmd: docker run --rm %dockerImage% julia --eval "download("""https://google.com""")"
|
||||
- cmd: docker run --rm %dockerImage% julia --eval "using Pkg; Pkg.add("""JSON""")"
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
name: GitHub CI
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
schedule:
|
||||
- cron: 0 0 * * 0
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: 'bash -Eeuo pipefail -x {0}'
|
||||
|
||||
jobs:
|
||||
|
||||
generate-jobs:
|
||||
name: Generate Jobs
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
strategy: ${{ steps.generate-jobs.outputs.strategy }}
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- id: generate-jobs
|
||||
name: Generate Jobs
|
||||
run: |
|
||||
git clone --depth 1 https://github.com/docker-library/bashbrew.git -b master ~/bashbrew
|
||||
strategy="$(~/bashbrew/scripts/github-actions/generate.sh)"
|
||||
strategy="$(~/bashbrew/scripts/github-actions/munge-i386.sh -c <<<"$strategy")"
|
||||
jq . <<<"$strategy" # sanity check / debugging aid
|
||||
echo "::set-output name=strategy::$strategy"
|
||||
|
||||
test:
|
||||
needs: generate-jobs
|
||||
strategy: ${{ fromJson(needs.generate-jobs.outputs.strategy) }}
|
||||
name: ${{ matrix.name }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Prepare Environment
|
||||
run: ${{ matrix.runs.prepare }}
|
||||
- name: Pull Dependencies
|
||||
run: ${{ matrix.runs.pull }}
|
||||
- name: Build ${{ matrix.name }}
|
||||
run: ${{ matrix.runs.build }}
|
||||
- name: History ${{ matrix.name }}
|
||||
run: ${{ matrix.runs.history }}
|
||||
- name: Test ${{ matrix.name }}
|
||||
run: ${{ matrix.runs.test }}
|
||||
- name: '"docker images"'
|
||||
run: ${{ matrix.runs.images }}
|
||||
54
.travis.yml
54
.travis.yml
|
|
@ -1,54 +0,0 @@
|
|||
language: bash
|
||||
services: docker
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: linux
|
||||
env: VERSION=1.4 VARIANT=buster ARCH=
|
||||
- os: linux
|
||||
env: VERSION=1.4 VARIANT=buster ARCH=i386
|
||||
- os: linux
|
||||
env: VERSION=1.0 VARIANT=buster ARCH=
|
||||
- os: linux
|
||||
env: VERSION=1.0 VARIANT=buster ARCH=i386
|
||||
- os: linux
|
||||
env: VERSION=1.0 VARIANT=stretch ARCH=
|
||||
- os: linux
|
||||
env: VERSION=1.0 VARIANT=stretch ARCH=i386
|
||||
|
||||
install:
|
||||
- git clone https://github.com/docker-library/official-images.git ~/official-images
|
||||
- if [ "$TRAVIS_OS_NAME" = 'linux' ]; then wget -qO- 'https://github.com/tianon/pgp-happy-eyeballs/raw/master/hack-my-builds.sh' | bash; fi
|
||||
|
||||
before_script:
|
||||
- env | sort
|
||||
- cd "$VERSION/$VARIANT"
|
||||
- image="julia:$VERSION-$(basename "$VARIANT")"
|
||||
- |
|
||||
if [ -n "$ARCH" ]; then
|
||||
from="$(awk '$1 == toupper("FROM") { print $2 }' Dockerfile)"
|
||||
docker pull "$ARCH/$from"
|
||||
docker tag "$ARCH/$from" "$from"
|
||||
fi
|
||||
|
||||
script:
|
||||
- |
|
||||
(
|
||||
set -Eeuo pipefail
|
||||
set -x
|
||||
docker build -t "$image" .
|
||||
if [ "$TRAVIS_OS_NAME" = 'windows' ]; then
|
||||
# TODO make the tests run successfully on Windows too!
|
||||
docker run --rm "$image" julia --version
|
||||
docker run --rm "$image" julia --eval 'println("Hello World!")'
|
||||
docker run --rm "$image" julia --eval 'download("https://google.com")'
|
||||
docker run --rm "$image" julia --eval 'using Pkg; Pkg.add("JSON")'
|
||||
else
|
||||
~/official-images/test/run.sh "$image"
|
||||
fi
|
||||
)
|
||||
|
||||
after_script:
|
||||
- docker images
|
||||
|
||||
# vim:set et ts=2 sw=2:
|
||||
|
|
@ -14,13 +14,12 @@ For outstanding `julia` image PRs, check [PRs with the "library/julia" label on
|
|||
|
||||
---
|
||||
|
||||
- [](https://travis-ci.org/docker-library/julia/branches)
|
||||
- [](https://ci.appveyor.com/project/docker-library/julia)
|
||||
- [](https://doi-janky.infosiftr.net/job/update.sh/job/julia)
|
||||
- [](https://github.com/docker-library/julia/actions?query=workflow%3A%22GitHub+CI%22+branch%3Amaster)
|
||||
- [](https://doi-janky.infosiftr.net/job/update.sh/job/julia/)
|
||||
|
||||
| Build | Status | Badges | (per-arch) |
|
||||
|:-:|:-:|:-:|:-:|
|
||||
| [](https://doi-janky.infosiftr.net/job/multiarch/job/amd64/job/julia) | [](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/julia) | [](https://doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/julia) | [](https://doi-janky.infosiftr.net/job/multiarch/job/i386/job/julia) |
|
||||
| [](https://doi-janky.infosiftr.net/job/multiarch/job/windows-amd64/job/julia) | [](https://doi-janky.infosiftr.net/job/put-shared/job/light/job/julia) |
|
||||
| [](https://doi-janky.infosiftr.net/job/multiarch/job/amd64/job/julia/) | [](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/julia/) | [](https://doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/julia/) | [](https://doi-janky.infosiftr.net/job/multiarch/job/i386/job/julia/) |
|
||||
| [](https://doi-janky.infosiftr.net/job/multiarch/job/windows-amd64/job/julia/) | [](https://doi-janky.infosiftr.net/job/put-shared/job/light/job/julia/) |
|
||||
|
||||
<!-- THIS FILE IS GENERATED BY https://github.com/docker-library/docs/blob/master/generate-repo-stub-readme.sh -->
|
||||
|
|
|
|||
24
update.sh
24
update.sh
|
|
@ -26,8 +26,6 @@ allVersions="$(
|
|||
| sort -ruV
|
||||
)"
|
||||
|
||||
travisEnv=
|
||||
appveyorEnv=
|
||||
for version in "${versions[@]}"; do
|
||||
rcVersion="${version%-rc}"
|
||||
rcGrepV='-v'
|
||||
|
|
@ -100,27 +98,5 @@ for version in "${versions[@]}"; do
|
|||
"$dir/Dockerfile"
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$v" in
|
||||
# https://www.appveyor.com/docs/windows-images-software/
|
||||
windows/*-1809)
|
||||
appveyorEnv='\n - version: '"$version"'\n variant: '"$variant"'\n APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019'"$appveyorEnv"
|
||||
;;
|
||||
windows/*-ltsc2016)
|
||||
appveyorEnv='\n - version: '"$version"'\n variant: '"$variant"'\n APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017'"$appveyorEnv"
|
||||
;;
|
||||
|
||||
*)
|
||||
for arch in i386 ''; do
|
||||
travisEnv="\n - os: linux\n env: VERSION=$version VARIANT=$v ARCH=$arch$travisEnv"
|
||||
done
|
||||
;;
|
||||
esac
|
||||
done
|
||||
done
|
||||
|
||||
travis="$(awk -v 'RS=\n\n' '$1 == "matrix:" { $0 = "matrix:\n include:'"$travisEnv"'" } { printf "%s%s", $0, RS }' .travis.yml)"
|
||||
echo "$travis" > .travis.yml
|
||||
|
||||
appveyor="$(awk -v 'RS=\n\n' '$1 == "environment:" { $0 = "environment:\n matrix:'"$appveyorEnv"'" } { printf "%s%s", $0, RS }' .appveyor.yml)"
|
||||
echo "$appveyor" > .appveyor.yml
|
||||
|
|
|
|||
Loading…
Reference in New Issue