Compare commits

...

13 Commits

Author SHA1 Message Date
Rob Greene
95d3cf98bf Updating to current versions of tools. 2023-11-01 15:27:39 -05:00
A2 Geek
3675b309f8
Changing a label. 2022-03-13 13:51:19 -05:00
A2 Geek
3d6c162f26
Adding some shields. 2022-03-13 13:49:49 -05:00
Rob Greene
c5098b013e Adding notes for working with Docker Hub 2022-03-06 16:25:47 -06:00
Rob Greene
049e4a362d Tweaking README. 2022-03-06 15:20:30 -06:00
Rob Greene
b4841d7d4d Adding applesingle 'asu' utility. 2022-03-06 15:12:51 -06:00
Rob Greene
b77510683f Adding bastools 'bt' and 'st'. 2022-03-06 15:08:06 -06:00
Rob Greene
e2fea4eae3 Updating 'ac' and adding 'acx'. 2022-03-06 14:50:59 -06:00
Rob Greene
f7028f5561 Bumping cc65 to 2.19. 2022-03-06 14:39:18 -06:00
A2 Geek
8cc4dab709
Merge pull request #2 from bman12three4/master
Add binutils to list of installed packages
2022-03-06 14:35:27 -06:00
Byron Lathi
d879c70108 Add binutils to list of installed packages
binutils offers useful utilities, namely objcopy for me.
It is reasonable to assume others may need them as well.
2022-03-05 23:00:26 -06:00
Rob Greene
64f72863a0 Updating README. 2018-03-17 19:21:28 -05:00
Rob Greene
f3bdd8e17f Bumping version of cc65 and AppleCommander (AppleSingle pairing). 2018-03-17 17:39:02 -05:00
7 changed files with 142 additions and 28 deletions

73
DOCKER-HUB.md Normal file
View File

@ -0,0 +1,73 @@
# Working notes for pushing images to Docker Hub
> Note: It appears that the personal accounts on Docker Hub no longer automatically build based on a Github repository being tagged. (Maybe they never did as it's been 4 years!)
## Login
```bash
$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: a2geek
Password:
WARNING! Your password will be stored unencrypted in /home/rob/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
```
## Built and Tag
This created the `latest` tag:
```bash
$ docker build -t a2geek/cc65-pipeline .
Sending build context to Docker daemon 135.2kB
Step 1/5 : FROM alpine:latest
---> e7d92cdc71fe
Step 2/5 : LABEL description="This is a cc65 Docker container intended to be used for build pipelines."
<snip>
---> 207cf150f1f0
Step 3/5 : ENV BUILD_DIR="/tmp" CC65_VERSION="V2.19" NULIB2_VERSION="v3.1.0" AC_VERSION="1.7.0" BASTOOLS_VERSION="0.3.1" ASU_VERSION="1.2.1"
<snip>
---> 06228100af88
Step 4/5 : COPY bin /usr/local/bin
<snip>
---> 0e009844ebc9
Step 5/5 : RUN a bunch of stuff
<snip>
---> 78d59c93b46b
Successfully built 78d59c93b46b
Successfully tagged a2geek/cc65-pipeline:latest
```
... and this tagged it with the date:
```bash
$ docker tag 78d59c93b46b a2geek/cc65-pipeline:2022-03-06
```
Check:
```bash
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
a2geek/cc65-pipeline 2022-03-06 78d59c93b46b 31 minutes ago 238MB
a2geek/cc65-pipeline latest 78d59c93b46b 31 minutes ago 238MB
<none> <none> 8c7e891250c4 38 minutes ago 238MB
```
## Push to Docker Hub:
```bash
$ docker push a2geek/cc65-pipeline
The push refers to repository [docker.io/a2geek/cc65-pipeline]
d2d7d7253122: Pushed
e3169423110d: Pushed
5216338b40a7: Mounted from a2geek/concourse-image
2022-03-06: digest: sha256:48ab14d15ca474c1e28913e133a5edf2f30853a14936b27936772562cbb665f0 size: 947
d2d7d7253122: Layer already exists
e3169423110d: Layer already exists
5216338b40a7: Layer already exists
latest: digest: sha256:48ab14d15ca474c1e28913e133a5edf2f30853a14936b27936772562cbb665f0 size: 947
```

View File

@ -3,20 +3,22 @@ FROM alpine:latest
LABEL description="This is a cc65 Docker container intended to be used for build pipelines."
ENV BUILD_DIR="/tmp" \
CC65_VERSION="V2.16" \
CC65_VERSION="V2.19" \
NULIB2_VERSION="v3.1.0" \
AC_VERSION="1.3.5.14"
AC_VERSION="1.9.0" \
BASTOOLS_VERSION="0.4.0" \
ASU_VERSION="1.2.2"
COPY bin /usr/local/bin
RUN apk add --no-cache build-base && \
RUN apk add --no-cache build-base binutils && \
echo "Building CC65 ${CC65_VERSION}" && \
cd ${BUILD_DIR} && \
wget https://github.com/cc65/cc65/archive/${CC65_VERSION}.tar.gz && \
tar xzf ${CC65_VERSION}.tar.gz && \
cd cc65* && \
env prefix=/usr/local make && \
env prefix=/usr/local make install && \
env PREFIX=/usr/local make && \
env PREFIX=/usr/local make install && \
echo "Building NuLib2 ${NULIB2_VERSION}" && \
cd ${BUILD_DIR} && \
wget https://github.com/fadden/nulib2/archive/${NULIB2_VERSION}.tar.gz && \
@ -30,14 +32,26 @@ RUN apk add --no-cache build-base && \
./configure && \
make && \
make install && \
echo "Adding AppleCommander" && \
wget https://sites.google.com/site/drjohnbmatthews/applecommander/AppleCommander-${AC_VERSION}-ac.jar && \
mkdir -p /usr/local/share/java && \
mv AppleCommander-${AC_VERSION}-ac.jar /usr/local/share/java/AppleCommander-ac.jar && \
echo "Adding AppleCommander 'ac'" && \
wget https://github.com/AppleCommander/AppleCommander/releases/download/${AC_VERSION}/AppleCommander-ac-${AC_VERSION}.jar && \
mv AppleCommander-ac-${AC_VERSION}.jar /usr/local/share/java/AppleCommander-ac.jar && \
echo "Adding AppleCommander 'acx'" && \
wget https://github.com/AppleCommander/AppleCommander/releases/download/${AC_VERSION}/AppleCommander-acx-${AC_VERSION}.jar && \
mv AppleCommander-acx-${AC_VERSION}.jar /usr/local/share/java/AppleCommander-acx.jar && \
echo "Adding bastools 'bt'" && \
wget https://github.com/AppleCommander/bastools/releases/download/v${BASTOOLS_VERSION}/bastools-tools-bt-${BASTOOLS_VERSION}.jar && \
mv bastools-tools-bt-${BASTOOLS_VERSION}.jar /usr/local/share/java/bastools-bt.jar && \
echo "Adding bastools 'st'" && \
wget https://github.com/AppleCommander/bastools/releases/download/v${BASTOOLS_VERSION}/bastools-tools-st-${BASTOOLS_VERSION}.jar && \
mv bastools-tools-st-${BASTOOLS_VERSION}.jar /usr/local/share/java/bastools-st.jar && \
echo "Adding applesingle 'asu'" && \
wget https://github.com/AppleCommander/applesingle/releases/download/v${ASU_VERSION}/applesingle-tools-asu-${ASU_VERSION}.jar && \
mv applesingle-tools-asu-${ASU_VERSION}.jar /usr/local/share/java/applesingle-asu.jar && \
echo "Cleaning up" && \
cd ${BUILD_DIR} && \
rm -rf * && \
apk del --no-cache build-base && \
echo "Adding other required build-tools exclusive of other C compilers!" && \
apk add --no-cache make openjdk8-jre && \
apk add --no-cache make openjdk11-jre && \
chmod +x /usr/local/bin/*

View File

@ -1,12 +1,10 @@
# cc65 build agent
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/a2geek/cc65-pipeline)](https://github.com/a2geek/cc65-pipeline/releases)
[![Docker Image Version (latest by date)](https://img.shields.io/docker/v/a2geek/cc65-pipeline?label=docker)](https://hub.docker.com/r/a2geek/cc65-pipeline/)
This Docker image is intended to be used in a build pipeline to build
6502/65c02/65816 projects. It is simply a blend of
[Alpine Linux](https://alpinelinux.org/) and
[cc65](http://cc65.github.io/cc65/).
In an effort to keep the image small, it currently only contains (beyond the base
Alpine Linux Docker image) `make` and `cc65`.
6502/65c02/65816 projects. It is based on
[Alpine Linux](https://alpinelinux.org/).
Note that most tools are installed into `/usr/local` in some capacity and
configured to be executed from there. You can always run `docker run -it a2geek/cc65-pipeline /bin/sh`
@ -22,9 +20,16 @@ to submit a pull request!
## Apple II
* [NuLib2](http://nulib.com/) to support creation of ShrinkIt archives.
* [cc65](http://cc65.github.io/cc65/) for C and assembly projects.
* [AppleCommander](https://applecommander.github.io/) to support creation of disk
images. Specifically [John Matthews'](https://sites.google.com/site/drjohnbmatthews/applecommander)
`ac` command is present.
images. The following utilities are included:
* [ac](https://applecommander.github.io/ac/) to manipulate disk images.
* [acx](https://applecommander.github.io/acx/) to manipulate disk images (alternate to 'ac').
* [bt](https://github.com/AppleCommander/bastools/blob/master/tools/bt/README.md) to transform an AppleSoft program from text back to its tokenized state.
* [st](https://github.com/AppleCommander/bastools/blob/master/tools/st/README.md) is a utility to manage AppleSoft shape tables.
* [asu](https://github.com/AppleCommander/applesingle/blob/master/tools/asu/README.md) to support manipulation of AppleSingle files.
* From the Alpine packages:
* [binutils](https://www.gnu.org/software/binutils/)
# Samples
@ -66,9 +71,8 @@ build:
stage: build
script:
- make hello
- make clean
- ac -pro140 hello.po HELLO
- cat hello | ac -cc65 hello.po hello BIN
- cat hello | ac -as hello.po hello
- ac -l hello.po
- nulib2 -ak hello.shk hello.po
- nulib2 -v hello.shk
@ -78,20 +82,35 @@ build:
- ./hello.shk
```
The output from the `ac -l hello.po` command is:
The output from the build plan is:
```
$ make hello
cl65 -t apple2 hello.c -o hello
$ ac -pro140 hello.po HELLO
$ cat hello | ac -as hello.po hello
$ ac -l hello.po
hello.po /HELLO/
HELLO BIN 007 01/20/2018 01/20/2018 2,928 A=$0803
HELLO BIN 007 03/18/2018 03/18/2018 2,928 A=$0803
ProDOS format; 136,192 bytes free; 7,168 bytes used.
```
The output from the `nulib2 -v hello.shk` command is:
```
hello.shk Created:20-Jan-18 19:21 Mod:20-Jan-18 19:21 Recs: 1
$ nulib2 -ak hello.shk hello.po
Name Type Auxtyp Archived Fmat Size Un-Length
adding hello.po
0% compressing
11% compressing
<snip>
DONE
$ nulib2 -v hello.shk
hello.shk Created:18-Mar-18 00:16 Mod:18-Mar-18 00:16 Recs: 1
Name Type Auxtyp Archived Fmat Size Un-Length
-----------------------------------------------------------------------------
hello.po Disk 140k 20-Jan-18 19:21 lz2 02% 143360
hello.po Disk 140k 18-Mar-18 00:16 lz2 02% 143360
-----------------------------------------------------------------------------
Uncomp: 143360 Comp: 3248 %of orig: 2%
Uncomp: 143360 Comp: 3253 %of orig: 2%
Uploading artifacts...
./hello.po: found 1 matching files
./hello.shk: found 1 matching files
Uploading artifacts to coordinator... ok id=441 responseStatus=201 Created
Job succeeded
```

2
bin/acx Normal file
View File

@ -0,0 +1,2 @@
#!/bin/sh
java -jar /usr/local/share/java/AppleCommander-acx.jar "${@}"

2
bin/asu Normal file
View File

@ -0,0 +1,2 @@
#!/bin/sh
java -jar /usr/local/share/java/applesingle-asu.jar "${@}"

2
bin/bt Normal file
View File

@ -0,0 +1,2 @@
#!/bin/sh
java -jar /usr/local/share/java/bastools-bt.jar "${@}"

2
bin/st Normal file
View File

@ -0,0 +1,2 @@
#!/bin/sh
java -jar /usr/local/share/java/bastools-st.jar "${@}"